It’s been a slow few weeks, but I’ve been doing my breakdown strategy for making small amounts of progress. This means there’s not much in the way of tangible results, but there is quite a lot of small things which are building up to better things.
The areas of focus at the moment are threefold – Actions, Actor stats and game Stats
Actions are the time based recurring or long term effects that the player and potentially other things do. For example, gather and forage are actions the player does, and buildings also use a gather action.
There’s a few small features I want to build into the game, for example I want to have the player have a default action, and a queue of actions. I also needed to tidy up how they are generated so that its easier to add new actions or modifications via rituals etc.
For this I have added some new features, some of which are hidden:
- All actors now have a default action and an action queue as well as a current action.
- When the action is complete, a new action is generated from the queue or the default if there is nothing in the queue.
- Buildings use the default action rather than simply restarting the current action.
- Gather, forage actions are set as the default action rather than the current action.
- Rituals are set as a current action.
There’s still a bit more to do here but this gives me a bit more control. The main thing to do is move the action generation rules (eg how long each action takes, how many resources it generates) into a separate file so they’re not embedded in the code as they currently are.
All actors now also have a list of stats. Stats are currently completely unused, but they do exist so I can make them work later. Stats consist of a type such as Intelligence, a number of experience points and a level. The level will eventually be derived from the experience; probably in that if you gain experience eventually you spend it all increasing your level.
The point here is that stats will affect actions eventually, so if you have a high Herbalism stat you will gather slightly more resources. I’ve not fully worked out how they will work, but I’ve put the framework in place so I can do something with them later!
Game stats are not the same as stats! These are statistics about what has happened so far, so for example how many gather actions you have done or how many herbs you have gathered.
So far I have in place the objects to store the data and the serialisation for saving, but nothing that actually looks after them. The plan here was detailed in the last post! Although there’s not a lot of progress, I’m happy with where this is going and it can see some more small things to do.
Looking back over the week I’ve done more than I thought, and I think I’m getting to a point where I can plan my next release. The nice thing about this is that this proves that my last post wasn’t nonsense! I’ve divided the work into tiny steps, and done a few of them, and then reviewed with a blog post – and it feels like I’m getting somewhere.
I think that I’m going to make these three features the focus of my 0.4 release: Action improvements, actor stats and game stats. This won’t be the most exciting release, but it will set the stage for more exciting things, in particular familiars and achievements.