…. Alright, I’ll admit that it’s been awhile since my last post here, but I have access to an Oculus Rift again and can get back to work!
In the two weeks since university life has started again, I’ve done a fair amount of work on Small Gods and another project that I’ll be talking about Soon(TM).
For starters, I’ve recently set up a Trello board dedicated to helping me —and the people who’ve foolishly agreed to help me 😀 — follow the basic SCRUM methodology. This was pretty badly needed as previously I’d been doing everything without a real plan and I need to get the game in as good a state as possible within the few months I have left as uni.
As you can see it’s nothing much at the moment, but I’m hoping to properly fill it out as the weeks go on so that everything is in order and everyone knows what they’re doing.
Since my last update, I’ve been working on both the game and the project proposal in order to get them into a state fit for showing off. While there’s still a fair bit of work left to do it’s steadily getting there and I’m rapidly approaching the point where I no longer need to add AI Behaviours.In any case, since my last update I have:
Since my last update, I’ve been a little busy with other things in life but I’ve found the time to fix an assortment of bugs and add some new features to the game.
In regards to bugs I have:
- Replaced the radial menu I had currently with a menu from the same asset set I downloaded. As such, continuing to hold the joystick no longer causes the selection system to flip back and forth between the button you want and the one opposite it.
- Replaced the previous system of restoring energy where AI would have their energy restored by walking through a trigger at their house. Now they go to their house and wait for a period of time determined by how tired they are.
- Replaced the previous system of restoring food where AI would have their food level restored by walking through a trigger at a food source object. Now they go to their house and wait for a period of time determined by how hungry they are.
The “”””fun”””” part of game development.
As part of my game dev work tonight I fixed four bugs/issues that were present in the game and discovered a new one that I’ve never seen before. The bugs fixed during this dev session were:
- The inability to change a worker’s job.
- The worksite of a builder being set to null for five seconds after completing a building. This resulted in workers completely freaking out as their behaviours would get confused.
- The camera movement only working properly when the player was facing forwards.
- Workers having their workplace being set to null when dropped. This prevented me from moving workers to and from the storehouse after they had filled their inventory with goods.
This is just a little update designed to show you what I’ve added since my last post so it’s nothing too exciting. In any case, the player is now able to assign workplaces to AIs simply by picking them up and dropping them on a building. Building-sites (the precursors to actual buildings) will create builders out of the AI dropped on them, farms will create farmers, and mines will create miners.
So this feature was a long time coming given the inspiration for this game and the overall usefulness that this sort of thing would provide, but I have finally added the ability to pick things up. It was actually pretty painless to implement (I guess I’m getting good at this :v), but the player is now able to pickup game objects that their mouse cursor (the big white sphere and light) is hovering over by holding the A button on their xbox controller as long as they don’t have a menu up. I’m not 100% happy with the way it works currently, for instance, the AI will recalculate the path to their target while in mid-air and they don’t alway land where their path begins.
However, I’ll be able to fix these issues easily enough as well as implement proper, physics-based falling to objects and also add some discrimination to the pickup behaviour as right now it would mix up objects rather than only picking up objects of the same type.
Another short update but this time, despite being about AI, I’m not declaring a blood feud.
Seriously, though, I’ve just added the basics of a builder AI to my game and aside from some seemingly small things they work okay! They’re currently very dumb (they don’t use resources when building, they sometimes get stuck inside completed buildings, like the other AI they generate exceptions that slow the game to a crawl if they don’t have something to do, etc etc) but for the most part, they work. I also seem to have broken the resource production code in the process of setting up my builders —I think the work distance check is messing things up— but I should hopefully have that fixed by next week.
This wasn’t as hard to implement as I was expecting it to be, to tell the truth.
Basically, all I’ve done is set it up so that the AI produce goods while working and if they fill their inventory with said goods they’ll go to the nearest storage depot with space and dump their goods there. The actual implementation of it is sort spaghettified and I’m sure that there’s a better way of doing it, but it works!
I’m not sure how I’ll end up implementing the whole resource system in the final version of the game, however. Right now it’s taking a similar form to that of the resource and storage system in Black and White where storehouses have a cap on the number of each type of resource they can store and so when a storehouse is full you need to build a new one. however, I may change it to be more akin to a traditional RTS resource system where collected resources are transported to a location that teleports it into a magical place where it’s accessible to all-comers.
I have no idea if I’ve done these correctly so here goes nothing. :v
‘Approachable’ is one of those terms that often gets confused with ‘simple’ by both developers and by players alike, and making a game approachable is one of the hardest things to get right in game design. Making a game more approachable often times means reducing the complexity of a game and that’s often mistaken for making it simple or shallow. However, in reality, making something approachable just reduces the number of steps to get a point in the game whilst maintaining depth. An example of an approachable mechanic that still has depth would be Tropico’s wage management system. Regardless of what you think of the game as a whole, the wage management system present gives players the ability to influence employment across their city by adjusting the wages of labourers in specific buildings by clicking one of two buttons. That system is both easy to learn and has depth, and adding any more controls would simply intimidate most players.
Similarly, I will be aiming to ensure that every design decision I make for Small Gods will result in a system or behaviour that’s presented to players in an easy to understand way and whose implications they can grasp within seconds. Every time I make a decision, I will essentially be asking myself “Can the average person understand what is happening and where this will lead?”
This is just a short update to brag that I worked on the AI some more this morning and didn’t end up hating myself. 😛
As of right now, the AI in Small Gods will move to the nearest workplace that matches their skills and hasn’t filled up its worker count. If they leave their workplace for food, rest, or because they’re bored they’ll return to it after resolving those issues, however if the workplace has been destroyed since they left they’ll search for a new workplace altogether (starting the search at the nearest workplace to them that matches their skills).
I’ve also implemented the beginnings of the ‘work’ system itself and workers will be producing actual goods soon. (And then I’ll get to deal with storing items :v).