December Technical Status Update: Santa Quag’garoth is Coming To Town

At a certain point, game development just comes down to iteration. You build a big pile of things, and then you iterate on them.  Then, you iterate on them some more… and then some more. Eventually, after enough iterations, you get a game, or the Standard Template Library (whichever comes first.)

One of the major driving forces behind said iteration is the fact that the game is now in the hands of Real People, in limited quantities. We have done five internal test releases so far – a bit slower than I am happy with; the first four test builds mainly focused on performance and getting things working somewhat better on people’s terrible hardware (see blog post from a couple of weeks ago); the fifth test build put combat, barbers, and phrenologists back in the game, as well as turning on More Useful Features (like mining.) So what we have right now is a game buried under a shameful selection of UI failures, which we are now trying to extricate ourselves from for Revision 6. This has mainly led to David learning how to use the Doctor Nicholas Vining Patent XML UI Syntax Guaranteed to Vivify The Spirit and Improve Marriage, which has led to this:

Secretly, I think we’re all just wishing for the good old days when he would send me large Excel spreadsheets of coordinates for Dredmor…

However, this is starting to work. David has drawn many icons, and life is good. Consider the work party panel, before this week:

shot223

I regret ever drawing that header texture. -db

David sent me a bunch of art and a new mockup:

work_party_panel_design

Riveting insight into the 24/7 party that is game development!

And we are now converging on an approximation of that in the game:

workpanel_ui2

More brass and parchment please.

Note that all the things in Mr. Baumgart’s illustrative drawing (above) need to be hooked up; the militia button needs to cause an Angry Mob, right-clicking people need to bring up people’s character menus, etc. Still, it’s starting to look like a game. It’s all coming along nicely, and I basically get to spend the rest of this week working on User Interface Stuff before Revision 6 goes out to the pre-alpha testers. My mood at the end of the week probably looks like this:

This is basically how user experience testing works.

Speaking of finishing things, Mr. Steele has now completed a first pass of all of the music – all four hundred and three megabytes of it! – and we have hooked it up. We have to remaster and adjust tracks to make the dynamic music system work better, but for the most part he’s on to sound effects.

Darned Fishpeople! Give 'em whatfor.

Darned Fishpeople! Give ‘em whatfor.

Combat has proceeded apace, and we are now equipped with a first draft of “real bullets that fly out of a gun and hit various objects, not necessarily their intended targets” – tracers, in industry shorthand:

These will get a couple of prettification passes before release, as well as muzzle flashes on the guns and maybe slightly better predictive targeting (to ensure that they aim where their target is moving *into*, rather than just behind them, if they actually hit the target.)

People now correctly use claimed buildings! People have been able to claim them for awhile, but only recently has it started to have some sort of impact on gameplay. The big impetus for this came out of testing, when we discovered that, no, having overseers have work parties of lower class labourers having to run all the workshops wasn’t all that fun. Artisans, therefore, are middle class citizens (with work parties) who will claim any workshop for which they currently have the skill enabled, and will perform tasks therein (as well as any lower class folks you might assign to them in the work party.) Carpenters, given a carpentry workshop, will churn out a sequence of awful planks. Barbers, given a barbershop, will now also collect those who have been wounded in battle, and will subject them to Medical Care. (Please note that any individual who is working in a barbershop will *also* try to give medical care to nearby folks, probably using whatever is nearby.)

phrenology

Tis’ a noble calling.

Phrenologists will, given a phrenologist’s workshop, visit people and by examining their skull determine character traits and whether they are a Traitor To The Crown, in which case they will be added to A List.

People can now also do work asynchronously. If you have ten ovens in your refinery, a refining artisan can (given enough lumber, hopefully placed conveniently in the stockpile outside the loading bay) keep them all full and convert logs to charcoal without having to actively stand over the oven while the logs cook. Possibly, while he’s not converting things to charcoal, he can be refining ores from the mines. The actual workshops themselves are starting to fill up with useful things, ranging from the manufacturing of planks all the way to laudanum. You can now also add or move machines and furniture in a building once it has been placed, and building roofs now have trim (and are waiting on Art for us to check them off.)

