It’s been awhile since we checked in with the programming side of things. I put out a call this morning asking “what would people like me to talk about?” Interestingly, the main thing was the UI, and how we’d make it Not Awful. We’re not talking about the context-sensitive UI because we haven’t worked out all the details yet, but we’re working on it. Instead, let’s talk about the general state of programming.
So what have we been up to over in Programmer Town?
It’s starting to look like we might actually be working on a game. This, personally, is one of my favourite parts of game development: when all the little abstract bits and pieces of art that you’ve been making since – well, since forever – start to snap into place and things start happening and looking pretty. What you see here, as always, is WIP shots from my screenshot directory.
Since we last left our heroes, a bunch of stuff has happened. Chris Whitman, who you may know from his work on Conquest of the Wizardlands, has been building a new, pretty interface for constructing buildings and workshops. You can now draw out a building blueprint:
Add stockpile designations:
Place additional modules:
and a building is created.
We’re still trying to suss out the right interface for selecting wall stylings, but that’s on the TODO list. You can even decorate it with windows, lamps, and other useful features.
Dynamics modules can be placed, and their inputs and outputs are previewed.
(We’re actually in the middle of a knife-fight in THE PIT about exactly how much we want the user to plumb things in themselves, and whether or not giant cities full of terrifying amounts of piping are, in fact, fun. They’re certainly visually pretty.) Anyhow, here you get a Steam Turbine with two inputs for Steam and two outputs for Mechanical Force. Maybe you want to hook them up to some more menacing pipes at some point, I dunno.
You may also have noticed that our building footprints are now a lot more complicated than the last ones that we showed. Most of the exploding building bugs have now been – thankfully – resolved. We still have a few issues where the odd triangle is flipped incorrectly, and so it doesn’t light up right, but I’m hoping to resolve that soon enough. If you look closely, you can see it in the shot with the lanterns. We also added support for rigid body animation, which means that our steam turbine has nice moving gears that correctly turn the shadows around, that sort of thing.
Chris also added support to our widget library (Illusion) for transparent widgets, changeable fonts, skinning, motions, and motion tweening. We’ve added the ability for objects in the world to have tooltips. This is in preparation for the big context-sensitive UI push, which David says I shouldn’t talk about until it’s in and we know if it works.
I have mainly been alternating between character code, tool improvements, rendering improvements, and management. Enough work on the character code has been done that people will now get their jobs, go do them, and wander back home to their stockpile. The basic framework is done, but there’s a lot of fiddly little programming to handle all the special cases (eating crimble, consuming Laudanum, going mad) and making sure that people know when they might want to do those things.
I also put in a new water renderer one day, which you can see in these pictures, because the old horrible one was annoying me. This isn’t final, but it looks much better. We added ambient light – dynamic lights for lanterns and explosions are coming as soon as I have a spare day – and made the ambient occlusion term a little less moody, so that humans were not surrounded at all times by terrible clouds of awful darkness. In general, the game sort of feels like “oh, I might want to play this!” and not “oh dear, look at all the awful things.” That’s good news.
This bug, from a rewrite of the texture code, was Bad News. Bad news, in this case, took the form of Terrifying Plant People.
The other nasty bug we had, which caused no end of trouble throughout all of last week, was a random crash bug. After much intensive debugging, and no end of swearing, we finally figured out what the problem was – when the queue of messages between the renderer layer and the gameplay layer overflowed, the memory copying would randomly destroy a large chunk of memory. (Unlike Dredmor, where we do the rendering and the gameplay on the same threads, CE keeps the rendering tasks and the gameplay tasks in separate threads and they communicate via a message passing interface.) Tracking this one down was not fun.
Micah has been busy working on the networking side of things recently, and we’re on track to have a first pass of that done by Christmas. All the socket stuff has been done for a long time, thanks to Ryan; we’re only just now getting it plumbed into place. Ryan, meanwhile, has a first pass done of the new dynamic music system. This is very interesting, and we’ll see how it turns out; we track six moods (ambient, productive, discovering, battling, tragedy, insanity) and combine various audio tracks to better reflect the mood of the game.
So, yes. Everything’s chugging happily along. If anybody wants me, I’m going to go get some more coffee now.
Another great blog entry. I don’t think I’ve ever followed the development of a game as closely as I have this one.
Except for one space game (Why does the name escape me NOW of all times?) which I followed for about a year then actually did some writing for them. But they were wacky, with one guy doing all the coding/programming/engine-building and the community doing the rest of the stuff like modeling and texturing.
Would that game be Infinity – The Quest for Earth? That sounds kinda like it, though I think the guy has a team now.
You know that now you have to include Terrifying Plant People into the game.
Absolutely concur! Have it as an Ungood Event from opening one of those Artifacts That Should Never Be Found things I keep hearing about. Or even have it as a Good Event…plant people would need less food after all.
In either case, awesome read. I only recently found these (yesterday) and read through them all and was excited to see they’d show up Wednesdays. Yay, Progress!
I love being able to follow the development like this. I want to go forward in time, to when I already have the game 😀
Oh and +1 to the Terrifying Plant People thing.
When I saw the terrifying plant people I was like “Gee, I’d suggest for them to be in the game, but I imagine everyone in the comments already did that for me”
I’m never wrong.
Terrifying Plant People? Sounds like a great way for my first colony to meet its untimely end! +1 to that.
Great job with these blogs. Usually when I see an interesting game in development, I check out the precious few press releases, and I wait for the game to come out (and forget about it). This blog allows me to keep up thus, stay interested. Can’t wait to play the final version!
Dynamic music is pretty ambitious, but if anybody can do it, it’ll be that Gaslamp crew. So somewhere in the innerworks there’ll technically be a gauge that reads “Insanity”, and then it’s referenced to create music. Profound.
I imagine it won’t so much create original music as it’ll have several different tracks that are dynamically mixed together. Lots of games do this, Lucasarts’ old eMuse system comes to mind. I think Fallout: New Vegas did something like it, too.
Anyway it usually works out pretty well so I’m all for it.
This post is one of the best posts yet! I do love the layout and things look rather beautiful. I hope to have an 8 core computer by the time this is released, all rearin’ to go.
As for the pit problems, there NEEDS to be some amount of pipe. It can’t be underground, it has to be subject to natural disasters as well. As for the player laying down the rules, if the player is a true bureaucrat, they should handle it in bureaucratic fashion… namely micromanage the laying of the piple only for things that truly matter to them… like their mansion. Let the plebes handle the details for all the stuff that isn’t super important.
Finally dynamic music really REALLY interests me. Are there any examples in gaming where this exists? Are the tracks made to be able to play overlapping parts? Or are there elements to each mood that can be seamlessly combined? I sure hope you guys release some audio examples!!!
Audio examples would be good. Variable mix music is always welcome.
also really like the construction system. Don’t have much of an opinion on pipes so long as there is some way of reducing sprawl (like high capcity pipes or above the buildings)
I want Terrifying Plant People to be in the game in some form or no purchase.
(That’s a joke, but still, come on! They’d fit right in!)
More and menacing pipework! Plumbing simulator, ho!
Also, re. no terrible clouds of awful darkness: not going for realism then?
I think they meant there will be no terrible clouds of awful darkness BY DEFAULT.
Just wait until citizens start digging black-glow ominous rocks from the bogs, and arranging them neatly in every street, then you’ll see the terrible clouds of awful darkness.
I think this pipe routing could be a fun mini-game. You’ll have to be sure you want to spend player attention on it though. The rewards better be interesting
On pipes: this is one of the elements of CWE I’m looking forward to the most. Planning and managing systems such as this one is quite fun for me.
Late game, being able to sit back and look over MY city, that I planned and built, is uniquely rewarding.
My giant city may have a terrifying amount of pipe, but dangit, it’s MY giant city full of terrifying amounts of MY pipe!
I totally agree. Building a mind-bendingly complex system of pipes and machines and factories and unnecessary cogs is what excites me most about this game. I wouldn’t want to see that simplified away.
That said, I think Gershawl’s suggestion is a good one. Give players the option to either build the piping themselves, or let the computer build it for them.
I agree with having intricate piping! let me have a macro experience sure; if i want. but then let me zoom in and get my hands dirty if i want.
say u need piping from a steam source to a factory. u can click on both to have the computer manage the piping or i can check a “do it yourself” box and then it brings up pipe types and stuff my current civilization has in store.
the art style seems intresting as in not normal as in i like it. if you guys could keep that water lookin a like it a does….thankssss
Horrifying plant people are now demanded. Also, if possible, giant pink scorpion diggles need to make a cameo, but knowing you guys, you’re already working on it.
WHAT HAS SCIENCE DONE
NO, REALLY, WHAT
All of this just makes me want this game so bad.
Like the updates a lot, keep em coming 🙂
You seem to be progressing nicely 🙂
A: I want this game very very bad.
B: Regarding the current debate in the Pit, what about multiple-layered cities? Spires of buildings stacked one atop another in a most precarious manner that is nonetheless the result of Perfectly Safe Architectural Engineering, the whole crisscrossed with network of pipes and tubes and steam vents and chimneys(all, of course, results of Perfectly Safe Steam Engineering)?
Terrifying plant people could make excellent villains/monsters for the future of gamemaking.
They’re possibly scarier than Slenderman.
The plant person is vaguely Doctor Who monster. 😀
You should have realised by now that showing bugs like these Interesting and Completely Harmless plant people contractually obliges you to add them to the game.