2017-10-15 21:40:39 +00:00
|
|
|
# rooms
|
|
|
|
|
|
|
|
This is a multiplayer ascii game (or so far, only the framework for a game actually)
|
|
|
|
|
|
|
|
The goal now is to have players walk around in different rooms where they can interact with things.
|
|
|
|
|
2017-10-16 18:17:58 +00:00
|
|
|
A lot of functionality is actually working.
|
|
|
|
|
2017-10-20 14:30:57 +00:00
|
|
|
## Working Features
|
2017-10-19 20:14:28 +00:00
|
|
|
|
|
|
|
- Multiplayer
|
|
|
|
- Walking around
|
|
|
|
- Switching between rooms
|
|
|
|
- Persistent inventory
|
2017-10-20 14:30:57 +00:00
|
|
|
- Fighting
|
|
|
|
- NPC's
|
2017-10-22 17:04:20 +00:00
|
|
|
- Farming
|
2017-10-22 20:37:45 +00:00
|
|
|
- Building
|
2017-10-19 20:14:28 +00:00
|
|
|
|
2017-10-22 12:22:45 +00:00
|
|
|
## Installation/starting instructions
|
|
|
|
|
|
|
|
Requires python3, tested to work on at least python 3.5.2 in linux
|
|
|
|
|
|
|
|
Because of the use of NCURSES and Unix Domain Sockets, it probably won't work on windows (will be fixed later)
|
|
|
|
|
|
|
|
Not tested on mac. If anyone could test this for me this would be much appreciated.
|
|
|
|
|
|
|
|
Run `hostrooms.py` from the same directory to start the server.
|
|
|
|
|
|
|
|
Run `rooms` or `playgame.py` to start the client
|
|
|
|
|
|
|
|
## Playing instructions
|
|
|
|
|
|
|
|
Use the arrow keys or wasd to move around.
|
2017-10-23 12:54:38 +00:00
|
|
|
Use 'e' to add an item from the ground into your inventory.
|
2017-10-22 12:22:45 +00:00
|
|
|
Use 'q' to drop the top item in your inventory.
|
2017-10-23 12:54:38 +00:00
|
|
|
Use 'E' to use/interact with the top item in your inventory.
|
|
|
|
Use 'f' interact with something in the same square as you.
|
2017-10-22 14:28:45 +00:00
|
|
|
Use 'F' to attack an enemy in the same square as you.
|
2017-10-22 12:22:45 +00:00
|
|
|
Use WASD to attack enemies in adjacent squares.
|
|
|
|
|
2017-10-19 20:14:28 +00:00
|
|
|
|
2017-10-18 15:33:20 +00:00
|
|
|
## Vision/ideas
|
|
|
|
|
|
|
|
The idea is to make 3 different kind of areas:
|
|
|
|
|
|
|
|
- private areas, where players can build their own house/farm
|
|
|
|
* these areas will be the only one where players can build
|
|
|
|
* other players can only enter with permission of the owner
|
|
|
|
* maybe some group areas too? (that can be bought with in-game currency)
|
|
|
|
- public areas, where players can interact with each other and npcs
|
|
|
|
* towns, where players can trade
|
|
|
|
* static dungeons, where monsters spawn
|
|
|
|
* whatever levels someone feels like making
|
|
|
|
* similar to the world of most mmorpgs
|
|
|
|
- procedurally generated dungeons, where players can explore and fight for loot
|
|
|
|
* like roguelikes
|
|
|
|
* if the player dies they can not return to the same dungeon
|
2017-10-22 12:22:45 +00:00
|
|
|
* group dungeons would be great too
|
2017-10-18 15:33:20 +00:00
|
|
|
|
|
|
|
## TODO first
|
2017-10-16 18:17:58 +00:00
|
|
|
|
2017-10-20 19:50:09 +00:00
|
|
|
- better code documentation
|
2017-10-23 11:36:26 +00:00
|
|
|
- testing
|
2017-10-22 14:28:45 +00:00
|
|
|
- nondeterminism in combat and grow times
|
2017-10-22 20:37:45 +00:00
|
|
|
- only plant seeds in soil
|
|
|
|
- make farming more work
|
2017-10-23 11:36:26 +00:00
|
|
|
- follow player when room larger than terminal
|
2017-10-20 14:30:57 +00:00
|
|
|
- equipment
|
2017-10-23 11:36:26 +00:00
|
|
|
- autofight/autoretaliate/
|
|
|
|
- display target enemy health
|
2017-10-22 20:37:45 +00:00
|
|
|
- write converter to convert tiled map files to readable files
|
2017-10-20 22:32:41 +00:00
|
|
|
- better reaction on player death
|
2017-10-20 14:30:57 +00:00
|
|
|
- room unloading when there are no players
|
2017-10-18 14:03:13 +00:00
|
|
|
- better interaction selection
|
2017-10-18 15:33:20 +00:00
|
|
|
- multicharacter sprites in client
|
2017-10-20 18:55:02 +00:00
|
|
|
- in-game chat
|
2017-10-22 20:37:45 +00:00
|
|
|
- support websockets
|
2017-10-23 11:36:26 +00:00
|
|
|
- windows comptibility (libtcod/tdl instead of ncurses?)
|
|
|
|
- world persistence
|
2017-10-19 20:14:28 +00:00
|
|
|
|
|
|
|
## DONE
|
|
|
|
|
2017-10-22 20:37:45 +00:00
|
|
|
- more content (rooms, objects etc)
|
|
|
|
- multiple socket types (regular unix, abstract unix, inet), selectable as command line arguments
|
|
|
|
- configurable graphics
|
2017-10-22 17:58:22 +00:00
|
|
|
- configurable keybindings
|
2017-10-22 14:28:45 +00:00
|
|
|
- make items usable
|
|
|
|
- farming
|
2017-10-21 22:20:51 +00:00
|
|
|
- loot
|
2017-10-21 18:45:44 +00:00
|
|
|
- more efficient target detection for monsters
|
2017-10-21 16:24:39 +00:00
|
|
|
- more efficient drawing/communication by only updating changed squares
|
2017-10-21 11:47:02 +00:00
|
|
|
- growing plants
|
2017-10-20 22:32:41 +00:00
|
|
|
- monster/object spawners
|
2017-10-20 21:23:49 +00:00
|
|
|
- healing
|
2017-10-20 19:50:09 +00:00
|
|
|
- make health persistent
|
2017-10-20 14:30:57 +00:00
|
|
|
- make server robust to invalid messages
|
2017-10-20 11:42:26 +00:00
|
|
|
- attack cooldown
|
|
|
|
- add enemies
|
2017-10-19 21:41:31 +00:00
|
|
|
- factions
|
2017-10-19 20:14:28 +00:00
|
|
|
- add combat
|
|
|
|
- improve inventory: probably store it in Player instead of Playerent
|
|
|
|
- better interaction system
|
|
|
|
- more code reusability in gameobjects
|
|
|
|
- avoid long files
|