Clockwork Empires: Development Progress

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. 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 view. If you would like to follow weekly low-level development updates, 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.

A note on progress numbers:
It is difficult to represent how complete 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 end 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 said, "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 holistic game aesthetic to build assets from, 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 the project was spent on infrastructure. Updates in the following months are showing the payoff of this investment as we rapidly implement player-facing content and game mechanics. It's an exciting time!


Total Progress

Project Progress: 80%

Project Progress: 80%

Playable Progress: 45%

Playable Progress: 45%

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.

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 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.


Project Timeline

In the broadest strokes, these are the major public-facing milestones of the Clockwork Empires project:


The Engine

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.

The engine is Windows only for the August 15th "Early Access" build. We anticipate MacOS and Linux builds in October and will keep you updated as development proceeds.

Project Progress: 89%

Project Progress: 89%

Playable Progress: 96%

Playable Progress: 96%

Latest Updates

The big ticket item in the engine is the save/load system which was released in a special public update a week after the regularly-schedule July 15th update. The next three weeks have seen a great deal of improvement in save/load stability as players discover every possible way to break the system. The other major item is a first run at AZDO rendering as described in the blog post here; this system greatly increases the performance of Clockwork Empires but is experimental so requires manually changing a flag in the game's configuration settings file. Adventurous players may read the blog post to find out how!

Other than that it's pretty much been "make sure everything is working correctly for everyone as much as possible".

Completed Features

Upcoming Features


Human Characters

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: 80%

Project Progress: 80%

Playable Progress: 60%

Playable Progress: 60%

Latest Updates

A ton of new memories have been added to allow colonists to react to all of the new and generally terrible things that can happen in the latest update. It was observed that we should have some positive memories too, so the concept of characters having friends was added and making friends will make people happy. On the other hand, unhappy people needed more interesting things to do so we made cults much more sophisticated and implemented some Terrible Things for them to do, including at the least The Act of Murder. We leave it to the Adventurous Player to discover what else cults can do.

Completed Features

Upcoming Features


Scripting System

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 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: 92%

Project Progress: 92%

Playable Progress: 100%

Playable Progress: 100%

Latest Updates

Some new hooks for minor functionality have been added. This'll let us do some cool stuff, but we'll tell you about it when we have the cool stuff happening. As before, this system is essentially complete.

Completed Features

Upcoming Features


Combat & Military

The amount of work done to bring this system to what we'd determine "ready for version 1.0" is around half of the total anticipated, but it is not especially visible in the game from a player's perspective. Military units defend the player's settlement, characters 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 characters who are attacked by invading fishpeople can be wounded and 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 just 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). A tester described fishpeople as "the goblins of Clockwork Empires", which summed up their state as of July. As of August, Fishpeople attacks trigger based on your population size and in response to specific actions. As of September, Fishpeople are armed with weapons both ranged and melee and have a concept of morale that may break in response to taking damage and seeing their comrades die, causing them to flee.

Project Progress: 45%

Project Progress: 45%

Playable Progress: 20%

Playable Progress: 20%

Latest Updates

Combat got more interesting! Civilians can be conscripted for combat duty as militia footsoldiers, and civilian workcrews can be conscripted entirely and turned into militia squads. Military squads - both professional and militia - can have rally points set per squad (and only one may be set per squad) giving greater control over troop positioning. The military is also smarter about not dropping their weapons as soon they're done fighting, which, yes, is important. The player may also build gabions to fortify their settlement. Fishpeople have become much more sophisticated and pose a greater challenge than before.

Completed Features

Upcoming Features


Non-Human Characters (Animals, Monsters, Vehicles)

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 done is that every other active entity (animal, horror, vehicle) in the world is just a simplified version of humans, so they're relatively easy to create in comparison. This process will probably be done gradually, in thematic groupings, as development proceeds.

Project Progress: 67%

Project Progress: 67%

Playable Progress: 34%

Playable Progress: 34%

Latest Updates

Fishpeople have received a great deal of additional sophistication including a concept of morale, a set of melee and ranged weaponry (which they use), and a concept of fleeing. Fishpeople attack events have aggression set per-biome. We've also added two new animals, the "Giant Beetle" and "Junglefowl", to the game to populate the new tropical biome. In very rare cases, a player may see a REDACTED, which will be very interesting indeed.

Completed Features

Upcoming Features


Buildings & Building Creation

It should be noted that we are including the mechanics of workshops, machine modules, dynamics (pipes), and zones (farms, stockpiles, graveyards) in this category. Think of it as "everything the player builds".

Procedural building geometry is pretty solid unless you know the Forbidden Arrangement of modules - which usually involves corners - to create Invisible Geometries. With all of this more or less working, we want to focus on improving the UI for placing buildings and modules as well as the gameplay effects of buildings and modules. 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. The last major features required for buildings is support for more varied building styles, including gabled roofs, windows, and more exciting decorations.

The backend for workshops is pretty much done, and as with anything will see further refinements in every update. They are not, however, interfacing much yet with higher-level gameplay mechanics that are not yet implemented such as dynamics (steam/water pipes, mechanical axles), module maintenance costs, additional really cool visual effects & animations, 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. On the other hand communists are pretty happy with all of this.

Zones, that is stockpiles, farms, and graveyards, have received a good bit of attention in the last couple months to get core systems of farming, organizing commodities, and burying the dead implemented. We're getting to the point where player feedback gives us some very solid directions to refine the features to provide better control with less micromanagement.

Project Progress: 81%

Project Progress: 81%

Playable Progress: 79%

Playable Progress: 79%

Latest Updates

First, the bad news: We've run into one of the "two steps forward, one step back" problems with buildings and the step back has required us to turn off the building renovation tool for now. We're going to overhaul UI for system (along with overhauling the economy of buildings and building progression). Trust us, though we'll miss rennovation for a bit, the usability and ultimate gameplay improvements will be well worth it. In happier news, work crews will do a far more efficient job of building a building by constructing all of the modules at once and focusing construction material on individual modules rather than constructing each module in sequence with just one worker.

We've added a new low-grade "stone oven" that acts like the "small oven" but cooking takes longer with it. This is a test case in anticipation of a large economic overhaul already mentioned and the system for upgrading modules which we'll talk about more in the coming month. Some new building textures were added as setup as well.

A new set of crops has been added to the game for the tropical biome: maize, chillies, and sugarcane, including food and booze products derived from them. The farming system was improved, with more animations and visual effects added, many of the old crop models updated, mechanics rebalanced, and new bad things can happen due to cults.

Completed Features

Upcoming Features


Biomes & Terrain

We were locked into the "Yellowstone" temperate biome, but we now have a new tropical biome! (Read more details in "Latest Updates" below.) 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. Just have the tropical and temperate biomes right now but the framework for adding new biomes is falling into place.

Biomes are really fun to make and relatively straightforward to put together once the art is done (and a ton of it is done), but it's important that the difference in biomes mean something before we shove them all out the door at once. As with non-human characters, these will be rolled out gradually in thematically appropriate chunks as development proceeds.

Project Progress: 77%

Project Progress: 77%

Playable Progress: 34%

Playable Progress: 34%

Latest Updates

We added the tropical biome! (We also added the code backend to support having unique biomes with different crops available to grow, different levels of monster activity, etc.) The tropical biome has a different topography, new flora, new fauna, new foragable foods, and new agricultural opportunities. We did this all really quickly in the week before the big September update was meant launch because we're kinda crazy - but it was too cool a feature not to implement, so here we are. A warning to the adventurous: the tropical biomes IS more challenging than the temperate biome.

Completed Features

Upcoming Features


Metagame / Overworld

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: 15%

Project Progress: 15%

Playable Progress: 15%

Playable Progress: 15%

Latest Updates

As mentioned in the last section, we added the tropical biome and the backend infrastructure to support unique biomes with their own plants/animals/crops. We also added a touch of new UI to allow the player to choose a different starting position. And, well, we've actually got a ton of possibilities for scripting things differently in different biomes to make them more distinct; It's going to start getting really interesting.

Completed Features

Upcoming Features


Multiplayer

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: 80%

Project Progress: 80%

Playable Progress: 0%

Playable Progress: 0%

Latest Updates

Multiplayer support has not been a focus. The biggest reason is that we would like more of a meaningful game in place before focusing on multiplayer because there's little point in multiplayer without a good set of systems to play around in. We're making progress to that point and, while we do all of that, are steadily assembling the multiplayer infrastructure required.

I am assured that NAT punching is now completed and this is really, really important for having networked multiplayer work. Good! Save gaves, as mentioned, are key to succession games so progress on save/load in general puts us closer to support for that. It was even observed in the office today that one could reasonably run a Clockwork Empires play-by-email game (PBEM) if one did all the work manually.

Completed Features

Upcoming Features


Music & Sound

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: 89%

Project Progress: 89%

Playable Progress: 82%

Playable Progress: 82%

Latest Updates

Not a lot of change here, but we have hooked up a number of sounds to the UI including sounds attached to the click-and-drag order system that fire based on what order you create. For example, mining will make a rocky crunch noise, chopping trees will make the sound of an axe hitting wood, and so on. It's all rather adorable.

Completed Features

Upcoming Features


UI/UX

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: 82%

Project Progress: 82%

Playable Progress: 64%

Playable Progress: 64%

Latest Updates

We added an in-game tutorial to the game! It turns out that no one ever reads the manual so putting a brief introduction to mechanics trigger upon game start (using our robust and fascinating events system) is the best way to introduce basic game concepts. It's a first interation, it's not particularly interactive, but it's something to start with and it'll ease new players into the game more easily which is generally viewed as a Good Thing.

Apart from that, lots of new icons went in, and minor improvements have been added all over the place.

Completed Features

Upcoming Features


Overview Of Additional Project Work

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.

Completed Tasks

Current & Ongoing Tasks

Upcoming Tasks


As a reward for anyone who read this far, we present to you a picture of Daniel's kitten:

CEO kitten

For those of you who stuck with us 'til now, here is David's cat in a basket:

Godiva in a basket

You lucky people! September gives you Nicholas' TWO cats just hanging out:

Vining Cats

Last update: 09/15/14