All posts tagged with "Fishpeople just want to be loved"

Clockwork Empires May Update: We Built This Colony With Hugs

Once more, a stack of Clockwork Empires updates appears in a neat pile. We present for you:

ce_2015_may_promo_illustration_small

This update will go live to every Clockwork Empires player via Steam!

We have also updated our Clockwork Empires: Development Progress Report!

(Don’t own the game? Clockwork Empires can be purchased on ClockworkEmpires.com via Humble or from Steam.)

Want to hear about all sorts of updates via email plus receive silly images from development? Sign up for the newsletter here.

Patch Notes:

{ read this article }

11 Comments

Happy Holidays From Gaslamp Games

fishmas_card

We’re taking the week off! If you’re holding an occult ritual this week, celebrating something more civilized, or if it’s just business as usual, we hope you have a great time doing your thing, and we’ll be back next week 🙂

7 Comments

Sympathy, Violence, Consequences

A Fishperson raider driven to violence by the plundering of their young for food rushes from the fog to beat a colonist with a coral club. Their fellow Fishperson-raider, a few steps behind, fires a spikegun with a ‘pop’. The terrified colonist falls over dead. The Fishperson with the club pauses at this, then turns and runs from the corpse in horror, back into the fog. 

Attack of the fishpeople!

Watery vengeance!

I didn’t anticipate this, though I wrote the script that made it happen: Seeing the corpse they created by killing the colonist pushed the Fishperson over the morale threshold that flips a switch that makes the fleeing behaviour much more likely. I had thought to simply have Fishpeople become demoralized by seeing other dead fellow-Fishpeople, but it was triggered by any humanoid corpse at all. A small mistake, but a really cool effect because it implies that these Fishpeople are not merely “the goblins of Clockwork Empires” but people of a sort that may, in their way, sympathize with your colonists. — Just so, sympathy is the goal of the latest efforts to increase the complexity of Fishpeople to start becoming more than ‘enemies’. Once enough features are fleshed out enough, perhaps they can become friends, albeit creepy fishy friends with some funny ideas about how things work and a penchant for inducting their land-based friends into the ways of The Deeps.

No one’s perfect.

{ read this article }

7 Comments

Ripe for Harvest! (And the CE rev30 Update)

Upcoming “Early Access” Launch of Clockwork Empires

On Friday, August 15th Gaslamp Games is going to be launching Clockwork Empires on Steam Early Access. We’ve been hard at work stoking the boilers and polishing the cogs for the big day. If I may be so bold: the game receives noticeable jumps in quality as each patch is released and we’re pleased with how things are coming along.

We will, by the way, be updating the Clockwork Empires: Development Progress page alongside the Steam launch so you can follow along with the overview of project progress as we transition from “Earliest” to “Early” Access. (Speaking of, the latest Clockwork Empires update patch notes can be found at the bottom of this post.)

Around here, it’s not just knife-fights and musical numbers – sometimes we even do some game design! Let’s talk about what people really play Clockwork Empires for: cabbage.

Farming Overhaul

That's no pumpkin!

(For our sharp-eyed readers: Can you find the pumpkin that isn’t a pumpkin?)

No, this is about farming actually. Farming got an overhaul and I’m going to talk about it.

{ read this article }

25 Comments

What Would You Say You Do Here?

An overview, with examples, of actual game development I’ve been doing with very few silly jokes.

Daniel has suggested that the fine readers of our humble development blog would not be so interested in the finer points of small business accounting even though it is utterly essential to our ongoing operations. Nor, he contended, would something so removed as a personal “Clockwork Empires Reading List” actually be relevant to the nitty-gritty of development as-such. Indeed, it is not always easy coming up with something to write here as many, many needs must be somehow balanced and the same goes for this.

I suspect, somehow, that a changelog direct from out SVN would not be helpful, though it contains gems (each an individual SVN commit entry) such as:

5836 – work*

5798 – fixing stew**

5796 -Making laudanum and sulphur tonic should theoretically work (when modules are fixed)***

* It was a vague day, one supposes.

Choose wisely.

Choose wisely.

** It works now. Before, stew was a valid ingredient for itself. This is in fact Realistic but also Not Useful for the purposes of game logic.

