Monday, November 6th 2017
This week I read a few chapters from a handful of books surrounding the topics of simulated behavior and procedural content:
My research opened up some interesting areas for further study. Procedural Content Generation in Games in particular was full of an extensive range of algorithms (in English or pseudocode) for producing virtual worlds, from fractal and noise-based landscapes to decision-tree driven dungeons.
The Magic Machine's Dinner Table and Protozoan simulations both dealt with agents moving around a virtual space, in two very different ways. Both may seem like naive algorithms compared to even what we have baked into Unity itself in 2017, but I felt like understanding these underlying principles would help greatly in the coming weeks.
For this project I intend to create a series of small studies in scripting languages in order to gain a greater understanding of the underlying algorithms behind simulated behaviors in games.
I started by replicating Dewdney's Dinner Table simulation in Python (example of my Guest class below):
This was an interesting and surprisingly complex project for being so reduced in scope. All the entities in my party head for and eventually find a stable point in which their point of least unhappiness and current location are the same. So somewhere, there's a bug. I also effectively had to invert all of Dewdney's code, because instead of using objects with an x and y position, dewdney had x and y arrays of guest positions.
I finished up my project proposal. The process of this greatly helped me to refine and reframe my project. Many thanks to my father, Terry Koch, who used his long experience in journalism to help me focus and polish my ideas and structure.
Moving forwrard, my studies will include Utility AI and Palmiter's Protozoa, as well as further research into Unity's NavMesh and new machine learning framework.