The Poor Man's Postmortem - Lemma

Published June 25, 2015
Advertisement
The big secret of our industry is, we don't actually enjoy making games. We slave away in obscurity for years in anticipation of one glorious day.

Not release day, no. The day we can finally write a postmortem full of pretentious anecdotes, bad jokes, and unsolicited advice.

Well I just finished a game, and doggone it, I am going to exercise my inalienable rights as a developer.

The formatting on this article came out a little wonky. Read here for a better formatted version.



Things to do when making a game



Ancient gamedev postmortem traditions mandate that this section be titled "what went right". Unfortunately, the game was so shockingly good and so many things went right that a full overview would stretch on endlessly.

Instead you'll have to settle for this. These are some things I did that I recommend you do as well.

Come up with a good concept

I didn't do this one, actually. The original concept was a cartoony third-person game called Parkour Ninja. It changed every other week or so for the remainder of development. For a while the player had a pistol:
1wunul.jpg
And for a while, you could rip voxels apart and re-attach them:
p5zp3l.jpg9XAvHl.jpg

Almost everything got cut.

The final concept is not particularly unique. First-person parkour with a female protagonist has definitely been done before, and every third game on Steam uses voxels.

It worked in the end though, by combining familiar elements in a unique way, and by throwing in a weird, trippy, puzzle-y aesthetic. Every new idea steals from existing ideas.


In 2012 I released a short, strange, ugly, buggy alpha demo which nevertheless communicated the core ideas of parkour and mysterious voxels. Incredibly, Rock Paper Shotgun covered it. I doubt I would have stuck with the project without that affirmation.

Make it through Greenlight

I honestly have no idea how to replicate this feat. I don't know how it happened. Fortunately, Greenlight is much less daunting today than it was in April 2014.

I did almost nothing to promote the Greenlight page. I ran the campaign in tandem with a Kickstarter (more on that later), but almost all traffic came from Steam itself. Here's the embarassing trailer I used for both Greenlight and Kickstarter:



The game was greenlit in 16 days as part of a bundle of 75 other games, even though it hadn't reached the top 100 yet.

cBNID9Sl.jpg

As you'll see later, if you want to make a living developing PC games, you have to get through Greenlight.

Iterate the controls

My character controller article goes into much more detail on this, but basically, take however much time you plan to spend on the controls, and then double it.

Use MIDI knobs to control game variables. Explore the game space. Use offline processing to bullet-proof your character controller.

This point applies to all games, even those that don't have a character. The player's action and the game's reaction are arguably the most important aspects of a game, because they are unique to the medium.

Design your graphics carefully

Lemma has been pretty ugly for most of its life. I got lucky with a few textures in the 2012 alpha, particularly the stone texture which features heavily in the final game. But mostly I just slapped textures on haphazardly. Here are some perfectly good textures applied in the worst possible way:

vJPWAl.jpg

At the time, I knew something was wrong with this scene, but I couldn't put my finger on it. Allow me now, with the benefit of hindsight, to put my finger all over it.

  • Nowhere to climb. This is a claustrophobic indoor scene set inside some sort of derelict vessel. It belongs in Bioshock, not a parkour game.
  • Too busy. The textures are incredibly loud and detailed while the voxels are huge, flat, and boring.
  • No composition. Nothing draws my attention or invites me to explore. The shapes are all uninspired boxes.
  • Abysmal lighting and colors. If I recall correctly, I randomly placed the red point light on the left on a whim.

Compare to this shot from the final game:
mPXRXevl.jpg
Still some rough edges, but not overly painful.

Here's what I learned to get from point A to point B:

  • If you're like me, make up for your lacking art skills with code. God rays, SSAO, and particle effects worked wonders for me. And turn on mip-mapping for gosh sake.
  • Form and composition are more important than detailed textures. You can make a beautiful scene with just a few carefully placed shapes.
  • If you're trying to convey a massive sense of scale, your forms should have interesting features at every scale. A single, giant, featureless cube won't inspire awe. Neither will a giant cube with a detail pattern.
  • Colors and lighting make or break scenes. I probably spent as much time picking (and re-picking) colors as I did building voxels.

