Moving targets a non-starter

I spent a big chunk of this week trying out moving targets in Pinballesque. They’re tempting because they’d let me build a game out of spawn patterns and movement behaviour rather than table geometry, which would be less work. It turns out they suck pretty hard in this game:

  • The combo system is all about making patterns, so inadvertent hits are really punishing. This rules out spawning a big jumble of objects. In Breakout it’s a good thing if the ball makes it through the outer layer and starts bouncing out of control in the interior layers, but that’s death with this combo system. I wound up restricting them to a single layer and tried to make sure the return angles were fairly straight.
  • I needed to move the objects very slowly, so the player has time to wait for the ball to roll to the right part of the flipper. To change the configuration of objects at more than a glacial pace, I rhythmically pulsed the movement.
  • I needed to make the objects fairly large as well.
Add it all together and the experience isn’t really that much different from a series of ramps that periodically cycle through colours.

Share Comment Forum

Pinballesque, prototype 1

Here’s the pinball redesign I’ve been working on for the last couple of weeks:

Play Pinballesque

  • As I mentioned in the previous post, I want the goals in pinball to have more internal consistency underlying them. I’ve made a combo system where you get points if you collect colours in some kind of pattern (consecutive repeats, rainbows etc.). Sorry colour-blind folks, I really ought to add symbols too but I haven’t gotten to that yet.
  • You can move the flippers from side to side. They rotate as they move to allow a range of shot angles, so I can tighten the flippers’ flick angle down, which reduces the precision of the timing that a player needs to hit a target.
  • They’re also gigantic flippers with a very gentle slope. All to get a larger timing window.
  • I’m still playing around with different schemes for moving the flippers. I ought to play around with different input -> response curves.
  • Always keeping the pair of flippers adjacent to each other felt too Breakout-ish. Making one flipper mirror the other made transferring the ball from flipper to flipper really hard, as did moving them in synchronisation on their own halves of the track. I haven’t tried mapping them to thumbsticks yet, but it’s promising.
  • It’s hard to evaluate how successful I’ve been with the crappy table design. I feel like there’s a ton of room to improve on that, but table design is tricky and it really is a time sink.
  • For fun I put in some tinkly marimba notes with pitches driven by the sequence of colours.

First impressions of Unity’s 2D support

  • The sprite renderer looks handy. I dig the new editor handles and the atlasing support.
  • The 2D physics engine is way less configurable than PhysX, and I regret that I didn’t just use 3D physics with one dimension and 2 rotation axes locked. It’s missing some really obvious stuff: moving/rotating objects without teleporting to the final position, a ConfigurableJoint equivalent, configurable bounce/penetration thresholds and so on.
  • That said, being able to edit the polygon of the PolygonCollider from inside the editor is really, really convenient. (Shift and Ctrl click on the collider outline)

Sound in Unity

This is my first time using sound in Unity. The built-in support is monomaniacally focused on sound in 3D environments without any of the other stuff a game typically needs (control over polyphony, priority/duplicate handling, ducking, loop boundaries and loop mode, variant sounds). I previously thought GUIs were the most unloved part of Unity (and the most likely to be summarily replaced with an Asset Store hack), but sound’s definitely a contender.

(I love that it has tracker module support out of the box, although  - characteristically - there’s no control over the playback. No channel volumes, no tempo control, no seeking to patterns)

The dumbest thing is that FMod is built into Unity, you just can’t see any of it from the script layer. My former co-workers, the Curry Brothers, have managed to do an end run around this by writing C# bindings for an FMod DLL that they include along with the exe. Surprisingly you don’t need Unity Pro for this. It won’t work for web player builds, of course, but it’s an interesting possibility for a full game.

Share Comment Forum

My newest victim: Pinball

My non-Mostly Tigerproof work is coming to a close, and I’m back to prototyping weird ideas again. This time the theme is pinball.

I’ve always loved pinball. During the 50-ish years between the advent of flippers and coin-op pinball’s commercial collapse, it has become a well-tuned and richly elaborated class of games, so it might not be obvious why I’d choose it as something to try to improve upon. In spite of how much refinement it’s seen, I believe the game still has glaring problems.

