Speaking with some friends, they encouraged me to give it a go, but start with the goal. Which eventually translated to writing a stock market sim first.
The concept itself is a multiplayer grand strategy style game set in a fantasy style universe. I've got it working on a calendar system like a paradox game, I'm aiming for it to be running continuously with a leaderboard and periodic resets. I very much want player actions to run within the sim context, IE: The player isn't special in any significant way, they control an entity, whether that's a peep or some other in-game entity.
I have a basic demand system for my simulated people working, who buy goods they need from shops local to them and purchasing activity is reported on the market, traders trade against market activity and at present all a player can do is be a trader, running on a Clojure server which uses websockets to update the client.
There's a lot of things I want to do, I've got a map generation prototype that I built after reading some of Amit's amazing articles [1], I've been scouring my old rpg source books GM sections to try and work out what a decent set of pieces plugged together would look like, after all I figure they're supposed to create the illusion of a vibrant world for players, so why not flip through them for ideas? However I'm limiting this a bit because I don't want to get bogged down not building stuff!
I'm presently doing some initial sanity checking, basically trying to work out what are the current performance characteristics of my sim, IE: Does every entity need to be updated on every tick, does that look "nice" from a player's perspective, or create odd artefacts? Also some simple refactoring to just clean stuff up.
The other two problems to solve is keeping everything nicely organised as I really want this to get big in it's interconnected complexity (though perhaps that's a terrible idea), putting together a simple way to monitor the system's running as the game designer.
Keeping scope small and focused is hard, enthusiasm gets you to want to add all sorts of wacky stuff.
All of the above is subject to change if I figure out a better way of doing it =)...
- [1] http://www-cs-students.stanford.edu/~amitp/game-programming/...