Support all the things

At the very least, add proper gamepad support. For me, Oculus Rift support was a huge selling point and a ton of fun for YouTubers.



Things like sparse options menus, missing gamepad support, and shoddy VR implementations enrage gamers, especially PC gamers. There's a reason TotalBiscuit starts every video with a look at the options menu.

I threw in every option I could think of, and almost every option requested by players. Y axis inversion, gamma, FOV, gamepad bindings, a framerate limiter, you name it.

Get involved with the community

I almost lost it In January 2014. Shut in my apartment for days on end, stuck in a difficult rut in production, I was going insane.

Thankfully, Columbus has a budding game development scene. I rented a desk from a local gaming incubator. The mere act of driving to work and existing around other humans got me through the winter. As an added bonus, I gained a ton of playtesters!

yKbs9yJl.jpg

Every month I attend a local game development meetup. As a solo developer, it's the only time I get to talk openly about the topic that consumes 90% of my life. Seeing the same people every month and catching up on their progress is incredibly rewarding.
For the rest of the month, there's Twitter!

Do your own marketing

If you're like me, your marketing budget is $0.

On launch day, I spammed announcements to all of Lemma's accumulated fan base via Twitter, Facebook, IndieDB, GameJolt, Kickstarter, Steam Greenlight, YouTube, and an email list.

I spent several days collecting contact info by hand for various press and YouTubers. Whenever possible, I automated the process with Python and Javascript. Some resources I used:
I pulled everything into a Google Docs spreadsheet and ran a mail merge on it two weeks before the launch. Somewhere around 400 Steam keys ended up being activated.

YouTube ended up bringing the most traffic. Over 400 videos have been uploaded to date, totalling over 5 million views, mostly thanks to three huge videos posted by jacksepticeye.

Ship your localization strings in plain text

Lemma uses Excel files for localization. I use a third-party library to read them, which makes the code pretty simple.
This ended up being a great decision, because foreign players step up with their own volunteer translations. They can edit the Excel files in place and see the results immediately in-game.

Things to never do, ever



Run a Kickstarter

As Greenlight becomes easier to conquer, Kickstarter becomes exponentially more difficult. Backers have been burned too many times by now, and everyone sets their goals much lower than the amount they need to deliver on their promises.

I ran a failed Kickstarter for Lemma in March 2014. Originally, I planned to abandon the game if the Kickstarter failed. Then the Greenlight went through and I decided to cut back the budget, take some contract work, and do some budgeted art items (namely the character model) myself.

Running a Kickstarter takes too much time away from development. My advice is to find another way to fund your game if at all possible.

Write a pretentious story

If you're making Deus Ex, feel free to go wild with gritty lore and philosophical questions about trans-humanism. But if you're making Flappy Bird, you can get away with maybe a 10 second cut scene, tops. Know how much story your game can "afford".

The story of Lemma features quantum mechanics, the Philadelphia Experiment, life and death choices, infidelity, betrayal, and jealousy. All this crammed into 50 optionally collectible notes in a game about parkour.

The story tries to do too much. When all these conflicting ideas combine, they blur together into a jumbled mess that neutralizes the impact of each individual idea.

When it comes to story, do one thing, and do it well.

Suddenly switch from linear to non-linear design half-way through
I planned this from the beginning, actually. The first half of the game is linear so I can introduce mechanics one at a time. The player knows everything by the second half, so the game opens up into a non-linear cornucopia of levels that review the things you've learned so far.

This is a pretty good pattern as far as pacing, but the linear to non-linear transition confuses players. The whole first half teaches you that there's one way to "win", then suddenly, you're dropped out in the cold and left to your own devices with a completely incomprehensible world map.

AQK8Ohil.jpg
[size=2]Wait, what?

I did this because I thought, "this game is about exploration, it needs to be more non-linear". But all of the alpha releases were completely linear and not a single player complained about it. In fact, many of them commented that they enjoyed how each individual level could be cleared in many different ways.

The takeaway is, there are tons of ways to make your game feel more non-linear than it is, without building a confusing tangle of interconnected levels.

Design bad puzzles

