Project 2011: Lesson One

Thus far Project 2011 has taught me a fair bit about coding and has re-taught me something that just never seems to stick: Big projects do not make for a good way to get in to something.

I’m quite enjoying the coding, but re-writing the same class for the third or fourth time because when I first did it I had too little idea what the hell I was doing is not exactly a productive way to do things.

v0.1.0 came and went without any play-testing owing to a complete rethink of how I was coding the UI. The new UI approach in v0.2.0 is definitely working better, but it’s not fantastic. I had been hoping to release 0.2.0 this weekend, but that now seems quite unlikely. A little bit of feature creep (adding a very basic version of character creation now rather than forcing everyone to play an identical character for the moment), the need to completely rebuild the inventory system (which, admittedly, I’d known was going to be necessary when I first coded it, but thought it’d suffice until a later milestone), and then some rethinking on how character’s attributes should be handled and if the current set of them is sufficient. (At the moment each of the three attributes (Athleticism, Charm, and Intellect) has a final score made up of two components, all of which are simply stored as ints or doubles in the Character class. I’m re-considering if this is the best data model.)

Now, I imagine a lot of that meant nothing to most of you, what with there having been minimal discussion as to exactly what this game is…

So, here’s a very brief overview. More details will follow later, but a lot is highly subject to change at the moment.

In Project2011, you play the role of the patriarch or matriarch of a Family. Initially, this Family consists of yourself, your spouse, and your new-born child. For any of a number of reasons, you have come to a section of Frontiers-land with few possessions and little support. Here you’ll set up a camp and try to survive, hopefully meet some more people and, maybe, if you’re lucky, form a Community. This is a turn-based game where you queue several goals for the next Season and your character will attempt to accomplish them. As the head of his/her Family, you also get to set some Family Goals. Members of Families will put a portion of their time towards both their Personal Goals and their Family Goals. Depending on how your Community works, there may also be Community Goals which Families or Individuals may be required to work towards. Initially, most of your character’s time will likely be spent hunting or gathering food, but as your Family grows, or you find other Families to trade with, or a Community to work within, someone will likely start farming. Getting the same amount of food for far less labour will of course free up some labour time (hopefully, your characters) to pursue other activities. If a Family grows large enough, it can split in to multiple Families under a Tribe.

There is no specific end-goal in mind at this point. It’s sort of an open-ended dynasty building game – like SimCity or the Sims. Though at some point I will add some scenarios with specific objectives in mind.

I’ve also been looking at some key Milestones that the Project will be working towards on its way to the October Alpha release. They are listed below. Note that whilst this is the order in which I currently intend to work on them, it is not necessarily the order in which I will end up working on them… that’ll be dictated by my know-how and interest at the time, and by what my play-testers start clamouring for (here’s to hoping they clamour for something…)

  1. Single-Character realm- Player Character only.
  2. Multi-Character realm- Hot Seat support for multiplayer, no NPCs/bots at this point. Though, the world will be able to support any number of hot seat players. Each player will control a single character. There will be a simple trading system. Characters will not belong to the same Family. The hot seat support will be *very* simple, partly aimed at allowing me to set-up a realm with multiple characters to speed the testing process.
  3. Simple Family support – for spouse and children, but not beyond that. Some support for combined Inventories. NPCs will be limited to the spouse and children of player-characters. They will cleave very closely to the Family Goals. They will have some basic Personal Needs which they will also pursue – things like eating and recuperating if injured (assuming I’ve developed injuries by this point).
  4. Simple Realm Map – Until this point the Realm itself has no real characteristics beyond what Season it currently is. This will add a very simple mapping system and environmental regions (e.g. plains, woods, rivers, coastlines) that will have an impact of the efficiency / permissibility of various activities in those areas. Effectively the realm will be divided in to squares (or possibly hexes). Each representing an area that a character can readily traverse in a day and still perform their activity. To move between areas will decrease the total number of actions you can perform that turn. Exact details will be sorted out much closer to reaching this milestone. The idea is that a single tile is quite large and could hold an entire Community – travelling would be somewhat costly.
  5. Further NPC support – for NPCs / bots that are the heads of their own families (and, if necessary, expanding the Milestone 3 support for their spouse / children). These bots will be substantially more sophisticated than the spouse and children – capable of deciding what Family Goals to pursue and developing a strategy to get there. At this point they will still likely be quite stupid. Making them smart will be a key milestone in the Beta project.
  6. Support for Communities – ability to form Communities of various governance structures and ability to set Community Goals. These will work much the same as Family Goals, though instead of being set by the Head of Family, they’ll be set by the Community Government. The Community Government may be controlled in a number of ways. Initially it will be a straightforward first-over-50% democratic system (with each Family having one vote and successive rounds until a clear victor emerges) to determine who is mayor for a given term (from 1 turn to “until the mayor’s death”). But there will also be support added very early-on (and certainly in the pre-alpha stages) for other basic forms of government (such as a triumvirate or a senate or a monarchy).
  7. Support for LAN-play – ability to play across a local network. Turns will have the option of being time-limited. If all players finish their turn before the time-limit is reached, it will end the turn.
  8. Support for Internet-play – ability to play across the internet. This will be by way of a dedicated server which can be set to the same time-limited turn style as Milestone 7, or can be a fixed-time server. This is the intended form of gameplay – where turns are every 24 hours (or as set by the server) and the idea is that people can check in for 10 or 15 minutes a day and set their instructions for the next turn. Support may also be extended for the non-fixed-time version to be playable across the internet via a local server rather than a dedicated server.

If time allows, more milestones may be added to this list for inclusion in the Alpha version. I will be very annoyed with myself if I have to cut any of this functionality in order to get the Alpha version out on time, but I will definitely be releasing an Alpha version on the 16th of October. (If only because my opportunities to code for the month or so following that will be… minimal…

If anyone is interested in playtesting or has any ideas about what could or should be included in the game, I’d love to hear from you – drop a comment here or send an email to project2011 (at) danielobrien.net

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s