Computer Games, Programming

ProcJam 2014 talks

Last weekend I had the chance to go to the ProcJam talks in London that were part of the ProcJam game jam. Due to some difficulties running errands and never having been to Goldsmith’s before I missed the first talk and arrived halfway through the second.

I was hoping for some tech-focussed talks about coding up procedural generation. As it turned out it wasn’t quite that kind of event but it was still pretty interesting.

Tanya Short’s talk about some of the theory behind procedural generation was quite interesting (despite a flaky Google Hangout connection). The key takeaway from her talk was to look at the structure of what you are creating. Creating believable content means creating a simulation of the creation itself while making it satisfying to explore means adding an emotional dimension.

An example she gave was of name generation, you can totally do the Elite random syllable process but to create more believable names you can introduce structure, like lineage, nicknames and titles appropriate to the society and social ranking of the character. Introduce aspects of the way that people name their children in the real world: things like fashionable names and trends that apply to characters of a certain age, repeated usage of names within families, the use of names to honour significant people in the parent’s lives. These things add emotional depth.

Tanya is working on the game Moon Hunters and she mentioned an example from the game of how personalities consisted of the following factors:

  • the results of the character’s deeds
  • the perception of others
  • how the characters contrast to the villains
  • the needs of the story and plot

I was particularly struck by the idea that the way a character behaves is bound by how they think other people expect them to behave. That’s something we see a lot in the real world and creates exactly the right emotional connection in someone who is trapped between their “true” and “public” selves.

The talk I most enjoyed was by Hazel McKendrick who is one of the developers on No Man’s Sky. For someone who doesn’t really do game programming or procedural generation it was a helpful introduction to some of the basics.

First of all she made it clear that procedural generation isn’t about randomness, abrupt jumps in the underlying numbers creates a jarring inconsistent experience for the player. In mathematical terms we don’t want to use truly random generation but instead functions that generate continuous (smooth) results. This means using noise functions rather than pseudo-random algorithms. Most people mentioned Perlin noise but Hazel also mentioned Perlin worms and Whorley noise.

She also made the great point that games are made by their special moments and rare events in the game. If the generator creates content uniformly then the world is overwhelming and might actually become boring as repetition robs the feeling of being special.

In No Man’s Sky they want the bulk of worlds to be fairly unexciting and plain and allow the player to control their experience by having the more alien or extreme worlds be at the periphery and key game world experiences at the core of the galaxy. The player determines what kind of experience they have by the depth of the region they choose to explore.

Objects in the world matter more when they exist in relationships to one another. Hazel used the example of trees, undergrowth and bushes but it also fits in with Tanya’s talk in that people are more interesting if they exist within societies, lineages and families.

Therefore the generators need to be aware of the context around them and simplest way to do that is to nest the generators so that a generator creates a set of consistent generators that then generate sympathetic output. These generators can nest to any depth and are testable as units and as chains, something that I agree with from my experience with using functional programming although Hazel is working in C++ in a slightly more conventional programming situation.

When nesting generators these way you need to check very large datasets to see that the results truly are consistent rather than frequently consistent. You can program limits on the generator to bound their output but part of the point of using procedural generation is to create things you weren’t expecting. In her slides Hazel had some examples like spaceships where it was possible to generate large catalogues of spaceships to browse visually for anomalies.

You can also write test suites to search for situations that are out of bounds and again from a functional perspective I could see the value of generative testing to exhaustively examine output to find issues with particular inputs identified as the problem.

In a question after the talk Hazel also mentioned that generators are always consistent and finite and that changes to the player’s world are held in state outside of the generators. No Man’s Sky is a mingleplayer game where players will be able to play in the same universe and share discoveries but don’t necessarily have to be in sync to play the game or impacted by the other players activities. You can explore the game at your own pace.

Hazel’s talk is on YouTube

The other interesting talk was by Mark Johnson who is working on Ultima Ratio Regum which will one day be a rogue-like exploration game about empires and the evolution of societies but at the moment is an insanely detailed world-building program that creates a world, nations within that world, their history, cities and human terrain.

At one point in the talk Mark demonstrated how it was possible to zoom into a terrain square in the world and look at the leaves in the tree.

In terms of generation Mark’s talk was similar to Hazel’s but he used the metaphor of card decks. You shuffle cards and draw and the selected card opens new card decks that can be used for choices at a more detailed level.

His example was selected the leadership model of a nation and then its economic and foreign policy. So if you select Isolationist as the foreign policy you don’t want to have Free Trade as the economic policy. Similarly religious freedom should not be available if an earlier choice was theocracy.

This cascade set of consequences even extends to where the religious buildings are placed in cities. A populist religion mean that religious buildings are scattered throughout the city, a state religion concentrates them in the governmental quarter.

