Hi,
Find a first playable demo of Equinoxe, my Commander X16 shooter ...
I know it's not much yet, but I've come from very far making this.
To make this, I had to learn how to:
- implement a memory manager algorithm for vram on the vera
- implement a memory manager algorithm for bram
- implement a (fast) collision detection algorithm using spacial hashing technique
- implement a fast method to shoot bullets to an angle direction
- implement a fast method to calculate the angle between 2 coordinates (so calculate the unit vector)
- fixed point arithmetic
- sprite design using blender and spriter
- tile design
- implement a dynamic tile walking algorithm
- vera library with all kinds of functions to paint sprites and tiles and control the video ram
- dynamic level loading
- memory banking
- mouse control of the CX16
and more ...
So as this demo may not be much, I've really learned a lot on this path to make this.
And still continuing to develop this game as time floats...
Let me know in the comments if this is something you like or not ...
This demo must be downloaded as the emulator version on the web does not allow to load a card.
So unzip the cx16.zip and a cx16.vhd file will be created.
Load the game with x16emu -sdcard cx16.vhd
In the emulator, type load "equinoxe.prg", 8, 1
Enjoy!
Sveni
- Now the tiles take in much, much less space. Tiles reworked to 4bb instead of the 8bpp and the tile structure is now also much better.
- To manage sprites dynamically and efficiently, added now an least recently used cache and a vera heap manager that allow to copy in old used sprites dynamically into vera from bram without much hassle.
- Updated bram heap manager based on a blocked approach. (fast).
- Great new sprites found and made a logic to quickly generate from the sprites the actual needed bin files.
- The loading mechanism is now also completely reworked, now the loading happens in a pre-defined level structures (LEVELS.BIN), which is loaded into BRAM.
- Sprites are now also stored in .BIN files.
- Tiles are also stored in .BIN files.
- Reworked the palette allocation mechanism, so depending on the sprite that is active, its palette will be allocated.
- The engine is now completely independent from levels creation, so the LEVELS file can be updated with new levels, new sprites and NO recompile is needed from the engine.
- Reworked the staging mechanism, so the game is structured in playbooks (levels), scenarios and waves. Each wave models an attack of enemies.
- Now the fun part starts, to design further states of enemies, how they shoot and also want to implement "towers" on the floor that shoot.
- And add more nice effects like explosions, bullets, and artefacts on the background.