My worst puzzles break the game rules. If you have to write a custom script that manually pokes the game state when the player solves the puzzle, stop and re-think your life decisions.

I'm always worried that my puzzles are too easy and that players will breeze through them too quickly, but in reality it doesn't take much to slow players down.

Often, the simple act of exploring a 3D space is enough of a puzzle. Games like this are a continuous conversation between level designer and player. It's enough of a challenge for the player to parse what the level designer is saying.

Throw in unnecessary enemies

Enemies have been a part of Lemma since day one. I love watching players encounter them for the first time, because they're truly terrifying. That small taste of horror shakes things up and fits perfectly into the pacing.

But after the novelty wears off, enemies become annoying and redundant. There's no combat; your interaction with them is always the same: run away.

My goal was always to integrate enemies seamlessly with the environment. In parkour, the environment is already your biggest enemy and your most powerful tool, so it makes sense. Unfortunately, I only came up with one enemy that came anywhere close to achieving this goal: a sort of tower that detaches from the environment and falls on you.

In hindsight, I should have been more confident in the core gameplay and remove the enemies to focus on better level design.

Spend time on an unnecessary level editor

Some games benefit hugely from a level editor. Heck, Garry's Mod is a level editor. If you're making that type of game, more power to you.

If you're making a mostly linear, story-driven singleplayer game, a level editor doesn't make much sense. Everyone says "oh cool, there's a level editor", creates a few cubes, and then completely forgets about it.

Again: do one thing, and do it well.

Start a hobby project and transition it to professional

Hobby game development is like building a tower of bricks. You don't know how tall it's going to be, you just keep stacking bricks. Each brick represents something that happens to interest you at the time. Branching dialogue? Sure, stack it on there. A pistol? Why not. Pretentious story? Check-a-mundo.

Professional game development is like sculpting. You start with a certain amount of raw materials: time, money, motivation, player attention, etc. You plan out a rough idea of your sculpture, then you start chiselling. The size of the sculpture is irrelevant if you put your chisel in exactly the right spot.

The two paradigms are incompatible. If you're a hobbyist looking to make the switch, consider starting fresh with a new project. Results Steam
The second spike in these graphs is mostly due to jacksepticeye's Let's Play videos.

Results



Steam
du652mrl.png
Sales: 3,171

ZfYb7X2l.png

Gross revenue before 30% cut: $43,554

Max simultaneous players: 63

2Pw99lGl.png

Demo downloads: 10,126

iLSlHTjl.png

Demo conversions: 277 (2.7% conversion rate)

[size=1]t3BNTHKl.png

Max simultaneous demo players: 53

ve3U0JDl.png

Key activations: 483

Positive reviews: 77 (91%)

Negative reviews: 7

Refunds: 68

2TPchSCl.png

itch.io

bqNKYkDl.png

Demo downloads: 1,896

Sales: 46

Gross revenue before 5% cut: $701

Humble widget (direct website sales)

aaxRlnDl.png

Sales: 37

dINxlhwl.png

Gross revenue before 5% cut: $557

IndieGameStand

Sales: 4

Gross revenue before 30% cut: $57

IndieDB

Demo downloads: 1,388
Piracy
Lemma offers the option to anonymously upload analytics. 5,732 out of 13,410 demo downloaders (43%) actually opened the game and opted in to the analytics program.

A total of 7,310 pirated copies of the game have submitted analytics data to my server. Assuming 43% of pirates opt in to the analytics, I estimate about 17,000 people have pirated the game, for a piracy rate of 82%.

The worst part about piracy is that torrents cannot be updated, which means YouTube is full of footage of old, outdated builds.

Conclusion
a1orQJ0l.jpg

  • Schedule: 3 years part-time, 1.5 years full-time
  • Core team members: 1
  • Contractors: 6
  • Budget: $30,000
  • Sunk opportunity cost: $80,000
  • Lines of code: 55,000
  • Audio assets: 200
  • Git revisions: 1,200

Lemma released May 12. The entire game engine is on GitHub. If you enjoyed this article, try these:
Thanks for reading!
24 likes 18 comments

Comments

Radikalizm

