Written in C++, SDL2, OpenGL, stb_image, jsoncpp etc. from "scratch".
The purpose is trying to emulate arcade hardware as much as humanly possible without developing for 100 years .
My current dev progress: https://www.youtube.com/watch?v=VsVZRbho0u0
Full channel and dev vlog: https://www.youtube.com/channel/UC5C-Zq ... 84Q/videos
Features:
- emulating more or less Cave hardware systems
- 320x240 vertical or horizontal, unlimited colors, but sprites should be palette limited for retro looks
- pixel perfect collision
- rotation baked in the sprite sheet
- free rotation in "hardware", but no pixel collision
- sprite atlas generation, 1 draw call for all screen objects / items / hud, a single texture array
- units, sprites, fonts, weapons, projectiles, sounds, levels etc. loaded from json, png and wav/ogg
- Lua scripting for higher custom logic, game fully moddable, you can make any shmup from ground up
- no alpha blending, just alpha mask, to emulate old hw
- sprite tinting with add/mul/sub color modes
- sprite shadows using one frame off, one on, to simulate transparency on CRTs
- sprite frame animation, from the sprite sheet
- sprite instance position/scale/color/visible animation as simple linear interpolation (hermite spline soon)
- animation frame events, triggered when reached
- parallax layers
- default radial with direction weapon, fully customizable pattern
- auto generate sprite sheet from PSD layers, including auto rotation for angled sprites
- text drawing from sprite sheet letters, including optional kerning
- more to come: background/big enemy tilemaps, screen shake/fx/transitions, triggers, enemy wave generator, and an editor (hopefully)!