*** This is a valid sentence, as “should theoretically work” refers to both “making laudanum” and “sulphur tonic”. The description is incorrect however, in that just the making of these things should work; the Sulphur Tonic does not actually work.****

**** It was observed in a design discussion that the Sulphur Tonic should not actually work, just that it should cause people to think that it worked. This is a valid game mechanic in Clockwork Empires. I recall also Daniel wrestling with the problem of making people not go mad when they consume human flesh if they don’t know it’s human flesh when they eat it.

See the things we have to deal with?

{ read this article }

16 Comments

The Meat Tree & Fitting Pipes Together

I’ve been volunteered to write a development post, so here I stand begrudgingly, not unlike bauxite which eternally begrudges its treasure: sweet aluminum that bright and tawdry metal it is. And me? I bear only concept art for the Meat Tree as a sort of consolation for a lack of thematic unity herein. But wait- there are unifying elements to what I’ve been doing the past week that aren’t immediately apparent from “implementing and improving a ton of random tiny things to make a better overall game experience” and “going slowly, thoroughly mad”. We’ll get to it. First, that meat tree:

Why does the vegan draw so much meat?

Why does the vegan draw so much meat?

How does it grow? I’m not saying. What do you get if you cut it down? Meat, obviously.


 

Now that I’ve reeled you in on a highway littered with the sodden giblets of the Meat Tree’s broken promise, let’s make this post, as threatened, about the importance of animation timing or, more properly, all the complex moving parts that revolve around them. And if fit together just right they form something very much greater than the whole. Like Voltron.

Take the case of a soldier firing a musket at a menacing fishperson. (A shudder courses through my coffee-withered body; Komodo Edit flashes searing white light etched in courier new a record of torment.)

A soldier is a “citizen”* type gameobject. A fishperson is a “fishperson” type gameobject. Each will, if not otherwise occupied, query a global blackboard of jobs to find something appropriate to do based on a variety of conditions, then carry that job out. If hostilities exist between human and fishperson then one attacking each other is a valid job that each will attempt carry out (though only a citizen tagged “military” is allowed to execute attacks at this point). With the attack job acquired, a soldier will rush to grab a firearm if they’re not already carrying one, then will move until they’re in range of a target fishperson and open fire.

It's good to have a sergeant to watch your back.

It’s good to have a sergeant that watches your back – Fishpeople are everywhere!

(* Every time the word “citizen” is mentioned I will put forward my argument that the people of the Clockwork Empires are more properly labeled subjects because, if we are being Historically Accurate about this (and we are), that although the topic concerns citizenship, British subjects became allowed to be referred to as  “Commonwealth citizens” only with the passage of the British Nationality Act of 1948. So by Jove, all this “citizen” talk sounds like the work of La République Mécanique agitators seeking to undermine the monarchy or, worse, Communist infiltrators carrying out the diktats of their Novyrusian masters!)

Let’s break down how the moment of firing works.

Every “job” a character can carry out is broken down into FSMs – finite state machines – which execute a series of operations in a given order. If you get shot while, say, attempting to chug a bottle of whisky, your job’s FSM sequence can execute an “abort” call which could (say) cause the bottle of whisky to be dropped. Here’s the FSM sequence for shooting a fishperson (or other malevolent eldritch entity):

  1. <attack_ranged input=”entity” name=”run”/>

Yeah, that’s it. The attack_ranged FSM probably holds more logic than it needs inside of itself, everything for moving into range of a target, repositioning oneself if the target moves, and finally entering the firing sequence if both the subject and target are in the range that the firearm being held by the subject says it has.

Phew. Let’s look at the firing animation:

Don't be alarmed by what appears to happen to the soldier running to the left -- this is from the same video the above shot was captured from!

Don’t be alarmed by what appears to happen to the soldier running to the left with the splash of blood and all– this is from the same video the above shot was captured from, so that’s totally fish blood spraying all over.

The particles (by Mr. Triolo) and a lovely sound effect (by Mr. Steele) are attached to the appropriate frames of the animation (by Mr. Triolo) running on the NCO model (by Mr. Nejat). With all of that work done and packaged by all those guys, back on the scripting side of things we just have to concern ourselves with running the animation and triggering scripts at appropriate points. The sequence is essentially this:

  1. Load & execute pistol firing animation on to character
  2. Wait X gameticks until the point in the animation where the pistol has appeared to fire, then send the target a “damageMessage”.
  3. When firing animation length in gameticks is hit, load & execute the default do-nothing animation and find a new “job”=

