Version 0.2.0 has been tagged and bagged, and you can see the current state of things by clicking the ‘Play’ link in the nav bar. Some fun features of note:

  • Procedurally generated houses. While they already look very cool, this will especially start to look neat as I add in items specific to the various rooms. I’m going to write a separate blog post on how I did this because honestly it’s one of the coolest things I’ve ever written. It hurt my brain a lot getting all the concepts together, but I think it was totally worth the effort.
  • Procedurally generated apartments. Nothing super cool here but it forced me to write a ‘template’ engine in order to make placing things in a pre-arranged manner. More on that below.
  • Improved algorithm for placing doors in office buildings. I also want to do another blog post on this because I think the algorithm I came up with is original to a certain extent…I at least wasn’t able to find any information on how to do this intelligently and had to come up with my own solution and I think it works wonderfully. This is another piece of code that I’m extremely proud of.
  • Item containers and an action menu. Provided a generic ‘action’ event to be utilized by a new action menu screen. The is inspired by Caves of Qud, which utilizes a similar menu for generic interaction with entities. I think the solution I wrote is extremely flexible and am excited about the ease with which I’ll be able to write new actions for items and entities.
  • ‘Template’ engine. This tool allows me to write arrays of strings with an associated map-key, which specifies what each character is, and a parser so that I can pass a template to the parser and it spits out a 3D grid of items, entities, tiles, and anything else that has a repository.

Version 0.3 is starting to look a bit beastly…I’m noticing some definite slowness as the relatively small number of NPCs begin to path every turn, and initial game generation is also starting to lag. I might need to move the name-generation file locally as well because sometimes github times out (my suspicion is that they are limiting the number of requests that are being made so as to not be able to function as a hosting site when CDNs are preferred). These issues may need to be resolved before the real NPC feature improvements can be developed.