Manoria is an MMO city-building and resource management game by Team 566 (James Tauber and Brian Rosner) built for DjangoDash 2010.
DjangoDash 2010 is a Django coding competition to build a website in 48 hours.
Players are located on a single continent and build settlements that progress through homestead, hamlet, village and town. Settlers gather resources such as wood, stone, iron, fish, wheat and gold by constructing buildings adjacent to certain terrain types.
Details of terrain types, building types and resource types and the relationship between them is entirely stored in the database so game mechanics can be developed and adjusted easily.
The implementation features draggable maps and asynchronous updates of resource counts.
It also features an unusual approach to tracking resource counts where instead of updating counts with some timer on the server, the actual resource counts are calculated only when needed. One interesting side-effect of this is that the growth of the "world" is uninterrupted by the server going down.
The tools we used to setup/run Manoria are:
- Python 2.6
- virtualenv 1.4.7+
Create a virtual environment where manoria dependencies will live:
$ virtualenv --no-site-packages manoria $ source manoria/bin/activate (manoria)$
Install manoria project dependencies:
(manoria)$ pip install -r requirements/project.txt
By default the project is set up to run on a SQLite database. Run:
(manoria)$ python manage.py syncdb --noinput
This will load the initial_data fixtures which will be the basis for game-play. Setup an account in-game (if you want to access the admin you can run createsuperuser if you like).
(manoria)$ python manage.py runserver 8006
We used port 8006 and the initial data fixtures rely on it. Not sure if it really matters, but worth pointing out.
Also, we ran using Safari 5 and did not test other browsers. Would be best to run in Safari 5.