Side Quest: Valkea Vuori

Back in May, I went to Amsterdam for the Unite Europe conference, and whilst in the city, visited the Stedlijk design museum. It’s a weird collection of modern art and design, but well worth a visit if you’re into that sort of stuff. It’s also partly housed in a gigantic bathtub!

Anyway, whilst there, I found a piece of art called Valkea Vuori by a lady called Rut Bryk (below). It had a really strong aesthetic that was vaguely reminiscent of old school isometric strategy games like Transport Tycoon.

Valkea-vuori-Witte-berg-Ryk-Bryk2

As a side project, I’m now attempting to procedurally generate a tiled world/map in video game form, which I then have a number of ideas about using for creating a strategy game. By happy coincidence, I’ve started working on this around the same time as procjam – the annual game jam around procedural generation. Whilst not technically part of procjam, since I started this a week or two early, I still feel it’s worth sharing with the rest of the community interested in procedural generation in video games.

To that end, I’ve so far produced two different algorithms for attempting to recreate the grid / world of varying square tile sizes. The first looks aesthetically the most pleasing and closest to the art work:

quad-tree_WIP_01

This is generated using a reverse quad tree. Quad trees are a useful data structure used for efficiently storing and quickly retrieving an array of points over a geographical area. However, in my case, rather than starting with a series of points and then trying to create a quad tree to store them, I’ve instead started with a single quad, split it, then randomly selected a new quad (including the just-split quads) to split again.

I also set a minimum width/height below which a quad can’t be split any further. The algorithm then just keeps going until it has performed a set number of splits (which can be adjusted as a parameter, along with the overall dimensions of the grid/map/world).

However, this often leads to a few big quad plus large areas of tiny quad, since the further the algorithm is along its path, the more small quad there are in the list of possible quads (so small quads tend to be more likely to be split, creating even more small quads).

Also, it failed to give the interesting forms in the Valkea Vuori artwork where some larger squares were offset from each other and didn’t always line up.

So I decided to try the reverse approach. Starting with a big grid of minimum-sized squares and merging them together where possible: Pick a random square, pick a random direction (top-left, bottom-left, bottom-right, top-right). Then see if all the neighbours of the square in that direction were the right size and position to be merged.

This proved a big headache, as there are a lot of cases where merging is not possible. It also meant that the aesthetically pleasing balanced-mix of large and small squares was missing – Most of the time it’d be a lot of small and medium sized squares and very few larger ones.

mergeI am though, inclined to stick with this latter algorithm and refine it. The algorithm eventually stops when it fails to find a suitable candidate for merging x times in a row (usually 50). I could simply brute-force search for any candidates it may have missed when picking randomly. More likely though, I plan to play about with adding extra parameters, such as a budget for the number and size of larger squares, to be created first, before randomly merging from the remaining tiny squares in-between the larger ones.

I also need to do the heights, though it should be relatively easy to create passable “hills” using Perlin noise and a few extra variables.

As for the game I plan to make with it, my thinking is at the moment, it’ll be a turn-based 4x-esque strategy game where you grow a little empire by claiming tiles around your home city. Much like how certain iterations of Civilisation series let you claim territory.

Then give players the option to split or merge tiles. Larger tiles may be more productive, but have a greater maintenance cost. Larger tiles also make army / unit movement quicker, since a unit’s maximum speed is measured in squares they can move per turn. That could be a good or a bad thing, depending on how you want to defend your territory or how easy you want to make it to get your troops to the front-line at the edge of your empire!

Four Years

Four years ago today I started out as a one-man-band indie game developer. Here are some of the things I’ve learned in that time which I don’t see discussed much or I think are worth highlighting:

Production

I’ve yet to find my ideal process for making games, despite having tried a bunch of different production methods. Some things I would recommend considering though:

- Pay for art. Best results have usually come when I’ve hunted down a professional artist with the style and quality I want and straight up paid them.

- If it takes longer than a week to implement a feature, drop it. It’s probably too complex, fragile or conceptually flawed.

- Don’t chase opportunities (e.g. new platform or device). You are highly unlikely to see one far enough in advance or have the resources to effectively hit it.

- It’s never too late to drop a project (so long as it’s for the right reasons). My first game I worked on for 18 months before realising it had such a ridiculously huge scope, it would probably take me another 18 months to finish if I continued.

Feedback

Just repeating the mantra of test early and often doesn’t really help with the details:

- Always have a build on your phone to show people, and any time you have the chance, get people to play, no matter who they are. Or failing that, have a video of your game saved on your phone (not just on youtube, in case there is no internet).