Anyhow, the next character job is probably going to be “shoot the fishperson” again unless the soldier’s morale breaks or they’re set on fire or something, so the system works pretty well. The timing and functioning at stage 2 is the tricky part – sending information to objects being interacted with. Aesthetically the value of X here is interesting because if it’s off by just a little, the entire interaction of each animated character, sound effects, and particles will intuitively feel wrong. So let’s get it right.

So that’s great and the timing is visceral and lovely, but how about that “damageMessage”? This is a collection of information that the FSM pulls from the character’s item about what type and amount of damage it does which is sent over to the receiver of the damage to decide how they’re going to take it. A Steam Knight for instance will shrug off most damage types and simply play a metallic “ping” sound. A fishperson, however, is soft and fleshy and will shoot out blood (triggered via a script command) and take injuries (via decrementing hitpoint integers and possibly adding special afflictions).

At that point, you say, shouldn’t we play a “get hurt” animation? Why yes! But this is where it gets more complex: We’re in a position where one game object is pushing animations, usually covered by the “job” system, onto another game object. What if the target of attack is in the middle of walking between tiles? What if they’re having a conversation? Everyone needs to know how to abort properly, what to do next, and figure out at what point they’re allowed to query their status to figure out what job they should be doing next. I’ve been considering the idea of animation interrupts detached from the job/FSM system, but anything inspired by one of the more confusing Magic: The Gathering mechanics is probably not a good idea. Maybe I’ll pass this to Nicholas to figure out. [Note: We know how to solve this and just had a big talk which ending up with all the partners agreeing that this was relevant to the discussion.]

I've got an icon for this.

I’ve got an icon for this.

(Related: we have a “Run Because I Am On Fire” job which becomes unbearably important to execute if you have the “on_fire” tag, but I talked about that already.)

In conclusion, there are lots of little pieces of art and code that need to fit very cleanly together to allow systems (ie. a character) and their meta-systems (ie. a workcrew), and their meta-meta-systems (ie. a colony) to execute in a technically smooth and aesthetically pleasing manner. They also need to interrupt each other in similarly pleasing manners when things go terribly wrong in your colony and characters rather impolitely interrupt one another.

This is where, as I’ll always insist, it gets complex.

21 Comments

Thaddeus Bronzewhistle, Loyal Subject of The Queen

Bureaucracy is of utmost importance to The Empire.

Bureaucracy is of utmost importance to The Empire.

My name is Thaddeus Bronzewhistle and I was born in the 49th year of the reign of The Queen. I left civilization to promote the ideas and ethics of Science. I worship at the altar of celestial order, as is right and proper for a Subject of The Queen. My barber has commented that I am a fine specimen of my Class, with a stance neither above nor below my correct Station in life: The Middle Class.

I'm really awfully glad I'm a Middle Class.

I’m really awfully glad I’m a Middle Class.

 I hold it not against the Creator that I have been placed thus in life, for my Station is the logical result of the Machinations of Fate. But were I born an Aristocrat I would be able to fully devote myself to the Noble Calling of Science, though I shall not indulge in thoughts which are against the Natural Order of the Universe for such thoughts lead to Madness, as well we all know from the terrible stories one may read in back pages of The Empire Times.

{ read this article }

16 Comments

The State Of The Empire

So January!  Hello!  We’ve been working on Clockwork Empires for – I feel safe to say now – a fairly long time.  There’s a lot of code in there, and you guys haven’t been able to play it yet.  We all wish that weren’t the case, so I guess I should tell you what we’re doing about it.

THIS IS MY LIFE.

THIS IS MY LIFE NOW.

Mid-December to the present was mostly a write-off due to familial obligations, plague, and stress relief in various forms, but some secret work was undertaken on the dreaded UI.  It was sort of like that montage in the Lord of the Rings where Gandalf leaves in the middle of the battle to go read some dusty scrolls in Gondor, except that was David, and it was a copy of The Elements of User Experience.  Suffice it to say that things are looking much better in that department.  Our loose framework of “technically sufficient” programmer tools are starting to actually indicate what they’re for.  It’s pretty cool, and a surprisingly laborious and meticulous job.

{ read this article }

16 Comments