Last update: 2014 November 18
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 Chairman 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: 84%
Playable Progress: 52%
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 econonomic 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:
(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.
While we anticipated that Clockwork Empires would come to Linux and MacOS before the end of October, this has been delayed due to requiring a massive rewrite (more below) - it'll be out in November. We want to thank our Mac & Linux fans for their amazing patience during this wait. Don't worry, we want to get this game to you as soon as we can too!
Project Progress: 92%
Playable Progress: 97%
We'll announce through every possible means when the Linux and MacOS versions of Clockwork Empires go live!
Engine-land has been taken over by a giant renderer and shader re-write and the unanticipated additional engine work required to get the game working on both MacOS and Linux. The advantage of this for Windows-users, by the way, includes improvement in graphics rendering performance. Apart from that, a number of weird crashes have been taken care of.
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: 82%
Playable Progress: 66%
This month saw the arrival of Vicars and a lot of general balancing, fixing, and polish on character behaviours and even appear (in the sense that making lower class characters look dirtier is an improvement in expressing their social class visually). Colonists will also, importantly, return to town if they find themselves off in the woods and are slightly smarter about not ending up in situations that cause them to die. Speaking of dying, civilians can join in on FRONTIER JUSTICE using the power of MOB JUSTICE. Snubbing was also added so that upper class colonists have something to do.
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 has been the case in the last few months, we've got a few new script hooks that allow us to further flesh out some cool gameplay possibilities and the usual handful of stability/error-checking improvements. All in all, not much to report here.
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: 52%
Playable Progress: 35%
Combat inadvertantly received a bunch of attention this month again, just like last month! Which is a bit weird, but it's a relatively easy system to flesh out without requiring core coder resources (which were, of course, focused on MacOS/Linux and the rendering rewrite) - and players really love tellings us about how combat is going wrong when it goes wrong for them. Which is fair.
The biggest feature here are the new bandit attacks! Bandits can now attack the player and steal stuff - or the player can submit like a coward and let the bandits plunder their colony. We've also got a new affliction system (aka permanent wounds) for all characters human, animal, or Other. Commodities can be destroyed by explosions (and explosive commodities will explode if damaged). Fishpeople's grenades now work (and provide a basis on which to make grenades work for humans). And a mess of combat action balancing/tweaking/expansion has been done to make combat work better.
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: 72%
Playable Progress: 40%
Eerily similar to last month, this month saw some a lot of somewhat inadvertant scripting work done for animals and fishpeople as the deeper technical infrastructure for advanced economic gameplay has been delayed.
A lot of animal behaviour has been fleshed out; carnivores can attack herbivores in packs, will tear apart their prey (effectively "butchering"), and consume meat they come across. Herbivores have enhanced fleeing behaviour (which, granted, doesn't sound as impressive as what carnivores can do). We also added a few new animals, which are always fun. And animals now properly use the job interruption system that only humans previous had, making them act much smarter about what they do (this goes for fishpeople too, by the way!).
In eldritch creature land, Fishpeople got their urchin grenades working (as mentioned in the combat section), have simple personality traits that determine their reactions to certain events, and may form raiding parties from idle fishpeople when "rallying" over various causes like plundered eggs or dead comrades. We should say here that now that bandits are in to provide a combat challenge, we're going to tone fishpeople back a bit and start givening them more features of cosmic horror rather than acting like "the goblins of Clockwork Empires".
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 find an edge case in blueprint placing rules. 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 mechanics that use constructions. 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 stuff 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: 86%
Playable Progress: 84%
The big ticket item here this month is the concept of workshops having "standing orders". You can tell a workshop to "make sure there are 10 pots of stew in the colony at all times" and it'll automatically order up more stew if your colonists consume your stocks of stew. This will reduce micromanagement, moving us toward the idea of "setting policy" rather than making the player make every tiny decision themselves.
Oh, and we got Chapels. Build a Chapel and a Vicar will show up to see to your people's spiritual guidance! They really need spiritual guidance, judging from the huge number of cults on the Frontier. (This also provoked us to make a new subtype of workshop, internally called an "office" because we couldn't think of anything better at the time. The "office" is different from a workshop because it provides a service without necessarily doing any commodity transformations. This gives us important framework for future content, stuff like Barbers, Laboratories, and Bureaucrat Offices.)
Apart from than that, lots of little fixes and further work on the code back-end for future economic gameplay is being worked on.
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: 37%
Visible development on biomes is mostly restricted to a few assets upgrades and improvements in the swamp forest (plus new animals, though that was discussed in another section). The not yet visible work is significant progress toward the assets required for our next biome, which won't be revealed here and now because that wouldn't be as Fun. Rest assured, it'll be neat.
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%
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: 81%
Playable Progress: 0%
As our core coding efforts have been focused on other areas, multiplayer has not been prioritized this month.
However, ongoing improvements in save/load stability have been trickling in steadily as they've been identified and fixed and these 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%
The same description as last month applies quite exactly to this month. Mostly done here, we got some more assets to hook up (and a couple were), and need some feature development to implement the last few handfuls of assets - eg. looping sounds, ambient sounds, better positional sound.
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: 84%
Playable Progress: 70%
The big item here are some new workshop panel controls added as part of our economic gameplay push - this allows you to create standing orders to maintain a given number of a commodity in stock at all times. So instead of mashing the Planks and Stew buttons, you can give orders to always have 10 of each around. The jobs panel also got add worker and remove worker buttons Other than that, more informative alerts and log messages have been added with lots of new icons.
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!
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.