home · contact · privacy
Add most basic README.
[plomrogue2] / README.txt
1 Here you will find the first steps in a re-write of the PlomRogue
2 engine, plus the RogueChat example application.
3
4 PlomRogue is an attempt at yet another roguelike engine.  One of its
5 core principles is itsserver-client-architecture: the game happens on
6 a server that speaks the PlomRogue protocol, and can be connected to
7 with whatever client you come up with.
8
9 RogueChat is an attempt at a multiplayer roguelike environment.  Its most
10 obvious deviations from the roguelike standard are:
11 - practically non-turn-based (there actually is an internal turn system,
12   but it should in practice be invisible to players)
13 - so far a complete lack of combat, survival challenges, or any
14   pre-defined lore
15 - far-reaching ability to change the environment
16
17 Python dependencies for the server and client are listed in
18 ./requirements_server.txt and ./requirements_client.txt respectively.
19
20 To run the RogueChat engine as TCP server on port 5000:
21 $ ./rogue_chat.py SAVEFILE --server-type tcp --port 5000
22
23 To /additionally/ run at is WebSocket server on port 8000:
24 $ ./rogue_chat.py SAVEFILE --server-type tcp ws --port 5000 --port 8000
25
26 SAVEFILE in the command line above will store commands to reconstruct
27 the game world from its last state after the server process was
28 killed.  You can manipulate these commands to manipulate the game
29 world.
30
31 To connect the example curses server to the TCP port of the server:
32 $ ./rogue_chat_curses.py 'localhost:5000'
33
34 To connect the example curses server to the WebSocket port of the server:
35 $ ./rogue_chat_curses.py 'ws://localhost:8000/'
36
37 The following automatically install the curses client's dependencies in a
38 Python virtual environment and runs the client against
39 'wss://plomlompom.com/rogue_chat/', where an example RogueChat server
40 runs.  The same is targeted by ./rogue_chat.html, an example web browser
41 client that emulates the curses client via HTML and JavaScript.