Last update: 2014 December 17
Welcome to our progress report!
The purpose of this document is to inform you about the current status and ongoing progress of the Clockwork Empires project as a whole. This involves all the work, from start to finish, that goes into completing the game. Spoiler alert: There's a lot of work involved, so this is necessarily a very high-level perspective. If you would like to follow the weekly development blog updates which discuss more specific details, check out the Gaslamp Games weblog or sign up for the mailing list.
This document itself will evolve as work on Clockwork Empires proceeds, we receive feedback, and find better ways to communicate with players. We are committed to updating the project's status on this page for each major public release, once per month, without exception.
A note on progress numbers:
It is difficult to represent how finished aspects of Clockwork Empires are with just one number because a great deal of the work done over the course of developing a game is not visible to the player through the then-current playable version of the product. Development is front-loaded in terms of cost while payoff is back-loaded. In other words, the most progress visible to the player necessarily takes place in the final months of a project in almost all cases. As Sheng-ji Yang put it, "Technological advance is an inherently iterative process. One does not simply take sand from the beach and produce a Dataprobe." Just so with game development: a character cannot walk across the screen until there is a 3D renderer, a 3D asset importer, an animation pipeline, a game aesthetic to build assets to, a scripting engine and database structure to instantiate entities from, and so on. Only after the infrastructure is in place can anything resembling a game begin to form and it's development of infrastructure.
Much of the initial time of this project was spent on technological infrastructure. Updates in the following months are showing the payoff of this investment as we rapidly implement player-facing content and game mechanics. This is the exciting part!
Project Progress: 85%
Playable Progress: 54%
December 2014 update notes:
This month saw a few parallel streams of development. Perhaps most important was the continuation of developing economic gameplay with the ability to order dismantling of modules, buildings, and zones. These don't feel at first glance feel like "positive" feature developments, but what they do is introduce the essential element of iteration. Now a player can build a colony, tear it down, then re-build as a better, faster, more effective colony. Alongside this we wanted to introduce some fun themed gameplay elements, so we've fleshed out the behaviour of Naturalist characters, added the Laboratory along with Scientists and Laboratory Assistants to work in them, and sprinkled the world with Strange Artifacts to discover, study for prestige, and possibly (probably) make things go Terribly Wrong with. As usual there are also a ton of small changes and improvements which will be discussed in the appropriate sections below.
Oh, and we moved into a new office in the last month! The new place is rather nice, though we're still not sure about this "sun" that keeps shining through "windows"; it's all rather alarming and if anyone can explain what's going on, please do.
As ever, adventurous players should opt-in to the "experimental" build of the game using the properties>betas option in Steam. You can see the new content we're working on plus receive specific technical fixes that don't affect enough players to require hotfixing into the public build.
Here are our development blog posts from the middle of November to the middle of December (which appear slightly fewer than usual due to how the Wednesdays line up, but hopefully the title length makes up for it):
(You can read the previous months' update notes and blog post listing at the bottom of this page, here.)
In the broadest strokes, these are the major public-facing milestones of the Clockwork Empires project:
This is the key component that brings every part of the game together. It makes sure that mouse and keyboard input is processed, that visuals display, that the game can pull information from the correct space on-disk, that the UI renders and responds correctly to input, that a character is drawn in the right place and is told what to do from the right script. Every part of this infrastructure must be in place in some form before player-visible game content can even be implement. As Nwabudike Morgan put it, "Each interdependent piece must be materialized simultaneously and in perfect working order; otherwise the system will crash out before it ever gets off the ground."
Nowadays most games are built on engines purchased from an outside company so the developer does not have to build their game from the ground-up. Popular examples of such engines are Unity, Unreal, CryEngine, and idTech. This category is easy to underestimate compared to other projects because we've built an engine from scratch. The game engine is hugely complex and, if everything works correctly, the player will not even notice it. The intangibility of the engine needs to be emphasized because it's such a huge portion of the work done on Clockwork Empires during development but it's one of the absolute least visible components to players. In short, it's a huge deal, but you won't be able to tell unless something goes wrong. Much of the work remaining involves making sure things don't go wrong with the wide variety of hardware and operating systems out there.
MacOS Clockwork Empires is out in the wild and Linux should follow shortly.
Project Progress: 93%
Playable Progress: 97%
The big fix in Engine Land is some horrible memory corruption thing that has been hiding in the particle system, of all places, and has been plaguing us all for months. Your game should now be more stable. Huzzzah!
OSX got it's Lua fixes and is now working pretty well - some older Macs may have some rendering issues, so if you run into any of these, please let us know what's going on so we can look into it.
Status of the Linux build can be followed on the forum post here.
Simulating human characters is a cornerstone of Clockwork Empires, and as such it's one of the systems we've spent the most time on. As far as what's visible to the player, it probably appears about half as sophisticated as we intend the final product, but there's a lot of solid back-end code to support much more than what's been done. Now that we have a comprehensive design for characters as well as a completed framework to build that design on, most of the work that remains involves adding new 'jobs' (a job being what our engine calls any unit of a character's physical action eg. chopping down a tree or rubbing their stomach and making hungry, unhappy sounds), new memories, a more sophisticated relationship model, and physiological responses.
Project Progress: 83%
Playable Progress: 68%
First, the important stuff: Colonists bodies no longer explode when listening to Vicars give sermons.
We've added Scientists and Laboratory Assistants (each with unique models) to work in Laboratories. And so there's something to study, Naturalists have been given a whole suite of new behaviours - they will automatically explore the unknown, find trouble, study nature, and possibly discover Strange Things.
Night matters and works properly! Colonists will tend to work outside or in workshops during the day and will tend to return to the colony to eat, gossip, and sleep during the evening and night. This is developing the idea of mundane industrious activities going on during the day while creepier things may go on at night - cult stuff, sleeping on the floor, madness, etc - and is the start of giving gameplay a loose sense of rhythm, of uptime and downtime with different flavours.
We also converted food from a confusing system of individual nutrition values per food item to a generalized system of characters requiring roughly one commodity unit of food per day. Uncooked food is slightly less nutritious and creates unhappy thoughts while cooked food does the reverse. It's rather less easier to starve, and we have a framework here to make ingredient tags more important than stat numbers, qualitative value over quantitative value.
Like the game engine, the scripting system is somewhat intangible to a player but exceedingly important to us developing the game. The scripting system allows us to use a scripting language - Lua is this case - to control game logic without messing with the underlying functionality of the game engine such as graphical rendering, or keeping assets loaded in memory.
The scripting system is also almost completely done. Almost all of the game object definition, and the interaction of these game objects is handled through Lua now. These objects interact with each other by passing messages that are scheduled by the C++ engine code. We need to do a cleanup pass to make sure that all the strings for localization are out of C++ land, and we need to clean up leftover code used for various tests, but this system is largely done and we're very pleased with it.
As far as the player is concerned, this system is essentially done. A lot more content remains to be scripted, but the infrastructure to allow this to happen is all in place and works very well. Any error that occurs here would almost certainly an issue with an individual game object's script rather than the scripting system itself.
Project Progress: 95%
Playable Progress: 100%
The Lua scripting system got some upgrades to be able to run effectively on MacOS and otherwise received some minor features and improvements.
The combat system currently works pretty solidly as a base upon which to build deeper features: soldiers will defend the colonists who call for help, colonists tasked with hunting will shoot animals with slightly alarming zeal (even peppering the already dead bodies with an extra bullet or two, depending on their traits), and everyone from bandits to fishpeople to your colonists can be wounded, take afflictions, and be killed. And now the lovely system of military control that we painstakingly designed while the project was still quagmired in engine code is beginning to be implemented. We needed to wait for the characters to be sufficiently complex that they would be affected by military service, for the job system to allow interrupts, and for additional sophistication and UI support for work crews in general. We also needed enemies to be sufficiently complex that military controls felt necessary. The characters are there and able to do everything needed, the scripting of complex, interesting enemies is starting to show off what it can do (though pretty much all of the art assets are done, as mentioned in the "Non-Human Characters" section).
Project Progress: 53%
Playable Progress: 37%
To start, a finicky bug to do with wielding firearms was fixed so now everything to do with using guns has a decently effective baseline, which is rather nice. Apart from this, combat jobs have been cleaned up so that items are dropped when hostiles are near, military training and certain traits gives damage bonuses -- and if an NCO is trained their troops will get a bonus. Sensibly, combat/explosions happening near sleeping characters will wake them up and make them grumpy.
We've also got the very start of a general military supply system in. The idea here is that instead of tracking the number of bullets, bandages, and tins of corned aurochs a soldier is carrying (which is super complex, thus prone to unexplained failure and no one will know what's going on anyway) ... so instead we're using a generic system of "military supply". If a soldier is supplied, they'll have higher morale and be more effective in combat. If they're not supplied, they'll basically be kinda bad at things, much like anyone at Gaslamp Games before they've had their coffee. It's important to keep your soldiers supplied.
In Clockwork Empires all of the characters (human and otherwise) are based on very similar code. Some work has been done to create specific NHCs (non-human characters), and it works well, but this code hasn't yet been generalized sufficiently that adding new ones is as trivial as it should be. This isn't difficult, per se, but it hasn't been the most important task yet versus our priority on getting human character behaviour feeling really good (plus all the supporting UI/UX features involved in allowing the player know WHY characters are doing stuff). It is only natural that the player focus on their own colonists, so that had to be our starting place. Once that structure is solidly in place only then does it become worthwhile to flesh out all the other animals and creatures in the world. And we're getting there!
The benefit of having the human characters essentially done is that every other active entity (animal, horror, vehicle) in the world is a version of human characters with simpler behaviour, so they're relatively easy to create in comparison. This process is being done gradually, in thematic groupings, as development proceeds.
Project Progress: 74%
Playable Progress: 42%
We made animals way more annoying.
Herbivores will now attempt to eat your crops and any commodities left out that herbivores might like to eat (raw cabbage, anyone?). On the other hand, your colonists will now shoo animals away if they notice them raiding your fields. Related, the animal hunger system was overhauled so they will eat their fill rather than every single item of food in your stockpile. Nesting birds will now construct nests and hang out in them, as nesting birds do. And to top it off, animals flee from danger a little more effectively than before.
Over in Eldritch Horror land, you can discover and be creeped out by strange artifacts, and your colonists can transform into Fishpeople somehow. Which is all we'll say about that.
This section includes everything the player can build: workshops, machine modules, dynamics (pipes), and zones (farms, stockpiles, graveyards) as well as any game mechanics that employ these structures.
Procedural building geometry is pretty solid unless you cram a lot of modules together in funny ways or manage to find an edge case in blueprint placing rules. With this more or less working, we're focusing on improving the UI for placing buildings and modules as well as the gameplay mechanics that use constructions generally. Right now buildings are very cheap, causing players to build walls with elongated structures, and there is otherwise little sense of progression. These will be our next focus with a series of economic updates. (The last major features required for building geometry proper is support for more varied building styles including gabled roofs and more exciting decorations, but this is all visual polish, so gameplay comes first.)
The backend for workshops is pretty much done, and as with everything will see refinements in every update. Workshops don't however interface much yet with higher-level economic gameplay mechanics that are not yet implemented such as dynamics (steam/water pipes, mechanical axles), and module maintenance costs. These could also use more cool visual and sound effects and lots of UI/UX enhancements.
Housing is a bit simple right now; people will use beds, but there is currently no concept of "property ownership", so people can't have their bed, their chair, their house, and their idol of Quaggaroth. Upper class characters can't complain about not owning a gilded throne and a painting of Uncle Ambrose. On the other hand, the communists are pretty happy with how things are looking right now.
Zones (stockpiles, farms, and graveyards) are working pretty well - though there are always incremental improvements to roll in when there's time - but farms in particular will need some better high-level controls for having one workcrew work multiple fields in a rational manner.
Project Progress: 89%
Playable Progress: 87%
"Mr. Brazenstokes, tear down this wall!"
The major upgrade to buildings, modules, and zones is the ability to dismantle them. This might not seem like a big deal, but this opens up the ability to iterate the design of your colony (without having to start over) - people keep wasting time getting stuck in your cramped bunkhouse? Make a newer, better, roomier one now that you can afford it and tear down the old one! Put your farms right where fishpeople keep attacking? Just put them behind the kitchen and build some walls. It's good stuff!
And building on last month's addition of the Chapel (which, in code, is an "office" type building, like a workshop that does not process commodities but instead performs a service), we added the Laboratory so that your colonists can Perform Science on Strange Things they find! There's a lot to be fleshed out in the naturalism/science system, but this first pass should give an idea of what we're going to build on.
There's also been polish, balancing, and various minor things added including a Textiles Workshop, Airdrop Paracrates, and better farm controls.
We currently have two biomes, one is "Temperate Colorado" and the other "Tropical Jungle". Each has unique flora and fauna, and the tropical biome is much more difficult to play.
The terrain generator is capable of much more than is currently shown to the player. At various points, as perceptive readers may recall, we have generated desert and swamp biomes, and the art exists to support these and many more biomes. We even have most of the technical capacity to expand the biome numbers, but we want to ensure that they play differently from one another before digging into what might be only superficial implementation. And besides, this requires a more fully developed economic system for biome-unique products well as more monster & animal content. With all that in mind, new biomes will be rolled out over time in thematically appropriate chunks with accompanying economic and animal assets as development on the game proceeds.
Project Progress: 80%
Playable Progress: 38%
Let's just roll "world/nature" stuff into this category because it seems correct: So! We extended the game's day/night cycle from 6 to 8 minutes total and made the ratio of daytime to nighttime a bit less extreme so there's more night. This was really important for human characters in particular, as mentioned, but affects anything else using nighttime behaviour. And although it is historically accurate for the night to be really dark, it made it difficult for the player to see what was going on (and for us to take screenshots), so we lightened it up a bit.
Apart from that, there was some polish of various art assets and a fix for the long-standing "2d plane" grass model. Most changes to nature itself were made in how people react to nighttime and in animal behaviour.
This category includes the world map itself, the ability for a player to found a new colony in different conditions based on where they choose to settle on the world map, tracking player progress through different settlements, interaction with different factions, and having in-game events (from the "events" category) tie in to what the player sees in their colony.
This is one of the least developed systems, but also one of the simplest with the fewest unknown variables because it interacts with the core character/colony simulation only sporadically and largely at the beginning and end of a game to provide context and consequences for actions taken in the body of the game. So far in development there's little point in having a meta-game without a strong core of the colony simulation game itself, so while we had a great time designing all the systems involved for the metagame and are eager to implement them, it's not going to get done until it's the best way to improve the game experience.
Project Progress: 16%
Playable Progress: 16%
We implemented the start of a Favour system in which earning prestige unlocks possible rewards (and prestige could be attached to the player's profile rather than individual colony, tying it to the metagame). Otherwise, development has been quiet on this front. The overworld will become more meaningful once other major features flesh out games systems which enable observable effects of the overworld on gameplay.
Networked simultaneous multiplayer has been planned for Clockwork Empires from the start and it must be planned from the very start for any modern game because it requires that the game engine and gameplay mechanics operate based on architecture which enables multiple instances of the game to coordinate events. It should suffice to say that this is a significant investment of time, but as any fan of multiplayer games knows, the reward is great. The underlying system architecture of Clockwork Empires has been built from the ground-up to support networking, using a deterministic lockstep architecture. Most of the required code investment is already done, and we have successfully run networking code on our internal LAN. We simply need to take the last few steps for completion, give the system a nice frosting of user-interface and usability features, then undergo testing, optimization, and "hardening" against poor connectivity and Interfering Firewalls. We also wish to have a better concept of what a multiplayer "game" of what Clockwork Empires looks like, and will write additional gameplay code to support this.
We also plan to offer support for non-simultaneous "multiplayer" games of Clockwork Empires; in these "succession" games, you play a game for a period of time then hand the save file off to a friend to play. They may hand the save file back to you, or possibly to some random person on the internet. This is fairly straightforward compared to networked multiplayer, mostly requiring game saving & loading plus ease-of-use features. It will also require some design iteration as we discover the most interesting ways to convey the concept of "succession"; this will in turn require some unique interface features.
Project Progress: 84%
Playable Progress: 0%
The framework for a player ownership system is being developed. Every object in the world ought to know who (if anyone) is its proper owner so that you order your own guys around and get in the appropriate trouble if you take someone elses' stuff. Proper implementation will require very small updates to many, many game scripts, so it'll be a while before it's done.
This category encompasses all of the audio assets, sound and music, heard in the game. The dynamic music system mixes up to six tracks of different moods together based on events in the game; for example, during combat more martial-feeliing music will play, and if weird monsters from another dimension show up, the music will get very strange indeed.
The dynamic music system was finished shockingly early, is implemented, and works. Not all of the events that should alter the mood of the music are set up to do so, however. This will require a series of housekeeping passes to go through all relevant events in the game and paste the one line of controlling script plus appropriate variables wherever needed. It's not difficult, it just needs to be done in a lot of places as development proceeds. In terms of sound effects, we need to tweak a few sounds, flesh out some more variety in assets, implement support for ambient and cleanly looping sound effects, and replace the placeholder character vocalizations. (Right now the character's are all voiced by Matthew Steele, whose voice you may recall as the announcer from Dungeons of Dredmor, though rest assured that he sounds nothing like that in Clockwork Empires).
All in all we're very happy with the way music and sound has come together so quickly.
Project Progress: 90%
Playable Progress: 82%
We're sitting on a lot of sound assets but a few features need cleaning up and a few systems need implementation to be able to do things like ambient sounds. On the upside, we have a ton of assets here just waiting to be implemented.
Some development of these features was slated for December but the time was taken up by core economy mechanics.
UI/UX is really important and deserves its own category! In terms of project assets this category includes the art for icons, art for UI elements (every window, every button), the illustrations for events and backgrounds, and any other visual effects used to signal the player about what is going on in the game that isn't a part of the game-world itself. Behind the art, there is an xml layer which controls UI layouts -- what goes where and controls what -- as well as how the art is applied to these layouts. Behind the xml is the engine's UI rendering system to draw the art to screen according to xml as well as the code to send player commands through UI layouts into the game itself.
It should be emphasized that the current state of the UI is not set in stone and we fully intend to continually iterate UI/UX based on player feedback throughout the course of development. Again, it's really important because the UI is what stands between the player and the game; it should have a facilitating, not frustrating, effect.
Project Progress: 85%
Playable Progress: 73%
The UI got a scattering of new little pieces - a Favours widget (to select how the Empire will reward your good standing), additional controls for buildings and zones, and a little consolidation plus the usual new icons for various commodities and actions.
There is a great deal of work to launching a sucessful commercial project which is not directly related to the development of the game software and art assets. Most of it is invisible to gamers, which is fine, but it is important in this circumstance to acknowledge the hard work and effort involved which is absolutely essential to the game even though it doesn't appear in the game itself. This overview will be necessarily brief and should serve only to give an idea of what has been done and remains to be done.
As a reward for anyone who read this far, we present to you a picture of Daniel's kitten:
For those of you who stuck with us 'til now, here is David's cat in a basket:
You lucky people! September gives you Nicholas' TWO cats just hanging out:
This month? You get Mr.Hamilton's 'pig:
Hello Margaret Catwood!
Here's David's other cat. No, really, this is a different cat. I can tell which is which. Usually.
November 2014 update notes:
So, this ended up being a weird month. Our plan was to go in and crank out a pile of economic features and UI in support thereof, but our MacOS/Linux build ended up requiring a two-week+ rewrite of the entire renderer to work with OpenGL 3.2 standards which took most core coder time away from economic feature development. That said though, there are indeed a few important features snuck in, details below. While held up on the big features required for the economy-focused work, a lot of secondary coding and implementation got done on other parts of that game which did not depend on the planned features. So this is all good stuff, just not quite the good stuff we expected this month to be about, and much of what we wanted to accomplish has had to be pushed back due to unanticipated complexity in getting the MacOS and Linux ports working.
As ever, adventurous players should opt-in to the "experimental" build of the game using the properties>betas option in Steam. You can see the new content we're working on plus receive specific technical fixes that don't affect enough players to require hotfixing into the public build.
Here are our development blog posts from the middle of October to the middle of November:
October 2014 update notes:
This month we've focused less on big showy things and more on the player experience. We've made existing gameplay smoother, fixed as many little broken things as possible, and have otherwise started putting together the infrastructure for really getting the game economy working. In this update, notably, the module construction and workshop system have received attention to set us up for further economic features. With the foundation set by this month, we will be able to implement much stronger economic gameplay in the following month (with details revealed as we implement them). Meanwhile, we've also put time into making the save/load system more stable, reduced combat micromanagement with AI improvements, and added an ammunition system to tie combat to the economy.
As ever, particularly adventurous players should opt-in to the "experimental" build of the game using the properties>betas option in Steam. You can see the new content we're working on plus receive specific technical fixes that don't affect enough players to require hotfixing into the public build.
Here are our development blog posts from the middle of September to the middle of October:
September 2014 update notes:
This is our second month in the public eye and our first on Steam as an "Early Access" title. It's an intense experience for all of here at Gaslamp to be putting the game out in the public on Steam. The feedback has proven incredibly valuable and we hope it shows in how far we've brought the game in the last four weeks. Our big features are new Cult actions, an entire new biome to play in (with new flora, fauna, crops, and cooking products), improved Fishpeople behaviour, conscription of militia soldier and better squad control, improved farming, and lots of general UI and stability fixes. All the details will be described in the categories below.
Here are our development blog posts from the middle of August to the middle of September:
August 2014 update notes:
Our first month of the public playing Clockwork Empires had generated a tremendous amount of feedback and a great deal of work has been done as a result. As expected, much of the initial technical was necessarily focused on getting the game to run at all on the huge variety in hardware and software setups that gamers own. Apart from that, the range of perspectives vastly increased which gave us a huge amount of user interface and "user experience" feedback concerning how the game is controlled and how information is presented to the player. Upon reviewing our changelogs from mid-July to mid-August, we realized that we did not include a UI/UX category on this page even though it's an essential component of Clockwork Empires. So we added a new category to track UI/UX progress! You will find it below.
More details about the month's work will be added to each section below. In the meantime, here are the development blog posts from the last month:
July 2014 update notes:
The overall status of the project is, as one would expect, quite far along. We've hit the point (as of July 2014) where the game is getting very visibly better with each update we send to testers, and the experience is becoming less about basic functionality as it is about playing the game itself. Hitting this tipping point was the most important criterion for us for any form of early access and we're at the point where people who want to participate will be able to watch the project take shape, submit bugs, help us prioritize features, suggest how to resolve design issues, and play the game largely crash-free.