- Consider context. Who is the person playing / giving feedback? Other Game devs for example are good for working out why something doesn’t work and suggesting solutions, but can sometimes give poor feedback because they are thinking through the lens of their own game. Non-gamers won’t be so good at articulating what is wrong with a game, but you can tell by their body language if they’re finding the game’s controls unintuitive say.

- Don’t take feedback at face value. Often people think they are being helpful by trying to diagnose a problem for you, when actually there might be a different underlying problem.

- Look for patterns. As in, if more than one person says roughly the same thing, seriously consider the issue.

Finance

I’m incredibly lucky in that when I was younger, my parents bought me a house in Nottingham where I went to Uni, which I rent out to cover my own rent in London where I now live, as well as pay for food and bills. That allows me to do game development full time.

Very few indies make enough money to live on purely from sales their own games. Most have another source of income. A day job, work-for-hire / making other people’s games, or support from a partner or family seem to be the most common.

However, I have seen other indies successfully get investment for making games. Insofar as I know from talking to those indies and going to investor-focused events, this is what I’ve learned:

- Investors look at people as much as product. A team with the right mix of skills, experience and complimentary personalities. And also just do they get on with you personally, since you’re going to be working together.

- Venture Capitalists (VC’s) in particular aren’t interested in “lifestyle businesses”. Don’t waste yours and their time chasing this type of investment if all you want to do is generate enough money to make your next game / work full time making games independently.

Marketing

Most indies understand that they need to “do marketing” and that their games won’t just sell themselves. However, the industry is constantly changing, and there are no business models or plans that indies can just pull off the shelf and easily use. From my own (largely unsuccessful) attempts at marketing, and from observing the efforts of others, I do have a few observations:

- The channels available to indies, such as twitter, youtube, or a feature on Rock-Paper-Shotgun are unlikely to let developers reach beyond the traditional “gamer” audience.

- Particular game types/genres tend to work much better than others on those channels. For example, Minecraft works great on youtube because each playthrough is personal and unique, versus say a playthrough of a linear narrative FPS.

- Content marketing and/or community building is incredibly time consuming. Writing blogs and doing dev diaries every day is essentially a full time job, and in my opinion, not cost effective for most games. It can also lead to burn-out.

I’ve learned a huge amount in the last four years. My hope is that 2015 is the year I can apply those lessons to actually finish my games and hopefully have a modicum of business success with them.

GameCity Roundup

Had a good time meeting gaming enthusiasts and other developers from around the UK this week at the Game City festival in Nottingham. It’s still on until the weekend, if you have time to get down there. Sadly today was the last day I could make it, so here is a roundup of some of the events I attended

Big Tent
Loads of indie games companies displayed their apps, pads and demos in the big tent, as well as exhibits from various other groups, including game jam entries from the local university, and a minecraft server complete with laptops for all the kids, big and small to have a go (above). Each day had different exhibitors and things going on, which is a nice change to many conventions, where things start to get a bit samey after two or three days

Board Games
Quinten Smith enthused about the booming board game scene, making a compelling case for why developers of all shades and colours should pay attention to this exciting entertainment medium. In particular, design patterns that video game developers would do well to emulate:

  • Auctioning – A one off chance to grab a valuable resource, but players must out-bid each other to gain exclusive use
  • Rule Evolution – Allowing customised game rules and options or players to change the dynamics of a game for preventing the same set of winning strategies dominating multiplayer games

He also highlighted the benefits of combining US/UK storytelling and aesthetic with considered and balanced German/continental design

Writing Advice
Thomas Was Alone maker, Mike Bithell got some advice from two comic book and video game writers, Kieron Gillen and Antony Johnston, on writing (narrative) for video games. Pointers included:

  • The title of the game is a part of the writing. It is how players identify the game, and so identify with it
  • Writing style can have influences from others’ styles, and take techniques and tools from a variety of sources, but ultimately, the writer must find their own unique voice
  • Always follow up on foreshadowing or drop it altogether. The dark pixel cloud in Thomas Was Alone being cited as one such example
  • Story does not need to be complex, as long as it is well paced and has completion
  • Story in games is ultimately about player motivation

There was also debate about the voiceless / empty vessel character, and the moments where game design ensures failure is unavoidable.

Between talks, there was plenty of stuff to do. I contributed to the animal shadows board (above), with my winged triffid-demon creature, though disturbingly, it was not actually the strangest animal to appear out of the festival crowd’s collective imagination

