Archives: gallery Posts

Objects – A Sneak Peek

A lot has been said about Human Orbit’s AI but we don’t often mention the role the objects in the station play.

Every object you will see in Human Orbit has some sort of practical function or has personal meaning to a character on the station. We have no desk clutter placed solely to make the environment feel real, we have no faked machines designed solely as a backdrop. All draws can be opened, all objects have their use, if you see a washing machine then you can wait and see how the characters use it to wash their clothes.

It’s a working, living station!

Getting Personal

The last blog post ‘We Need To Talk’ was heavy on the technical details of how the dialogue system works but light on the real examples. One thing that it very definitely missed out was how the NPCs express their personality through the way that they speak. As I mentioned in that previous post, a complete message is created by traversing a tree of sentence fragments – but how do we traverse that tree?

The answer is simple. Nodes on the tree are selected based on their Heuristic Score. The current heuristic that calculates the score is based on just two things: The quality of the semantic match and the strength of the personality match. the personality match score is calculated based on the difference between the personality profile stored in a node’s metadata and the NPC’s personality. In this post, I’m going to show how that simple heuristic allows NPCs to communicate in a way that expresses their individual personality using real examples taken from the tech demo that we were showing at EGX.

In the below image, we have a fairly plain conversation between Emma Stadler and Sam Mooney (reading order is bottom to top):


In that example, Sam and Emma have procedurally generated personalities falling within unremarkable ranges. They’re boring people – but you can see in the top corner that there’s a button that lets me tweak their personalities. This is a good way to explore the range of their responses in the constraints of a single initial subject (Emma’s problems at work).

So, in the next image, I have tweaked Emma’s personality to make her angrier, more assertive and less self-conscious:


I could see that that conversation wasn’t going anywhere good, so I cut it off there by deleting Sam’s response. Emma never received a response from Sam, so the conversation came to an end. The player in Human Orbit is perfectly capable of tampering in people’s conversations in that way.

In the next image, I have tweaked Sam’s personality so that he is an angry powder-keg as well:


As you can see, he starts off talking in quite a similar way to the original conversation. After all, there’s nothing to test his patience. However, as soon as Emma (rather brusquely) rejects his offer to do something together, he explodes at her. Emma responds back in a similarly violent manner and their relationship (surprise! They were a couple) comes to an abrupt end.

In the next image, I have tweaked Emma’s personality again to make her more emotional, less angry, less assertive and more self-conscious:


Emma expresses her anxiety to Sam, and is grateful when he offers to help – but if she had been a little more assertive then it could have turned out differently. That’s shown in the next image:


The start of the conversation has been cut off, but I think you get the idea. Emma has some problems at work and Sam offers to help. Now, in this final image there is something rather interesting happening – Emma has made a free association and expressed her concern that Sam doesn’t respect her.

The reason for this is that even though Sam has offered to help Emma with her work, he isn’t at all qualified to do so – Emma has gotten the impression that Sam thinks her job is easy and that he doesn’t respect her work (and by extension, her). The conversation takes an abrupt turn in terms of the actual subject being discussed but it is still very natural!

Well, Sam’s personality is still already set to be angry, so it doesn’t turn out very well.

I’m very proud of the free association mechanic – our dialogue system is already dynamic and generative, but the free association mechanic allows the NPCs a whole extra degree of freedom with which to express themselves and their internal world.

The Mighty Morphing Power Of Strangers

We haven’t shown much of the station’s crew yet, so I thought it would be a good time to give you a brief overview of how our NPCs are procedurally generated.

The system itself is similar to character customisation you’ll have seen in other games. Typically you see some sliders and with these sliders you can change your nose shape and how muscular you are and so on. Our challenge was to replicate one of those systems and have it produce randomly generated, realistic looking people. Our goal was to have realistic results with a wide range of body shapes rather then the idealised versions of people you see in most games. The system may create a buff space marine, but that’s just one of many possibilities.

Our first tries at this produced some pretty…unusual results…


For the next generation, we set an average value for each morph. For instance ,we would have an average value for leg length, then the crew-member would generally useĀ a value that was close to that average. It seemed to help a little…


In the final generation, we set-up a body ‘archetypes’ system. It basically makes sure that if a morph has a very muscular chest, for example, they’re more likely to have muscular arms and after a little refinement we started getting some more reasonable results. The NPCs became more natural looking with subtler body shapes, the types of shapes you might see on the average person in the street.


So what do you guys think? Do you like to see these sort of naturalistic bodies in games or should we be aiming for a fitter and better looking breed?

Knowledge is Power