Miloslav Číž 3 years ago
commit e214780e9f

@ -110,6 +110,8 @@ portability, only backend, avoiding dependencies
how to port to new platform, frontend, configs in files
All global identifiers of the game code start with the prefix `SFG_` (meaning *suckless FPS game*).
The **engine** -- raycastlib -- works on the principle of **raycasting** on a square grid and handles the rendering of the 3D environment (minus sprites). There is a copy of raycastlib in this repository but I maintain raycastlib as a separate project in a different repository, which you can see for more details about it. For us, the important functions interfacing with the engine are e.g. `SFG_floorHeightAt`, `SFG_ceilingHeightAt` (functions the engine uses to retirieve floor and ceiling height) and `SFG_pixelFunc` (function the engine uses to write pixels to the screen during rendering, which in turn uses each platform's specific `SFG_setPixel`).
integer math

@ -5,8 +5,10 @@ general:
- try to remove the debug flag (-g1) from compiler and see if it decreases size
- port to GB Meta
- add enemy moving/dying sound
- sounds (music?)
- music:
Probably just one long music track playing over and over -- KISS. The frontend
could have a callback function play_music_bar(n) which would be called by the
backend, the music track would be in sounds.h.
- level 2D map (with revealing, bitmap), special key for quick displaying map
- save/load (optional):
When a level is finished, the state at the beginning of the next one (health,
@ -147,9 +149,11 @@ done:
- try to compress images: store images as 4 bits per pixel + 16 color palette
(subset of the 256 color palette), check if performance stays ok
- custom font
- make barrels explode.
- make barrels explode
- enemies
- weapons
- sounds
- add enemy moving/dying sound
- create tables for monster and weapon stats in constants.h and read from that
instead of cheking with ifs
- check if monsters are hit by bullets from completely up close