3 This is a roguelike or roguelite for which I haven't come up with a name yet.
4 It is currently very unfinished; my plans are for it to eventually be an open
5 world game with a fully destructable, infinite (or large enough to feel
6 infinite), two-dimensional but multi-layered, procedurally generated map. Like
7 roguelikes, it is viewed from the top down, is in ASCII (for now), and time that
8 progresses in discrete steps. Permadeath: maybe, probably, I might do a "story
9 mode" with permadeath and a "survival mode" without.
12 An overview of the (planned) inner workings (for my benefit as much as anyone
15 Code is (tentatively) separated into the interface, game logic, and game state.
18 main.c calls interface_init() to set up ncurses
19 main.c allocates game state (map, player position, still figuring out
20 what this will look like)
23 main.c calls interface_step()
24 interface.c refreshes the screen
25 interface.c processes input from the player
26 interface.c eventually returns a command
29 if the command was to quit, clean up and exit
30 otherwise, main.c calls game_step() with the command
31 game.c performs the specified action, adjusting the
32 game state as necessary.
33 MAYBE information about success/failure/effects of requested action
34 is communicated back to the interface; might just leave it
35 until the screen refresh next step
36 game state is saved to disk, ideally asynchronously (might not do that yet)
37 main.c calls interface_step() again
40 main.c frees any memory that was allocated
41 main.c calls interface_exit() to clean up ncurses and restore the