plomrogue
=========
-plomlompom tries to build his own roguelike. It doesn't do much yet (although
-plomlompom has insanely ambitious long-term plans).
-
-You can move around a player on an island and meet different enemies. You have 5
-hitpoints to lose before death. Enemies start with different amounts of
-hitpoints, depending on their species. Dead enemies become dirt, skeletons, or
-food to consume (each turn reduces one's "satiation", and the further away from
-a healthy center it is, the smaller the chance of regaining lost hitpoints by
-healing, and the stronger the chance of suffering from hunger or overfeeding
-and thereby losing hitpoints). Note that different kinds of movements/actions
-take different numbers of turns to finish.
-
-Enemies' AI is very dumb so far: Each turn, they look out for actors of
-different species to flee from (if their type starts out with more hitpoints
-than they have) or (if the opposite is the case) move towards for purposes of
-attack. If they see no enemy, they search for and consume "magic meat".
-
-Every move of yours re-writes a file "save" that describes the new state of the
-world, if more than 15 seconds have passed since its last writing. Once you
-re-start the game, the game state is recreated from the "save" file. To
-start over in a new world, simply delete this file.
+plomlompom tries to build his own roguelike engine. There is two games for it so
+far, one of which is loaded by default: "The Crawling Eater". See ./README_TCE
+for details on it.
System requirements / installation / running the game
-----------------------------------------------------
-The game is expected to run:
+The engine is expected to run:
- on Unix systems with a vt100-like terminal environment (xterm will do)
- that contain the ncurses library
- and Python3 (version >= 3.2.3).
- gcc (version >= 4.7.2); some llvm masked as gcc was tested successfully on OSX
- libc library headers (libc6-dev?)
-To build and start, just run:
+To build and start it with the default game, just run:
$ ./roguelike
Save files, replay game recording, starting over
------------------------------------------------
-By default, the game state is saved in the file ./save, and read from there on
-(server) restart. Another file name to use can be given with the -l option (i.e.
-start the game with "./roguelike -l alternate_savefile"). To start over in a new
-world, remove ./save, or use the -l option with the name of a file that does not
-exist yet.
+Every move of yours re-writes a file "save" that describes the new state of the
+world, if more than 15 seconds have passed since its last writing. Once you
+re-start plomrogue, the game state is recreated from the "save" file. To start
+over in a new world, simply delete this file and re-start the engine.
+
+The save file is called ./save be default, but another file name to use can be
+given with the -l option (i.e. start the game with "./roguelike -l
+alternate_savefile"). The -l option can also be used to start over in a new
+world whose state will be read and saved with the alternate file path, without
+overwriting other games saved in other save files.
Once you start a new world, every game action of yours is appended to a file
called "record_" plus the save file name. Run "./roguelike -s" to watch the
The game world is set up and made subject to player commands by
./roguelike-server. It's controlled by commands explained in the file
-./SERVER_COMMANDS. The server usually reads these from the files ./server/in
+./SERVER_COMMANDS. The server usually reads these from the files ./server_run/in
(written to by ./roguelike-client), ./confserver/world, ./record_save and
./save.
The ./roguelike-server executable can be run with a -v option for possibly
helpful debugging info (mostly: what messages the client sends to the server).
-Server and client communicate via files in the ./server/ directory (generated
-when the server is first run). The ./server/in file is read by the server for
-newline-delimited commands. The ./server/out file contains server messages to be
-read by clients. The ./server/worldstate file contains a serialized
-representation of the game world's data as it is to be visible to the player /
-the player's client.
+Server and client communicate via files in the ./server_run/ directory
+(generated when the server is first run). The ./server_run/in file is read by
+the server for newline-delimited commands. The ./server_run/out file contains
+server messages to be read by clients. The ./server/worldstate file contains a
+serialized representation of the game world's data as it is to be visible to the
+player / the player's client.