It's been slow progress on the simulation game as I've been busy releasing a free game for Android called Gravity Pong which you should all go download now, as this makes me happy (Currently at 6 downloads and $0.05 income from AdMob).
I've also been putting some time into my next mobile game, which will be a snowboarding game built on the Box2D framework (which I'm accessing through the useful Libgdx framework).
It's very much in the beginning phase but I've been enjoying working on the pixel art.
As I've been away from my computer I've been forced to think about programming, as opposed to just blindly forging ahead. This has lead me towards some changes in my approach.
Groups Versus Individuals
Currently in my simulation game every entity is treated individually. It searches the area around itself and makes decisions based on what's there (not through a very complicated decision making process though!) A wolf may have a pack which it is connected with, but it's main goals are always what it comes up with.
I was thinking this way because I want my game to have that individual feel to it, where characters pick their next move based on how they feel, rather than just being a small part of a larger machine.
However this leads to very inefficient programming as each entity covers the same ground with its searches.
Take for example the concept of a herd of deer grazing in a clearing when a wolf approaches.
Relatively simple in concept but harder in process.
If I treat every deer seperately I have to check each of them to see if they notice the wolf, or if they're too busy eating, then check to see if they notice other deer running away etc. As each deer checks these facts they cover a lot of the same area and repeat a lot of the same checks.
What I am considering changing it to is to have groups, and I update a group which then updates it's members making it simpler to share information.
I can then check for a predator overall, then figure out who notices using only one instance of all the data.
If ideally implemented the behaviour shouldn't differ from when they are behaving entirely autonomously but will be a lot faster and simpler to implement. It also lends itself quite easily to having a leader in charge, whether an alpha male or a human with leadership skills which is something I'm looking forward to implementing.
It also makes more sense having a pack know it's den rather than having each wolf have a link to the den etc
It keeps things more compartmental, and more easily changed later.
Obviously this is a somewhat forced instance but it helps explain how I'm feeling currently about implementing this.