add make target that prints CC, CFLAGS, and LDFLAGS
[menche_rl.git] / README
blob3ea31c55fd17f639a1757d62a5e7117128602b2b
1 Description
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. 
11 Overview
12 An overview of the (planned) inner workings (for my benefit as much as anyone
13         else's):
15 Code is (tentatively) separated into the interface, game logic, and game state.
17 Initialization:
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)
22 Interface Step:
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
28 Game Step:
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
39 Cleanup:
40         main.c frees any memory that was allocated
41         main.c calls interface_exit() to clean up ncurses and restore the
42                 terminal screen