I play vastly more video pinball than real pinball. I grew up on video pinball, as did nearly everyone younger than me. In some ways pinball is poorly adapted to what is now an overwhelmingly software-based existence:

  • It’s fundamentally portrait in a landscape world. I’m looking for ways to make better use of wide screens.
  • There’s no consensus on what the role of nudging should be. Is it cheating? Is it essential, because you have no other defence against the outlanes?
  • Nudging is usually poorly implemented in video pinball, due to its partial legitimacy. If nudging is part of the game, it needs better feedback: on-screen counters of how many nudges I have left before a tilt, hints about how far the ball will be nudged, maybe even a nudge training table. If nudging isn’t part of the game, the game needs redesigned so it won’t be missed.
  • And speaking of outlanes, they’re shitty design. They prevent good players from playing indefinitely (a particular worry in coin-op), but they do it through random instant death. There have been a couple of attempts to replace them with timers (Goin’ Nuts, Safecracker), but hitting a time limit almost feels even cheaper than getting an unlucky bounce. Luckily there’s no shortage of ways to make a game hard.
  • Pinball tables don’t do a good job of communicating goals during play, and the goals are arbitrary without much internal logic to them. Flashing lights and voice prompts are very helpful, but personally there’s so much unexplained stuff I wind up reading the manual. Reading the manual is a chore though. It’s a chore that recurs on every table, which might be unnecessary. Could there be a system of goals shared between a family of tables?
I think pinball’s most fundamental drawback is its uneven learning curve combined with its heritage as a game of chance. The challenge in pinball is directing the ball to where you want it to go. Catching the ball in the crook of the flipper is easily learned, but it takes precise timing to shoot at the angle you intend. A pinball will roll off a flipper in a second. During that second, the resulting angle of the shot varies by 60 degrees or more. What’s worse is that most of that variation is compressed towards the tip end. Each frame matters.

It’s wonderful that pinball rewards such high levels of finesse, but it’s hateful that even after hours of practice, beginners find their performance is dominated by random chance. Even when they do achieve things, it’s hard to take pride in it with the knowledge that flukes outnumber intentional shots. I think pinball should do a much better job of reflecting the player’s intent, even if their timing isn’t dead on. I’d love to bring the experience of being good at pinball to a wider audience, while giving old hands even greater challenges.

Those are my high-falutin’ design goals. More on my specific approach in the next post.

Share Comment Forum

Leaving PikPok

I quit PikPok this week. I’ve been at Sidhe since mid-2006, and working in the PikPok mobile label since the start of 2010. I’ve met some startlingly talented individuals there and it’s a shop with great prospects, but it’s time for a change. I’m quitting to work full time on my own projects - I want a train-wreck I can call my own.

When I’ve got something ready for public consumption, I’ll announce it here.

Share Comment Forum

Game development in 2021

A sci-fi story

Kelly checks her work items. Uh oh, a client freeze. The KickStarter milestone’s been slipping and the money is starting to run out. Right now, showstoppers are exactly what they don’t need.

Thank god Jack’s the one on the forums trying to pass a vote on paring back the milestone requirements. If he can’t get the ‘No’ vote lower than 43%, refunding that percentage of the users will send them insolvent. It takes preternatural calm to operate at the intersection of community management and project management.

She takes a deep breath and pulls from the QA repo. There’s several thousand session recordings in here, but her filters only show the busted ones. Sure enough, there’s a new fork in the replay tree and it’s red. “Watchdog violation: Over 1000 frames since input was last polled”. The offending fork doesn’t look much different from its sibling forks: same sequence of button presses, slightly different timings. If not for the freeze, the QA guy on topiary duty probably would’ve coalesced it into the sibling test cases.

Hmm, the work item has a VM image attached, but with everyone pushing changes like mad throughout the morning, she’d rather repro on the current codebase. She enables the audit log on the client that’s allegedly going to be the victim of this scenario. She taps the tip of that red branch and her PC’s displays take on the appearance of a surveillance system as the various game clients start up one by one and begin replaying the session that lead to the freeze. She rouses the cat from her lap and heads to the kitchen for a coffee.

