I want to use this post to talk about our project. Simply put, it’s doing well! We have reached the comfortable point where we have met all the ‘base’ requirements for the project, so the remaining time is all going towards making things even better. It’s a comfortable place to be because hopefully this means there shouldn’t be any mad scrambles in the final hour to get features out.
One of those refinements I hope to add is more realistic species behavior. Right now, every species on the board determines it’s move based on finding the most optimal tile to maximize it’s change in utility (which comes from looking at how the move would affect the species food, water, and energy). The behavior routine factors in the species genetic stats, and includes some basic modifications such as having species favor being near same species. That said, it’s still pretty basic. In practice, we’ve noticed the simulations generally have a big feed frenzy in the beginning, and then species just sort of hang out in a localized area. I want to add in some behavior modifications that will cause species to move more. I’m thinking of adding another genetic stat along the lines of “nomadic tendency” which will be factored in such that the more nomadic a species is, the more it will favor moving to tile it has never been to before.
Species behavior in general is a tricky problem to solve. Another issue we’ve noticed is that right now we don’t have enough methods to kill off species. The problem with this is that once a species reaches a critical mass, they take over the screen like a bacteria. A teammate is working on some additional prey/predation mechanics to help with this, and I might look into increasing the rate at which species food, water, and energy drain, and subsequently their life drains. At their current rates, species can live for a surprisingly long time without eating or drinking which seems unrealistic.
Unrelated to simulation mechanics, I’m going to go on a tangent and just talk about how much this project has made me appreciate object oriented programming. This project feels like the first time I’ve really seen the power of object oriented design. When four people are working on a project, and there are many many pieces to it, having everything neatly encapsulated into it’s own class and object has made picking up and understanding other code much easier to do.
That’s it for this blog post, I can’t wait to see what we get done in our final few weeks!