Greetings, loyal Subjects of the Empire! As you know, we traditionally give out a programming status update around the start of the month to let you know what we’ve been doing. To make things even more exciting, Mr. Triolo recently found some sort of “GIF-making” tool on the steam-pipe-and-radium-Internet. Therefore, what the heck, let’s show you some animated engine footage… in very, very small quantities.
So, without further ado, what’s new this month…? Conversations! People can now talk with each other about things. Here, two citizens discuss work and how it makes them feel sad. A person’s response to a conversation topic is a function of their mood and traits. People will also broadcast their thoughts. Here is somebody thinking about bed.
Valid conversation topics, at present, include work, patriotic duty, upper/middle/lower class structures, the sea, communism, and needing sleep. These are all data-driven so we can add more topics as we see fit. How people react to conversations will affect how they feel about a person. Mr. Whitman left the game running for half an hour, and discovered that everybody was extremely happy except for the one person who was very, very angry about communism.
As part of the work on moods, madness has started to be integrated into the game. A few weeks ago, I started a colony with everybody’s madness maxed out. Half of those present walked into the sea, never to return; the other half immediately grabbed the nearest weapons available and started either shooting each other or bludgeoning each other with axes and shovels. So that’s working rather well.
People can also sleep on beds, instead of just on the floor. (Also, they don’t sleep underwater any more, and we fixed the “incorrectly installed furnaces” bug from last time I did a major post.)
You can see that I fixed the ambient occlusion here, which had been broken for about three weeks and nobody, myself included, noticed it. Oops. Also new is that our skinning is now done on the GPU in a vertex shader, rather than in on the CPU. This saves valuable CPU cycles for rendering more shrubs or something.
We can’t really show it very well, but there is now an internal notion of which areas in the game are “civilized” and which squares are “not.” This is used for military patrolling. We also changed the size of the on-game map from 256×256 to 512×512, and dealt with … issues… arising from this.
Mr. Best has been working, quietly, on a large rewrite of our message-passing system to get it ready for networking and multiplayer. At one point we had multiplayer up and running, but discovered that doing the building creation stuff across the network was… messy. This led to making a list of things that were messy, and deciding to fix them. This has now happened, and we are in the process of integrating a rewrite of the core event handler and message passer back into the game. This has, to say the least, been labor-intensive. Right now it compiles, links, runs, and crashes almost immediately upon creating the first character in the game (appropriately, named Smugly Flypump.) We’re in the process of sorting that out, at which point we will start working on closing the multiplayer ticket. As part of this, we also have the start of the framework for creating events. Events are any scripted thing which isn’t a character doing something, basically, and will no doubt be the subject of their own blogpost once they are in place. A lot of stuff depends on events (everything from “new citizens” to “villainous Stahlmarkian traders” through to “Fishpeople coming through town and giving you the old heave-ho”), so that will be exciting to have a framework for.
Daniel has been rewriting and generally overhauling the biome generators, which he wrote about last week. Ryan has dropped off a large chunk of code for something simply referred to as “Thor”, and this has dragged both Derek and Andrew (systems engineer and build engineer respectively) into the hellish pit of game development. That should be fun once it’s done, and also means that we have a big chunk of PHP running a server now somewhere. Strange.
This month’s agenda: Micah is finishing his integration, doing multiplayer and events, and hopefully starting in on the all-important save game serialization; I am finishing a new building creator, which will support dragging regions for faster building creation as well as the ability to modify buildings post-creation (for the placement of new modules and so forth), as well as building costs and a collection of “oddball tickets” (farming, finishing dynamics lines, burial sites, global world generation, some combat stuff); Chris is doing a huge handful of UI work, starting with new work party screens, and Daniel is working on slotting in more actual content. I also seem to have sprouted about a zillion tickets related to the particle system editor, so I suppose I’d better get on with those…