Five minutes later, Kelly plops back down, coffee in hand. Bingo, it’s still busted. The game phase coroutine is stuck. At least it’s deterministic this time. Looks like the player was in the middle of dismounting their horse when the game froze. The coroutine’s waiting on the end of the dismount animation, but it never comes.

Oddly enough, the player’s current animation isn’t dismount. Where the hell did that value come from? Kelly has her IDE generate a data flow tree for the state variable. Her PC grinds away at rerunning execution from the last checkpoint.

The character animation state machine was a mess of amateurish hacks they’d picked up at auction from a somewhat unluckier project that’d gone belly up. They’d come to regret cutting that particular corner.

Aha! The state is passed around as if the authors were laundering a drug fortune, but the root of the problem is that a grapple interrupted the dismount. This isn’t supposed to happen. Dismount is sacrosanct.

Who implemented grapples? She squints at the fine print in the blame margin of the editor window.

“Radko (12/10/21): Fix exploit where jumps cancel grapples“

Hmm, where in the world is Radko Stamboliyski? Remote contractors had been going AWOL since the finances starting looking bad. They haven’t been able to get in touch with him for a week. He could be anywhere in Bulgaria. Hell, maybe the Bulgaria thing was a lie all along? Either way, she’s not getting an explanation for that commit.

A quick check in the animation timeline reveals the problem. The annotation that suppresses the animation being interrupted stops a frame short of the end. Argh! First frame inclusive, last frame exclusive! When will people learn.

One frame glitch. That explains why it survived until now. Hardly seemed worth the panic. Looks like the fangirls might get their Renaissance action-romance after all.

Inspired by:

Share Comment Forum

Satellite Launch is now on Kongregate

I’ve made a fresh new version of Satellite Launch and posted it at Kongregate. You can also play it at Mostly Tigerproof.

I’ve been eyeing up Kongregate’s Unity support for a while now, though it’s not much of a business proposition at the moment. Unity games on Kongregate get 40 times fewer hits than Flash games. Still, I figure it’ll be an interesting experiment, and I’ll get to see what their ad rates are like.

I’m mindful that I’m exposing it to a gamer audience instead of a game dev audience, so I’ve made a limited attempt to polish it up, but I’ve hit my self-imposed deadline before I’m truly satisfied with it. In any case, I’ve been operating in a vacuum for too long, and it’s time to get some feedback.

Scoring Overhaul

I ran out of momentum prototyping the concept 2 years ago because I couldn’t see any interesting progression mechanics to pair up with basic challenge of trying to launch as many satellites as possible. That and there was a fairly boring dominant strategy where you can just queue up a lane of satellites in the same inclination.

In the new version, the objective is to link up pairs of ground stations. This provides an incentive to spread your satellites across different inclinations. Also, picking orbits to cover the most stations possible makes the game feel a bit more tactical.

The scoring is now a multiplication of two numbers, so linear improvements in the player’s skill grant quadratic improvements in the player’s score. This is nice because when you’ve been playing something for a while, it’s discouraging when the law of diminishing returns kicks in. I want to compensate for that by spreading out the high end of the score distribution. Yet another little thing I learned from Geometry Wars 2. That game is an education.

Other Changes

  • I fixed some problems with the input that were hampering the player’s ability to place satellites over the ground precisely. Added an orbit prediction line too.
  • UI redesign. All the crappy programmer art has been replaced with programmer art that’s somewhat less crappy. Yaay!
  • The game ends now. It used to just run indefinitely, and save your highscore when you’d achieved a new personal best. This is the part I’m least sure about. You’re allowed only 5 collisions, so there’s a bit more tension. It feels more like Jenga now. That said, if I’d made an Undo function instead of a lives system, it’d be less frustrating.
While I’ve been writing this, the game’s been played more times at Kongregate than in the last year at Mostly Tigerproof. Heh.

Share Comment Forum

South Korea Facts

