Pattern recognition kills curiosity

By @ 09/13/12 in articles

One of my primary tasks in the meaty, actual-developmenty bit of our game has been implementing the parameters of the in-game objects. What variant are they? If they’re plants, what colour are they? How often do they grow / move / bear seeds etc?

Our game being fun relies upon two main elements: the drive to create and the drive to explore. Given that we’re operation on a 2D plane, I had to create a world which felt fun to explore in without having the ability to impart actually distinct regions through cool architecture.

The types of parameters I’ve been implementing include creating ‘spawners’, wherein I create an invisible point in the game world which the engine will use as a central location from which to create a patch of objects of a certain type. In this way I can create clumps of rocks and patches of grass, right the way through to full forests, each based on algorithms which tell the game to produce a certain number of a certain type of tree, in a certain colour, and to have the density reach a certain point in some areas but not others.

When I first started playing with these settings to create a game world, randomness didn’t look natural. It looked entirely too computer random rather than natural random.

It wasn’t so much the repetition of certain trees or other natural phenomena which made it obvious to me as I roamed around the test-world that it was a fiction, as much as it was the lack of it.

So, I created clumps of a particular type of tree. It added nothing whatsoever to the gameplay, but even knowing that I’d created it in that way, I felt like I’d encountered something new when walking in any given direction and encountering a bunch of something which was either the same shape or colour.

It didn’t stop there, of course. (But we did stop for beer. Hrm, “We brake for beer”… that’d make a good company motto. On a bumper-sticker, perhaps? –Rohan)

While I settled for having a layer of random, lone bits and pieces scattered throughout the landscape, it paid to also have huge clumps of trees which leave no room to move through, forcing the player to conceive of those trees as a natural barrier of sorts.

It works like this: if you walk an average of 2-3 squares in any direction before needing to cut down a tree or bash away a rock in order to progress and this process repeats ad nauseum, there is no story to tell. The power of emergent stories in games, however, is the whole reason we value interacting with them so much, so if we instead walk 2-3 squares, encounter a huge forest, make a decision to walk around it rather than cut through it, and make the call as to which direction to walk, then when we emerge on the other side of it, we do so after thirty seconds or so of having told our own story and chosen it for ourselves.

That remarkably insignificant difference is enough to keep a player curious as they move through what appears to be an ever-changing world.

A forest of pine trees here, a strangely auburn-filled bunch of palms the next, then a huge lake blocks our path and we’re forces to traverse it clockwise, only to discover a bunch of rocks which jut out in a cool way – this is how to make a game world ebb and flow in a way which allows players to suspend disbelief that they’re actually in a game world and not encountering a bunch of algorithms.

Although they are.

The final trick is to allow more skilled players to finally detect a method to the madness. You don’t want people to see patterns the second the load up the game, but you do want players to be able to start to detect similarities in the seeming incoherence of certain arrangements of rocks and trees over time, such that they’ll eventually discern the likelihood of particular resources being hidden in amongst particular patterns of tree.

But these patterns must only ever be revealed over an extended period of time. If it’s too easy for a human to figure out how your randomly generated world is created, it’ll turn them off in an instant. If it’s too hard, no appearance that their skill has improved will become evident and they’ll get frustrated.

Thus begins my next task – creating patterns subtle enough that people may discern them over time, just not too much. Or too little.

So I guess my meandering thought is this: if your game asks people to engage with a game world which is randomly generated, you’ve got to find a way to maintain the illusion of randomness, but which permits the more avid gamer to detect nuances for a tangible gameplay benefit.

Guided randomness is the name of the game.


Comments are closed.