A lot of work has been done on pathfinding lately, as shown in our teaser trailer. Characters will now circle around each other, and won’t pass through each other (see the start of the trailer where people are lugging vegetables back to stockpiles.) This leads to lots of interesting problems in, say, doorways, that Micah is diligently working to resolve. Currently there are cases where we might search an entire path for the world, which our pathfinding algorithm (A*) will do quite happily, but which will cause a reasonably large slowdown for that particular game frame. Because the game runs asynchronously from the renderer, that’s not so bad – however, it still causes a hiccup. We’re fixing this by tracking connected components to support fast A* pathing queries, and doing some special case stuff for doors; this should do the trick.

Micah has also added The SuperConsole – an improved debugging console which we can dump debug information to in order to figure out what the heck is going on. Between that and optimizing terrain generation and load times (the speed of the marching cubes algorithm we use to generate polygonal terrain data for the world has now dropped from 10 seconds to 8 msec, for instance), we can iterate on stuff a lot quicker.

So, yes! Pre-alpha testing is starting to pay dividends, and we are converging on what we need to do to make this “a game that is fun” and not “a selection of things in an engine covered in programmer art.”

Posted in Clockwork Empires | Tagged , , , , , , , , , , , , , , , , , , , ,
13 Comments

13 Responses to “December Technical Status Update: Santa Quag’garoth is Coming To Town”

  1. musteline says:

    where are my bugs? :P

    { reply }
  2. Tyler says:

    I’ve only recently heard about this game and am very interested in it already, I love (still playing it on and off) Dungeons of Dredmor – the humour, the spirit, the randomness – and am glad to see that you’ve kept true to this. The whole idea reminds me a little of a book by Terry Pratchett, except with a lot more steampunk (which by the looks of things you wanted to put more of in DoD)

    In fact, even the posts you put out keep the same tone and it’s reassuring to know that you care about what you make, because there’s just so much of “you” in it.

    But yeah, I’m looking forward to playing it when it’s out, put my name down for beta testing and everything.
    Makes me want to go join the forums and start contributing my own ideas, such as they are.

    For example, eventually having different colonist leaders, such as Russian for example, seeking new land for ze glorious homeland. The Labourers could be Comrades.

    { reply }
  3. rydash says:

    I like that this blog post has so many tags.

    And yet mysteriously absent is one that says “technical excellence”, despite the improvements…

    { reply }
  4. Daniel says:

    IT LIIIVES!

    *lightning crackles from a malevolently purple cloud onto the ratty TV antennae atop Castle Gaslamp*

    { reply }
  5. Headjack says:

    Shall they walk about with a maddened gait or revert to normal walk cycles, possible due to Deception?

    { reply }
  6. Tyler says:

    I have been following this blog for soo long its awesome to see everything coming together. Can’t wait.

    I for one would like to petition for the equal rights for all fishpeople. I mean how else can we trade for those delicious crabcakes?

    { reply }
  7. Jabberwok says:

    I’m excited about any game that includes a phrenologist’s workshop. I’m curious as to how accurate their quackery will be, though. Is this a parallel universe where prenology is legitimate? Also, will citizens will be able to pass through each other in cases where there is no way to go around?

    { reply }
    • Tyler says:

      What do you mean will phrenology be accurate? How dare you question valid science like that! You must have a low forehead…may the queen have mercy on your soul sir.

      { reply }
  8. Björn Winnerstam says:

    I was also thinking of Terry Pratchett because you write a bit like him. Ever thought to be a writer? I would by your books :-D

    { reply }
  9. Bropocalypse says:

    I suppose it’s too far in the future to consider JPS for pathfinding. Then again, what it gains in efficiency it loses in flexibility.

    { reply }
  10. The Chaplain says:

    O boy, oh boy, oh boy….
    Wait! Where’ the hats? Shako for soldiers and caps for labourers, etc? Don’t forget to make hats! Shako’s, helmets, bowlers, top hats, caps, gas masks!

    { reply }
  11. Zentay says:

    Sounds like it’s slowly starting to come together. I think the worker panel could use more variety in colors. A background of aged, polished wood in a frame of hammered iron would do wonders.

    { reply }

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>