After losing some multiplayer games to South Koreans, I was intrigued by this nation and its remarkable inhabitants. Here’s some interesting trivia I found:

  • In Korea, pedestrian cross lights last 4/60ths of a second.
  • In Korea, the Starcraft universe is popular because it evokes the nation’s bucolic past.
  • In Korea, if you don’t scout the restaurant effectively, other tables may flank you and steal your food.
  • In Korea, reunification could come at any time, so sleeping is subject to heavy fines.
  • In Korea, karaoke is a eugenics issue.
  • In Korea, orphan and cyborg are the same word.

Share Comment Forum

An open letter to Hill's, manufacturers of Science Diet pet food

Dear Sir or Madam,

For many years I have been trying to feed my cats on a diet solely consisting of science. While I had some brief success utilising herpetology specimens, no other science from geology to astronomy sated them. Eventually their piteous mewling sapped my fortitude and I supplemented their diet with food.

Imagine my delight when I discovered your Science Diet. My cats have gone from total disinterest in science to devouring it greedily. I tip my hat to this remarkable breakthrough.

I am greatly interested in your Hairball Control Science Diet. I hope you can answer some of these questions about its efficacy.

  • What is the heaviest hairball I can expect my cats to lift?
  • Will my cats be able to control the hairballs of other cats?
  • Can wigs and toupees be considered hairballs?
  • Does the hairball control effect diminish with distance?
  • Does the cat need to know the location and/or existence of the hairball, in order to control it?
  • Is there a limit on the number of hairballs my cats can control simultaneously, other than the total number of hairballs in the world?
  • If a man were to ingest the Science Diet, would he gain the power of hairball control?
Please reply swiftly, the minds of ordinary men cannot conceive the stakes we are dealing with.

Your benevolent overlord, Craig Timpany

Share Comment Forum

The dangers of paper prototyping

I’ve been an enthusiastic proponent of paper prototyping, but I’m starting to see its limitations.

I’ve been playing The Void by Ice Pick Lodge. Ice Pick Lodge are the closest thing the game industry has to David Lynch. Aesthetically the game is remarkable, but I’m not going to address any of that.

In spite of an exhaustive tutorial, it’s actually even less accessible than their début game, Pathologic. It’s shorter and easier, but the gameplay is more difficult to grasp. I restarted the game four times after screwing the pooch so badly that the game became unwinnable. The game is just so abstract that it takes a while to understand the strategy.

The game establishes a jargon of it’s own from the beginning. Hearts, Colour, Nerva, Lympha are all abstract quantities or containers for abstract quantities. The colours crimson, amber, gold, emerald, azure, violet and silver all have special properties and uses. Before long, you start to feel like you’re playing Settlers of Catan.

If a game design is built wholly on paper, it’ll continue to reflect the limitations of board games even in its final form. The Void has all the hallmarks of being prototyped as a board game, then shoe-horned into a third person adventure game. This isn’t necessarily a bad thing, but it has drawbacks:

  • Board games can get away with game mechanics that are less intuitive than videogames. The fact that the player is carrying out rules manually guarantees that the mechanics will be tactically transparent. A videogame will need lots and lots of cumbersome UI to compensate.
  • When designing a board game, it’s really tempting to leave the theme until later. You’ll tell yourself that if the game mechanics are fun, everything else will fall into place. Usually this results in a game that’s fun, but completely impossible to fit into a theme. A game without a theme is a very dry learning experience.
  • One of the biggest differences between Pathologic and The Void is that Pathologic started with familiar concepts (sickness, medicine, exhaustion, hunger), and then exposed the player to unfamiliar ones. The Void drops the unfamiliar concepts on the player all at once.
  • If you’re designing a real-time game, there will be a distinct seam between the nitty gritty details of your simulated world and the strategy layer. It’s very difficult to integrate the two after designing the pieces in isolation.
  • Board games tend to be a lot shorter than story driven videogames. To progress in The Void, you must plan at least 5 turns ahead. With the minutes-long turns of a board game, this forward planning gives a pleasant level of strategic depth. With the hour-long turns of this action-strategy hybrid, you’ll find yourself taking pages and pages of notes just to make sure you don’t spend something you were intending to save.