Mark’s analogue metaphor was interesting and more accessible perhaps, as long as you get the card decks nested within card decks idea. He mentioned that he thought board games were the most exciting realm of game design as you can experiment relatively cheaply but as the players run the game you must be capable of expressing the rules extremely clearly so they can be understood.

One nice detail was that the game produces books about the history of nations and people within the nation. This will ultimately be how a player discovers things in the game beyond literal exploration and conversation with characters. He illustrated this by showing how he could locate the grave of a historical character from the information in that character’s biography.

While its an achievement to have a game that has that level of internal consistency at some point he does also want to allow for alternative narratives where, say, a character involved in a war between two nations would be mentioned by the histories of both but with perhaps very different perspectives on that character’s behaviour.

Mark Johnson’s talk

I’d like to complement the organisers of the talk for putting together a pretty interesting programme.

Computer Games, Games

Gamer Intelligence Fail


A popup telling you that the Last Name textfield should contain your last name

A popup telling you that the Last Name textfield should contain your last name

 O Rly?

Warhammer: Age of Reckoning. There’s a lot more where this came from… EA are truly teh suck as are Mythic the developers.

A Flash application to register that gives you the most insane popups and then fails to complete the registration process because it cannot connect to its database. What do you think the error message is?

OMG, you’re right! “Please check your internet connection”.

If I’m not connected to the internet then how am I filling out your form?!

Computer Games

Final Fantasy: War of the Lions, War Against the Interface

This game is one of the highest rated PSP gaes on Metacritic but I have just found unbelievably frustrating. The amount of key pressing is unbelievable. If I press attack and there is only one target I can attack then you know what computer machine? Just select it for me. In fact wherever I just have one option why don’t you just automatically set it up so I can confirm it? If I am going to be selecting Wait from a menu loads of times why not bind the common options to the symbol buttons so I can just press a button series rather than using arrow keys and X all the time?

There is also a lot of Game Over in War of the Lions. Fail a battle, Game Over. Your character dies in a battle, Game Over (is there a way to save a dying character? if not then why make it a game ender?). And what happens when you get game over, the game reboots… from the start sequence. Sorry but when did I switch on Iron Man mode?

I know this is a port but that’s no excuse for making no effort to try and make the user interface fit the device. Even D&D Tactics is better than this. The excellent cut scenes really don’t compensate for the cruddy design decisions.

Computer Games, Games

God of War: Chains of Olympus

So far GoW: CoO (TLA 4TW) has proven to be my favourite PSP game I have purchased so far. Graphically it is an amazing title that really looks like a normal console game on a tiny screen. However the secret seems to be the way the game uses the PSP’s controls.

The tactile experience mirrors what is happening on screen. If you are struggling to break free from the grip of a monster then you are hammering keys, if your character is straining to snap open a chest then you are holding the button in a death grip yourself. The analogue stick has a better feel for movement. You feel like you directing this torrent of motion rather than going left a bit, right a square…

This link between interface and game only breaks down when you are asked to chain together various specific interface interactions very quickly to complete boss-type fights. In particular I find rotations quite difficult because the on-screen icons are not very clear as to whether you are aiming for clockwise or anti-clockwise.

Computer Games


Can you imagine a game that combines Guitar Hero, Trackmania, Wipeout and some surreal media player style music visualisation? Well if you can’t then you could just download Audiosurf to see just what that would look like. Combined with Steam this game is just all kinds of awesome.

In addition to the fantastic visualisation techniques there are also two important things going on here. There’s the social networking aspect of who is playing what music and how well they are doing. There is also the extreme personalisation as you are listening to your own music.

As a tech note, if your game keeps saying that the demo has expired when you have actually purchased it, just restart the Steam client.

It is also another example of how well Steam Achievements can be used to set challenges and keep people playing. I expect all games to ape HL2 E2’s achievements strategy in the coming years.

Computer Games

Take Command a satisfying replacement for Sid Meier’s Gettysburg

So I finally installed Take Command: Second Manassas (TCSM) after many delays. I really loved Sid Meier’s Gettysburg (SMG) and I have been looking for a replacement for it for a while. To be honest the graphic content is not really far off its venerable ancestor but it is a satisfying game that seems to capture ACW tactics in a visually appealing way.

Some interesting features are that the battlefields seem to be bigger and therefore you are actually expected to use Road Column movement! In SMG column movement was just a way of breaking your troops unless they were reinforcements. TC: SM introduces couriers that actually ferry orders between the general and your command. That’s a really atmospheric touch.

One thing that is a bit disappointing is that barriers on the battlefield do not seem to interact with the troops in a decent way. During the tutorial I lined some troops up behind a wall, which was relatively easy, however later they decided to concentrate their fire to their left and therefore the unit AI wheeled the line left putting straight through the wall rather than anchoring on it. Apart from breaking the illusion this also gave me a UI headache as I could not easily tell whether the AI had opened itself to enfilading fire or not. Since the unit seemed to retain its defensive bonus I assume this was only graphical compromise but I would be annoyed in a tighter balanced scenario if I could not easily see that a unit had broken cover.

Computer Games

Stalker First Impressions

On Friday my tinned copy of Stalker arrived and over the weekend I had the chance to put in a few hours on it. First impressions were hugely positive. It is rather like Flashpoint crossed with Morrowind. The unique setting is really spooky and interesting and the graphics are full of character and seem really plausible.

However inevitably the problems of such a complex and overdue game quickly became apparent. The main character is amnesiac, just like all RPGs. There don’t seem to be many bugs in the FPS side of things but the log and the quest system are screwed with missions becoming impossible as the mission giver disappears (Nimble in the suit quest) or the mission system fails to assess the completion criteria correctly (dog tail quest, mill cache). This seriously breaks atmosphere and the only answer seems to be a series of game saves.

I’ve decided to start again now but during my restart I found another gameplay issue that has dogged games like this. During a big firefight I accidentally shot one of my fighting companions in the back. As a result the character goes hostile and starts shooting at my character. So I have to kill him, which makes everyone else in the group hostile to me. Which means I have to kill all of them too.

Naturally there has to be some way for the AI to realise that you’re shooting them up but the situation is unreal and a complete mood breaker. A friendly fire incident turns into a brutal massacre of your own faction, its illogical and really only leads to the loading of a saved game. Eternally stoic allies who accept all manner of player inflicted abuse may be naff but at least they keep the game flowing.

Computer Games, Games

Neverwinter Nights 2

Well my first reaction is one of deja vu, particularly at the 100Mb of patches that were downloaded within a couple of days of the release. Then there is the click issue whereby instead of attacking someone you find out that you’ve actually told your character to run right past them. There is once again the panicked keyboard mashing as a door or chest flags red just as you’ve clicked on open. Doorways prove to be the most dangerous obstacles you can put in a dungeon and pathing still seems questionable.

The game is right at the edge of what my PC will comfortably run but the graphics (while better than NWN1) do not seem to be in the same league as something like Oblivion so I assume that the game engine is a lot more demanding. I have to say that settlements seem more populated and it is good to be able to have a big party again after the slightly claustrophobic experience of NWN1.

The key thing though is story and in the first chapter alone I have already had a big hiccup. The story starts off pretty well but there are a number of false starts. For example your companions are replaced between the tutorial section and the first chapter. The story trail also failed for me slightly as I was repeatedly defeated in the undead section which seemed to be the logical progression. Instead I had to gain another level through the atmosphere destroying repetition of an earlier sector and skip the undead in favour of attacking bandits who were more susceptible to rogue sneak attacking. It all felt like I was playing the mechanics of the game rather than the game itself.

There was a shockingly bland side trip level and some pretty transparent NPC saving which indicates some design issues but you know overall, I would rather have it than have nothing.

I’m now onto Chapter 2 and hopefully things will settle down, the party is established. The Neverwinter setting is more compact and the storylines seem a bit more focussed.

Computer Games, Games

Medieval Total War 2

So I got through the tutorials last night and today resumed control on the Kingdom of England after many months away or playing the Welsh in the Viking Invasion.

My first impressions were made up of two elements. Firstly there is the usually shoddy Creative Assembly QA. Trying to set the game’s resolution to my LCD screen’s resolution crashed the game. Not mind you before a pop-up appears warning me that a graphics problem has occurred. The second is that soldiers seem a lot faster than before. Total War Rome felt a lot faster than the original Medieval but this is faster again. I’m not sure if this is simply to do with the feeling of gameplay. There was a lot of marching and counter-marching before.

The AI also feels a lot smarter. In my first battle a group of spearmen pounced on a group of my knights that I had carelessly parked on the outskirts of a village in the assumption that the spearmen would not want to be drawn away from the main body of their troops. That said though pathing through gateways is still bloody awful and sieges still end with an ungodly scrum in the centre of town. That made more sense in Total War Rome but it is a bit of a joke during the Medieval period and seems to reduce sieges to some strange parody of Saturday night drinking and fighting in the town centre.

One definite improvement is the graphic feedback and individualisation of the warriors within the units. Battles are a lot more fun to watch and the introduction of injuries gives the whole thing a bit more drama.

Overall though this is feeling like a incremental improvement at a cost of a lot of machine resources.