You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server

X3D - A 3D engine for TI68k & Nspire Calculators

b/[Inactive] X3D (TI-89/92+/v200/Nspire/PC) Started by catastropher, June 27, 2015, 02:37:43 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

u/catastropher July 20, 2017, 07:05:11 AM
If anyone would like to give it a try, I have X3D rendering the first level of Quake on the Nspire CX between 10 and 20 fps :D To get it working on the calculator, download the zip here, extract it, and send all of the files to your calculator. Depending on your version of Ndless, either run xtest.tns (newer versions) or xtest.prg.tns (older versions). When you start xtest, it will say "no level loaded". To fix this:

       
  • Open the dev console by pressing 9
  • Run the command "map e1m1"
  • Wait a couple of seconds because it's a multi-megabyte file
  • Enjoy!
Keys:

       
  • Forward/backward: 7/4
  • Look around: arrow keys
  • Quit: Esc
  • Open/close dev console: 9
  • Autocomplete in the console: tab (hitting twice lists options)
Notes:

       
  • If you're outside the level, it will render in red wireframe. It will switch to textured mode automatically when inside the level.
  • If it crashes, the engine produces engine.log, so please send this to me as well as any steps I can take to reproduce the crash. Thanks!
  • Don't run any of the other console commands other than map (they're experimental)
  • Current leaf tells you where you are in the BSP tree and visible leaves tells you how many leaves are potentially visible from where you are
  • The textures wobble a bit as you move - currently working on this
Please let me know how testing goes and thanks for giving it a try! Also, @Legimet  thanks, I'll fix this when I get the chance!
u/catastropher July 29, 2017, 09:08:05 PM
X3D now has lighting! Here's a screenshot:

X3D Static Lighting

If you'd like to give it a try, here's the download link!
u/matrefeytontias July 30, 2017, 12:30:24 PM
That looks so cool o/ keep it up !
u/catastropher November 22, 2017, 05:23:22 AM
Hey guys! As always I know it's been forever, but I've been constantly working on X3D since I last posted and the engine has come a long way! Here are a few of the things I've worked on since my last post:

  • Hand-optimized the low level span renderer in assembly
  • Wrote a physics engine (still a WIP)
  • Added basic support for loading/rendering 3D models
  • Implemented dynamic lighting (currently very slow on the calc and buggy)
  • Figured out how to use TrenchBroom, a Quake level editor, and was able to create a custom test map

Here's an animated screenshot (be warned, the file size is quite large):
X3D Custom Map/Physics

On my calculator, which to be fair is overclocked, this level gets 15-22 fps when standing out in the open, which is where the most polygons are. The engine is really coming along. I've grown so much as a programmer while working on this project - hard to believe it's been almost 3 years now since I started (I began in Februrary 2015).

If anyone is interested, I'll put a demo exe up here along with the test map :3
Last Edit: November 22, 2017, 05:25:04 AM by catastropher
u/Ranman November 22, 2017, 06:47:54 AM
Very cool catastropher.  :thumbsup:

Are you still supporting the 68K calcs?  ???
u/catastropher November 24, 2017, 08:48:16 PM
Quote from: Ranman on November 22, 2017, 06:47:54 AM
Very cool catastropher.  :thumbsup:
Thank you! :3 I'm just getting started!

Quote from: Ranman on November 22, 2017, 06:47:54 AM
Are you still supporting the 68K calcs?  ???
Unfortunately not, I switched the engine to be compatible with Quake levels and there's no way the 68k calcs could render one of the levels, even in wireframe. I probably should change the project description to reflect this xD
u/catastropher December 22, 2017, 05:32:58 AM
Well I've been on a coding binge for the last few weeks so I thought I'd give an update:

  • Implemented mouselook (yaaay no more turning with arrow keys!)
  • Implemented loading/rendering of level models
  • Added object type system for game objects
  • Added some builtin game objects, such as button and rising platform
  • Added event system with triggers e.g. push a button makes a platform raise
  • Figured out how to get paint on walls, which will be used for Portal gels!
  • Added numerous upgrades to the physics engine
Here's a demo of a small Portal-like chamber with all of the aforementioned feature (aside from the paint):
Test Chamber

I did my best to make it somewhat look like a Portal chamber. I'm very excited because the engine is finally getting to a point where you can start doing real things with it. If anyone is interested in giving the demo a try the source is on github! :D
u/catastropher July 08, 2018, 11:30:02 PM
Been working on the new portal rendering system :3

Screenshots






I've decided to switch to a 3 month release schedule so that I don't keep disappearing for 6 months at a time :P So I'm looking at releasing a playable demo in September. I'll make a post shortly with what my development goals are by then! I've been making a lot of structural changes to the engine since it's now written in C++ rather than C. This left 35k lines of code to be refactored... so I'm trying to balance adding new features with cleaning up what's there.
u/mazhat July 10, 2018, 04:22:02 AM
You are crazy dude, this is awesome.
I haven't been here to see the whole thread,
but is this all from scratch?
What libraries did you use?
This fascinates me to no end.
u/catastropher July 12, 2018, 02:38:16 AM
Quote from: mazhat on July 10, 2018, 04:22:02 AM
You are crazy dude, this is awesome.
Thank you very much! And I am indeed crazy haha

Quote from: mazhat on July 10, 2018, 04:22:02 AM
I haven't been here to see the whole thread,
but is this all from scratch?
What libraries did you use?
This fascinates me to no end.
Yup, this is entirely from scratch. Since the calculator has no GPU it's all software rendered. The source code is on my github, but it's in kind of an awkward state since I'm doing lots of refactoring.
u/123outerme July 13, 2018, 02:58:59 AM
This is awesome! I've been following along loosely on your Github, but I like how you've added Portal mechanics! Very interesting. Will you be using it to make a Portal game for the Nspire?
Website statistics


MyCalcs | Ticalc.org | Cemetech | Omnimaga | TI-Basic Developer | MaxCoderz | TI-Story | Casiocalc.org | Casiopeia | The Museum of HP Calculators | HPCalc.org | CnCalc.org | Music 2000 Community | TI Education | Casio Education | HP Calcs | NumWorks | SwissMicros | Sharp Calculators
Powered by EzPortal