The sad thing is that I think the strategy layer would’ve made a fun board game, but it detracts from inhabiting the world and interacting with the characters. There’s no synergy between the two halves of the design.

I don’t know how much the awkward game mechanics are a deliberate part of the game’s message. The resource management aspect seems intended to provide irreversibility, so that the player’s decisions have weight and poignancy. Making these weighty decisions without understanding the consequences is part of the game’s theme. For less ambitious folks like myself, who are only shooting for an enjoyable game, it remains a counter example.

Share Comment Forum

Game budgets, a powers of 10 overview

Realtime Worlds’ high profile MMO All Points Bulletin was shut down recently, after a mere 80 days in operation. There’s been a lot of disbelief regarding the $100 million of venture capital that Realtime Worlds burned through on their way to bankruptcy. Let’s take a look at that number in the context of game budgets, to get a better idea of what $100 million buys you.

All dollar amounts are in US dollars. Let’s start at the comprehensible scales and work upward:

$1000 (or 1 person-week)

A week’s worth of labour is enough for a tiny prototype with a single game mechanic, like the ones I’ve been posting here. With the simplest concept and the smallest scope, you can still create something delightful. Petri Purho created the Crayon Physics prototype in under a week.

A typical week might involve a day for brainstorming/mock-ups, a couple of days to code it and fix the (worst) bugs, a day to test it and tweak the details and a couple more days to slap some rudimentary art and sounds into it.

$10,000 (or 3 person-months)

(Assuming an indie author subsisting on $40K annually)

Everyone has heard the proverb that the last 20% of a project takes 80% of the time. If you’re looking to achieve commercial-quality polish, that may actually be an underestimate. On Flick Kick Football*, getting a fun prototype with mostly final controls and some rudimentary obstacles to kick around was only the first 10% of my work on the project. The other 90% was spent addressing the multitude of details that kept that basic prototype from fulfilling its full potential. Menu systems, tutorials, title music, animated flourishes to draw the eye, leaderboard integration and so forth.

If the game has to be polished, advance one power of ten, do not pass go.

  • I don’t know what Flick Kick Football’s precise budget was, but it had 5 digits.

$100,000 (or 18 person-months)

(Assuming a $70,000 average salary, as reported by the Gamasutra salary survey)

OK, so we’ve accounted for the 10-fold increase that comes from polish. What if the game isn’t a simple single-mechanic game? What if there’s an element of exploration? There’s a gulf between games that take place in a few reusable arenas, and games where the player progresses through a game world. With the latter, you need to develop tools like level editors, and you need to build environments with them. You develop more variations on the core gameplay to keep the player occupied throughout their journey.

Back in the good old days, you could make an Xbox Live Arcade game for this much. Jonathan Blow has stated that Braid cost $200,000 in living costs and art contracting, so it’s a touch large to be the example here. In terms of pure labour, there are also some large open source games that are at this scale.

$1,000,000 (or 15 person-years)

This was big-budget, back in the early ‘90s. At this scale you have teams of specialists. Take Doom for example, a year-long development with 3 coders, 2 artists, 3 level designers, a composer and a couple of admin folks.

Projects in the millions can spend more on technology, building/buying rendering, physics, sound and scripting engines, tackling tricky features like network multiplayer and streaming levels. Art teams start to benefit from specialisation into modellers, animators, texture and concept artists.

You can still put out a minor retail game for this much, though people will bitch about the graphics incessantly.

$10,000,000 (or 150 person-years)

If you’re making a blockbuster console game for the core gamers, you’ll be spending tens of millions.

In first person shooters and action adventure games, it’s striking how quickly the player moves through the environment. They’ll typically spend under a minute in each room. Nobody likes to see the same room, cut ‘n’ pasted over and over, so it’s typical to produce hundreds of rooms worth of environment geometry and texturing, all lushly detailed.

