diff --git a/README.md b/README.md index 3becd6a..990fd07 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,8 @@ Please note however the game is still relatively simple and so **the physics IS - It **doesn't have any dependency libraries, not even the C standard library** (except for using types from *stdint.h*, which can be trivially replaced with a few *defines*), everything is written from scratch for **maximum portability**. Libraries such as SDL are used for frontends, but they are never an inherent dependency and can be basically drop-in replaced with a similar library that's only required to be able to draw pixels and read keyboard. Almost everything can be turned off, the game can even **run without a file system** as the essential assets are embedded right in the source code -- files are only needed for optional extended functionality like saving replays, adding extra maps etc. Settings are part of the source code too, there are **no config files**. - **No build system** is used, everything is in a **single compilation unit**, to build the game only a single compiler invocation is needed. This removes another bloat and dependency. - The compiled game INCLUDING ASSETS is **extremely small** -- depending on platform, game and compilation settings, a playable executable can take only around 128 kB; in normal scenarios it will most likely fit under 400 kB. -- It is **exceptionally portable and future proof** thanks to having no dependencies besides C99 compiler. So far it was ported to: +- **Very fast and memory efficient**, the game will run practically on any computer save for the weakest of embedded devices. In general, despite being a fully 3D rendered game with 3D physics, the game can be run with **less than 500 KB RAM and 50 MHz CPU**; of course such hardware will require many features turned off and playability will suffer, but let's say 1 MB of RAM along with a 200 MHz CPU (laughable specs even 20 years ago) will be enough for comfortable play already. +- It is **exceptionally portable and future proof** thanks to having no dependencies besides C99 compiler. So far it was ported to and testplayed on: - **GNU/Linux**: via SDL2, CSFML or X11 - **Window$**: via SDL2 - **OpenBSD**: via SDL2 @@ -54,7 +55,8 @@ Please note however the game is still relatively simple and so **the physics IS - **Pokitto** (32bit 48 MHz CPU, 36 KB RAM) - **Circuitmess Nibble** (32b 160 MHz CPU, 80 KB RAM) - **ESPboy** (32b 160 MHz CPU, 80 KB RAM) -- It also goes without saying the physics is **100% deterministic**, it behaves the same on every platform, independantly of rendering FPS. Besides others this allows for recording and playing back very small replays and creating press forward maps. + - tested compilers: gcc, g++, clang, tcc, emscripten +- It also goes without saying the physics is **100% deterministic**, it behaves the same on every platform, independently of rendering FPS. Besides others this allows for recording and playing back very small replays and creating press forward maps. - It is **super moddable and hackable**, the code is relatively simple and **well commented**, written to encourage hacking. There are no obstacles such as DRM, anti-cheating, obfuscation etc. Cheating and hacking is allowed, do literally what you want. - **No codes of censorship, flags, furry mascots or similar political bullshit.** - **No "modern" bullshit such as OOP, Python, Docker, meme design patterns, scripting, sandboxes, "memory safety" and similar crap**. diff --git a/TODO.txt b/TODO.txt index b56379a..3f38bfc 100644 --- a/TODO.txt +++ b/TODO.txt @@ -30,13 +30,11 @@ fuck issue trackers :D =========== BUGS ================= -- camera bugs in TCC build, also the auto test fails on checking rendered - pixels -- this may be TCC not supporting C99 fully? but dig up what's going - on - camera follow speed depends on FPS, it's slower with low FPS, but this is no big deal, it's only noticable with extremely high/low FPS -- fix or not? - replay loading BUG! somehow map2 replay was saves with hash 05ef0ab1 instead - of correct 3c5ba5dd once, WTF, check where hash gets modified + of correct 3c5ba5dd once, WTF, check where hash gets modified NEVER HAPPENED + AGAIN THO ============ FUTURE ============== @@ -103,6 +101,9 @@ fuck issue trackers :D theory they should (enough block space to load): try to set the exact same settings on PC and see if the maps load or what. IT'S BCS BUILDING THE MAP TEMPORARILY REQUIRES MORE BLOCKS +- camera bugs in TCC build, also the auto test fails on checking rendered + pixels -- this may be TCC not supporting C99 fully? but dig up what's going + on - maybe address the jerky rotations? or not? - make some kinda repo for world record runs? how will they submit it? - LCR_SETTING_TEXTURE_SUBSAMPLE = 0 should turn off texturing completely diff --git a/make.bat b/make.bat new file mode 100644 index 0000000..f93acf2 --- /dev/null +++ b/make.bat @@ -0,0 +1,6 @@ +:: Win$hit BAT file to help make Licar under that horrible OS. It probably won't +:: work right away, but can hint on how to compile it. MinGW is used as a compiler. +:: It's possible to use this under Wine to not have to touch the horrible OS. +echo making Licar +bin/g++.exe -std=c99 -DSDL_MAIN_HANDLED -ISDL2-2.30.9/x86_64-w64-mingw32/include/ -LSDL2-2.30.9/x86_64-w64-mingw32/lib/ -o licar.exe frontend_sdl.c -lSDL2 +echo done