Go to file
troido 051e1bfae5 separated Entity creation and connection to room; improved loot system; improved inventory item stuff; added plantable seeds as loot 2017-10-22 14:22:45 +02:00
client separated Entity creation and connection to room; improved loot system; improved inventory item stuff; added plantable seeds as loot 2017-10-22 14:22:45 +02:00
server separated Entity creation and connection to room; improved loot system; improved inventory item stuff; added plantable seeds as loot 2017-10-22 14:22:45 +02:00
shared initial commit 2017-10-15 23:30:31 +02:00
.gitignore git now ignores log files; improved documentation 2017-10-21 19:53:53 +02:00
README.md separated Entity creation and connection to room; improved loot system; improved inventory item stuff; added plantable seeds as loot 2017-10-22 14:22:45 +02:00
communication.md server now only sends whole room the first time the player sees the room 2017-10-21 18:24:39 +02:00
hostrooms.py updated readme and renamed host script to avoid confusion with adventurer 2017-10-16 20:17:58 +02:00
licence.md initial commit 2017-10-15 23:30:31 +02:00
playgame.py added pebbles; moved placing stuff to placable; made start script 2017-10-18 17:16:24 +02:00
rooms added pebbles; moved placing stuff to placable; made start script 2017-10-18 17:16:24 +02:00
startserver updated starter 2017-10-21 22:14:33 +02:00

README.md

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.

A lot of functionality is actually working.

Working Features

  • Multiplayer
  • Walking around
  • Switching between rooms
  • Persistent inventory
  • Fighting
  • NPC's

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. Use 'e' to add an item from the ground into your inventory. Use 'q' to drop the top item in your inventory. Use 'r' to use/interact with the top item in your inventory. Use 'f' to attack an enemy in the same square as you. Use WASD to attack enemies in adjacent squares.

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
    • group dungeons would be great too

TODO first

  • better code documentation
  • test server robustness
  • make items usable
  • farming (only harvest left to do)
  • more content (rooms, objects etc)
  • equipment
  • configurable keybindings
  • better reaction on player death
  • room unloading when there are no players
  • better interaction selection
  • write converter to convert tiled map files to readable files
  • configurable graphics
  • multicharacter sprites in client
  • in-game chat
  • multiple socket types (regular unix, abstract unix, inet and websocket), selectable as command line arguments

DONE

  • loot
  • more efficient target detection for monsters
  • more efficient drawing/communication by only updating changed squares
  • growing plants
  • monster/object spawners
  • healing
  • make health persistent
  • make server robust to invalid messages
  • attack cooldown
  • add enemies
  • factions
  • add combat
  • improve inventory: probably store it in Player instead of Playerent
  • better interaction system
  • more code reusability in gameobjects
  • avoid long files