With this sort of production effort, you want to be very sure that the design is going to be work, and you have the right content creation tools. To achieve this, there’s a long preproduction phase - sometimes more than a year - to really explore the possibilities. After producing a promising looking vertical slice, dozens and dozens of staff pile on to the project. There’s lots of outsourcing to achieve this. Where there is outsourcing, there’s the associated bureaucracy of managers and producers.

Take Killzone 2. There was a presentation at GDC ‘09, KILLZONE’s Art Tools and Techniques, that went into a lot of detail about their team composition and schedule. Here’s the breakdown:

  • 50 Testers
  • 48 Artists
  • 27 Coders
  • Approximately 25 modellers (they said they outsourced, so there was some guesswork here)
  • 17 Level designers
  • 14 Environment artists
  • 13 Producers
  • 10 Other technical (whatever that means)
  • 8 Visual design
  • 7 Animators
  • 6 Special effects (making particle systems and the like)
  • 5 Audio
  • 4 Human Resources
  • 4 IT support
  • 3 Lighting
  • 2 Cinematics
  • 2 Tech art
  • And a partridge in a pear tree
  • 245 staff total
There’s no information about how long each of these people were on the project, but we can make some educated guesses based on the length of time they spent in each production phase.

They spent a year in preproduction putting the art pipeline together and producing a trial level. Let’s say the code team and a third of the art team were there for that year, at a cost of about $2 million.

Then they spent 18 months in full production. That would’ve cost more like $16 million.

Then I assume there was a 6 month beta test, which the code and test team would’ve remained for. That’d cost $2.5 million.

And that’s how you spend $20 million.

$100,000,000 (or 1500 person years)

I’m not sure if anyone has actually ever spent $100 million on developing a single project. Realtime Worlds had another project called MyWorld eating into that aforementioned $100 million. It’s not hard to see why there’s a lack of examples: you have to be among the highest selling retail games of all time just to break even. Some projects have come close though:
  • GTA4 is said to have cost $100 million, but that figure includes marketing, so the actual development budget could be as low (!) as $50 million.
  • Half Life 2 spent over 5 years in development, but it cost a piffling $40 million.
  • The 3D Realms incarnation of Duke Nukem Forever was cheaper still, burning through $20 million. While absurdly late, at least their team size was restrained.
  • The notorious Shenmue cost $70 million. What a bargain.
  • Tabula Rasa is rumoured to have cost $100M, but the details never got aired in public, so we can’t be sure.
  • Lum has inferred from some comments made by an EA exec that Star Wars: The Old Republic might break the $100 million barrier. Once again, we can’t be sure.
Only MMOs tend to get anywhere near $100M. Instead of being just a mere software development, MMOs combine some of the most expensive aspects of building a theme park, running a large online service, and policing a city. You also don’t want people cancelling their subscriptions, so there’s an incentive to make the game as long and as large as possible.

Let’s take World of Warcraft. We’re told it cost less than $100M, but its success ($800M annual revenue) is the most frequent justification offered for spending $100 million. (Not that it’s not a wise justification)

In Warren Spector’s master class videos, Blizzard co-founder Michael Morhaime says “We started working on WOW in ‘99, and we released it in ‘04”. As for the team size, Blizzard did a presentation at Austin GDC ‘09 with some excellent statistics.

  • 32 coders maintaining 5.5 million lines of code.
  • 51 artists with 1.5 million assets.
  • 10 producers.
  • 135 people in total on the development team, not including sound, testing or cinematics, which are shared between project teams.
This was the live team as of 2009, not the development team prior to launch. Let’s make a wild unsubstantiated guess that getting WOW to launch was 200 people working for 5 years, or 1000 person-years.

But hang on, you point out, that’s only $70 million. The really shocking part comes from the on-going costs of their operations team:

  • 2056 game masters / customer service reps
  • 340 in billing
  • 149 in network administration
  • 121 in technical support
  • 67 in quality control
  • 66 community managers
I’ll grant that this team is so huge because WOW has so many customers. Nevertheless, you need at least somebody on this team for launch. Realtime Worlds were swinging for the fences, so they could well have had a sizeable operations department anticipating an influx of players.

So there you have it. $100 million. Enough for a truly, truly gigantic game.

Share Comment Forum