Great postmortem! Very awesome job in seeing this project through until the end, there aren't a whole lot of people who can say they got to do a successful release of a personal project.

June 25, 2015 06:10 PM
stu_pidd_cow

Congrats on making a nice chunk of cash!

I'm curious though, do you consider this a success? Are you planning on making another game?

I lost a little faith in the industry after reading the refund reasons and the piracy rate:(

June 25, 2015 07:26 PM
evanofsky

I'm curious though, do you consider this a success? Are you planning on making another game?

I consider it a success just because I finished a game. I also take into account the fact that most developers' first games don't make any money. I would have been happy with 10 sales.

That said, the game hasn't made enough to fund another game of similar size. Regardless, I'm still planning on making another game. I don't really have a choice, whether it's full-time or on the side, I'm probably going to be making games the rest of my life. smile.png

June 25, 2015 09:28 PM
jbadams

Thanks for sharing and for going into so much detail -- it's been great following along with your experience!

Still planning to buy a copy of Lemma when I can spare the cash, and looking forward to seeing what you come up with next! :)

June 26, 2015 09:52 AM
Aardvajk
Thanks for this. Will read in more detail later. Just watched the Occulus guy playing your game in the video you posted and it looks AMAZING! The way you do those notes she reads is fantastic.

Excellent work, love it. Will have to buy this soon.
June 26, 2015 11:25 AM
jbadams

Purchased via Humble widget, with a $5 tip -- now I just need some time to play it! :)

June 26, 2015 01:14 PM
evanofsky

Wow, thanks! I've had a blast writing these. :)

June 26, 2015 02:02 PM
TheChubu

The worst part about piracy is that torrents cannot be updated, which means YouTube is full of footage of old, outdated builds.

That's a very good point actually. In these cases you want to show the latest and greatest to people since big changes can happen from month to month.

Pirates running outdated builds might cause an image problem, then again, so will older videos from legit copies.

Congratulations for your successful release and here's hoping for more to come! :)

June 30, 2015 12:05 AM
TheChubu

Ooops, network hiccup there.

June 30, 2015 12:06 AM
215648

Is this game made from scratch?

July 02, 2015 09:41 AM
evanofsky

Pretty much. It's based on XNA.

July 02, 2015 10:07 AM
Aardvajk
Just been playing the demo. Will buy the game when funds permit, honest :)

All I can say is, you nailed it. Great work. I can't even begin to imagine how much work it took to get an out-of-the-box character controller to feel that right when doing such complex movements, but you hit it square on.

Finishing touches are superb. This is an astonishing achievement for a solo developer.
July 02, 2015 09:03 PM
Nathan Drake

that's very cool idea

may i ask you to describe more about the physics ?

it's more like combination of Minecraft and Mirror's Edge, it's great :)

July 09, 2015 05:01 PM
Orymus3

"Iterate the controls

My character controller article goes into much more detail on this, but basically, take however much time you plan to spend on the controls, and then double it.

Use MIDI knobs to control game variables. Explore the game space. Use offline processing to bullet-proof your character controller.

This point applies to all games, even those that don't have a character. The player's action and the game's reaction are arguably the most important aspects of a game, because they are unique to the medium."

Arguable, you're touching 2 of the three Cs here, so this makes sense. High production quality insists that your 3Cs be top-notch! (Camera, Controls, Character)

July 10, 2015 03:26 AM
riuthamus

Maybe I missed it, but where is the point where you say how much you have made after everything was taken out....?

July 12, 2015 03:48 PM
evanofsky

Maybe I missed it, but where is the point where you say how much you have made after everything was taken out....?

That's left as an exercise to the reader. Somewhere around $30,000USD before tax.

July 16, 2015 03:41 PM
riuthamus

Do you feel 30,000 is worth the time you spent?

July 17, 2015 03:22 AM
evanofsky

Do you feel 30,000 is worth the time you spent?

Not at all. I put $80k as the estimated sunk opportunity cost, but it was actually probably closer to $120k, assuming I stayed at my old job and never got a raise.

Fortunately, it was never about money. I have no debt and no obligations, so the only thing I need money for is to make more games.

July 17, 2015 07:59 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement