Last update: 2014 October 16
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.
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 status 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 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 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 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. It's an exciting time!
Project Progress: 82%
Playable Progress: 49%
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:
(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.
Clockwork Empires will come to Linux and MacOS before the end of October.
Project Progress: 90%
Playable Progress: 96%
We'll announce through every possible means when the Linux and MacOS versions of Clockwork Empires go live!
Apart from that, engine-land has been focused on improving the stability of saving and loading the game, plus giving the player some feedback about this process successfully executing. There is also a rendering improvement that, well ... here, just have the bullet-point below. Other than that, primary code team focus has been on technical infrastructure for the economic gameplay (which we'll talk about in the "Buildings & Building Creation" section).
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: 81%
Playable Progress: 62%
This month has seen the most updates to character-related gameplay in the combat section, but non-combat behaviours have received a good deal of fixes and balancing which just make things feel better and work better.
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: 94%
Playable Progress: 100%
As with last month, we got a few new script hooks that allow us to flesh out some really interesting gameplay possibilities in upcoming development. Some improvements to the save/load system also trickled into scripting, which should make the game in general more stable.
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 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: 50%
Playable Progress: 30%
Combat inadvertantly received a ton of attention this month! We implemented an ammunition system to tie combat to the game economy, landmines can be placed, and civilians are able to "Raise Alarm" to call soldiers over to defend them, almost eliminating the need for rally point whack-a-mole. And, in general, more stuff can happen and characters are just smarter about dealing with it.
There has also been some investment of time into some general systems related to combat that are not yet ready to play with, so we'll talk about those when they're playable. This also encompasses generalizing some of the improved combat behaviour/waypointing to non-player combat characters to improve their behaviour.
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: 69%
Playable Progress: 37%
Like with combat, this month saw some somewhat inadvertant scripting work done on animals and fishpeople as the deeper technical infrastructure for advanced economic gameplay was being worked on.
Large herd animals will now attack hunters if attacked; this is particularly dangerous with the Giant Beetle due to it being given the "armoured" ability and thus taking rather little damage. Fishpeople have been given the ability to attack objects in a general sense (was just crops before), so they will attack gabions and crops - and this gives us a framework to have them attack all kinds of things once we script the ability to do so.
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: 83%
Playable Progress: 81%
Workshop renovation is back! That is, you can put new modules into existing buildings after they're built. This is the tip of the iceberg for an overhaul of the construction system being done to better tie construction to the higher level economy as well as upgrade the building code so that buildings can be interacted with much more intelligently and dynamically. Apart from building and module construction, the way workshop jobs are done has been improved, so (for example) we may now have stew cooked without requiring someone watch the pot boil - in fact, given materials, one cook could have four stews going all at once. This will improve workcrew efficiency greatly and encourage investment in more modules, which is just the beginning of the economic improvements we're anticipating to get out of this development arc.
Oh yes, you can flatten terrain now. No more being thwarted from building your perfect colony by tiny hills!
Randomly, windows now work. Have fun with windows! (The structural element, not the OS.)
Other than that, a ton of fixes have been done, and the code back-end for future economic gameplay is being worked on.
We have two biomes, one is "Temperate Colorado" and the other is "Tropical Jungle". Each has unique flora and fauna, and the tropical biome is generally 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 actually play differently from one another before digging into what might be only superficial implementation and this requires a more fully developed economic system as well as more monster & animal content. So that said, 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: 78%
Playable Progress: 36%
After we added an entire new biome at the last minute in September, we calmed down again on this front and have mostly done polish and fixes. As mentioned above, focus is being put on making the economic gameplay more significant, so we don't want to add new biome content without the player being able to do interesting things with it.
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%
Playable Progress: 15%
Last month saw the biome implemented, so we've gone quiet on this front again while we focus on fleshing out gameplay so that the metagame can have more interesting & unique effects on the player's experience.
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: 81%
Playable Progress: 0%
As said last month, although our engine is built from the ground up to support multiplayer, it is not a focus of our development until the base game has enough content and is stable enough to support an enjoyable multiplayer experience. Regardless, some more work on getting networking working has trickled in.
That said, the various save/load stability improvements added in the last month do have applications to the succession mode of multiplayer.
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%
As this area is mostly done, there are not a lot of changes to report. We have an enormous amount of content waiting to be implemented, and we've got some more this month. It's just a matter of it being the right time to do so as well as getting a few more sound syste, features to allow, for example, game objects to play looping ambient sounds.
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: 83%
Playable Progress: 67%
The two big areas of improvement here are the UI relating to placing modules (and the filtering of giants lists of modules) - we blogged a bit about this - and of using a lot more game log text alerts to provide more information about what's going on. A few alerts have been added so the player knows when stuff is going wrong with Fishpeople or Cults as well, because what's the point of [REDACTED] if you don't know about it?
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:
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.