diff --git a/README.md b/README.md index 711ee7c..f4de4c7 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/TODO.txt b/TODO.txt index a4810a1..e11ae22 100644 --- a/TODO.txt +++ b/TODO.txt @@ -5,8 +5,10 @@ general: setting) - 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