From Comics To Consoles
Antony Johnston compared and contrasted writing for comic books and video games, giving insights into where his background in comics had highlighted underlying principles common to the two media. key points were:

  • Audiences can choose the pace at which they consume the content. This means games and comics must both emphasise brevity and constantly create action to keep the interaction flowing. Comic readers can spend hours pouring over the detailed art work in a single panel, or flick through at speed to the next page, just as a game player may linger in a room, or speed through the environment, eager to achieve their goals
  • Unlike film or literature, the world is created though abstract imagery and iconography. The reality of the world is not absolute
  • The world is given shape by the context as much as the dialogue, characters or events that happen in the story. In comics, through the art, and in games through the environment

On world building specifically, two guides Antony mentioned struck me as especially valuable to consider when reviewing how the world meshes with the story:

  • The world must be able to support more stories than just the one being told.
  • The story being told can only work in that world

And finally, the message that ultimately all games and comics have limitations, but to enjoy the constraints rather than fight against them

 

Asset Reuse Game Design Challenge

Guy Hasson has laid down an interesting design challenge at gamasutra . In summary, it is to create a ‘fork’ in the storyline of a game such that the art assets (animations, models etc) are all used on both paths the story subsequently takes

(Note: this post has been migrated from the old site)

Wild Spice

To add a bit of spice, there is a prize for the design with the most wildly variant paths

Sounds simple on the surface, but my first few ideas immediately hit problems. Say in one fork you are trying to protect the president and another trying to assasinate him. So the scene, scripts etc can be reused when you fail in one fork or succeed in another. However, to get from the fork to that particular scene, the players will essentially have to traverse the same spaces, and jump through the same hoops or see the same set-piece events, even if from two different perspectives. Essentially, it is the same storyline from two different angles. Worse, when the player goes back to play the other path, they will find it makes no difference to large parts of the story.

There are of course pleanty of more esoteric options. For example, having the player jump forward in time and then play everything in reverse.That still means the same story, just played in a different order. Equally, levels can be designed to be circular (two ways of getting to the same point) or modular.

My second idea involves having the same over-arching story, but having the two paths in the form of two characters. Depending on a decision the player makes, they end up playing as one or the other.

The challenge runs for another week, so I’ve decided to put the idea out there and see what Guy and others make of it. At worst I can submit a second try later and get disqualified for making multiple entries.

The scenario

You are a member of a special forces team on a highly politically sensitive mission, where you get explicitly told by your superiors ‘America cannot be seen to be targeting civilians blah blah’. You get dropped behind enemy lines in thefighting. Team gets ambushed, stuff goes down, but you and some of your team make it back to a safe house along with a civilian that you’ve captured along the way.

Cue scene:

You walk into a dimly lit room where one of your teammates has gone psycho, and is torturing the civilian prisoner. Psycho teammate, with bloodthirsty murder in his eyes, pulls a pistol and points it at the prisoner’s head. You (the game automatically for you) pull your gun and…

Path Zero:

…shoot the prisoner. Psycho shoots you, game over (basically you’re not supposed to shoot the civilian).

Path 1:

…shoot Psycho (dead). Teammate C walks into the room just as you pull the trigger, and looks horrified. You spend the rest of the game not just trying to complete the mission, but also trying to justify your actions to teammate C and prevent teammate C and others in the team turning against you

Path 1a:

At some point, one or more teammates decide to leave you and start actively trying to kill you whilst you try to complete the mission

Path 2:

…do nothing. Teammate D walks into the room and shoots Psycho (dead). You look horrified (as you are now teammate C). You get to chose to…

Path 2a:

…lead other teammates to turn against Teammate D, or

Path 2b:

…stay faithful to Teammate D and the rest of the team.

The mission has to be completed whatever path you choose. At various intervals, some minor mission has to be done. If on path 1, teammate C and his buddies get to judge whether you have justified yourself satisfactorily, or otherwise turn against you. Maybe as the game continues, they naturally become more likely to defect, thus forcing you to up your game / forcing the difficulty level higher.

Conversely, if on path 2b, side missions give you further chances to turn traitor or stay loyal

Assuming you are playing in first person perspective, then things can be manipulated so that you see neither yourself, nor teammate C/D until the scene where the decision is made. This way, when you play again and make a different decision, you see the character that you played as last time make the decision that you made last time, thus reusing all the animation and dialogue of that character and enhancing the effect that you chose to be in the other guy’s shoes this time. I.e. if I chose path 1 I become teammate D. If I chose path 2 I become teammate C

The missions, side missions and environments are all the same, ensuring maximum reuse of art assets.

You get to play in different ways; As a leader struggling to maintain loyalty after a morally tough decision; As a loyal subordinate trying to manage an increasingly paranoid leader; As a disillusioned follower looking for the right moment to leave the team? The art assets and dialogue should be all the same

Update: I won!

I won the competition in the end, though only four people entered, so was not like there was a whole bunch of competition. Still, made me smiley faced