To N-finity and Beyond

By Raigan Burns and Mare Sheppard [05.29.14]

We're Mare Sheppard and Raigan Burns, and together we form Metanet Software Inc. Metanet is based in Toronto, Ontario, Canada, a city now bustling with energy and game development goodness. But it wasn't always that way! We're here to tell the story of how we got started making games, largely by charting the development of the many iterations of N, taking a few tangents and noting some dev lessons we picked up along the way.

Our story begins back in 1998, when we were both attending University of Toronto. Mare was taking visual art, sociology and computer science, and Raigan was taking philosophy, film, and computer science; we met in first year in Java 101. We started chatting in the lab one day and really hit it off, bonding over a hatred of boring application programming and a love of games.

Over the course of those heady U of T days, we spent a lot of time downloading and playing games from Home Of The Underdogs (a site that had lots of freeware, shareware, and "abandonware" games), playing together or recommending our favorites to each other. There were some that stood out: Soldat, Super Bubble Blob, Puchiwara No Bouken, and Zone Runner were exceptionally fun and inspiring, and you can see the echoes of those games in N.

As we played, naturally we talked about what was fun or special about our favourites, and imagined what went into making them; it dawned on us that many of these freeware games were being created by small teams of just one or two people, several of them students. Just like us! This planted the seed in our minds that you could make a pretty great game with just a few people.

Learning the ropes

We still weren't sure how to go about doing that though, and we certainly weren't thinking about making games as a business. Back then, universities didn't want anything to do with games, and the game development scene was nothing like it is now: it was very hard to meet anyone who shared our interests locally-we didn't know of a single game developer in Toronto! Most of the exciting smaller games seemed to be coming out of Europe, which was beyond our reach, so we just continued playing games and thinking about them.

Luckily, in another comp-sci course, we met Jon Mak (who would later found Queasy Games and make Everyday Shooter and Sound Shapes). He was very inspiring; he showed us game after game that he'd made all on his own in high school, each one of them more interesting and polished than the last.

We became friends and spent a lot of time talking about games. We talked about what we liked, what we disliked, what we wanted to make, and what we wanted to play, and about the technical side of making games as well. Jon explained how he'd solved some problems and how his engines worked, and we showed him some really cool papers we'd been reading and thinking about. As we talked, we were each cultivating new ideas and being inspired by what was being shared; we were accelerating each other.

The fact that those freeware games we'd been playing were each made by only one or two people didn't fully sink in until Jon had showed us the games that he himself had made in high school-we had finally met one of those crazy people who made their own games! When that happened, in person, we really got it: the idea of making games became concrete and accessible. Knowing Jon as a person and seeing the things he'd been able to accomplish made us feel like maybe we weren't so different, and maybe it was possible for us to do it too.

Experimenting in school

We were familiar with basic object-oriented programming from courses at university, and we started learning game programming on our own, thanks to online tutorials, active and helpful communities on forums, and mostly by just trying stuff to see how it worked.

We started working on a series of experiments in Flash, trying to implement whatever ideas we were interested in, with no clear goal except learning. It was really cool to watch little tech demos come together and come to life (or often, fail completely), but at the same time, it eventually began to get frustrating because our little experiments never amounted to anything. We had implemented some simple particle systems, basic ragdoll physics, ray-casting, tile-based collision detection and response prototypes, and rudimentary AI tests, but we still had no idea how to take these pieces and make a game out of them.

Time passed; we graduated from university and spent a few years working at day jobs, scraping by on minimum wage and becoming skilled at keeping costs extremely low. We rented cheap apartments with other students to reduce the cost of living, and worked from home; we used public transit and cycled rather than owning cars; and most importantly, we tried to do everything ourselves. Keeping overhead as low as possible is something we still believe is very important, as it gives you more time to work with ideas. Anyway, we played around with programming projects in the evenings and weekends, and occasionally at our jobs (shh!). Then, in early 2004, we randomly heard about an event called Flash in the Can being held in Toronto, which was sponsoring a contest for Flash games.

Meeting the milestone

The deadline was about two months away, which turned out to be quite important-having a concrete deadline was a catalyst that motivated us to try and actually finish a game, building on our previous programming experiments.

Our initial plan was to make a stealth-based platformer; we had made several tile-based platforming prototypes, and figured we could find something fun to do related to sneaking around, climbing walls, and dropping on unsuspecting guards. We also knew we wanted to make a game about ninjas (because ninjas are cool), so it seemed obvious to us to make the game about sneaking -ninjas are, after all, masters of being sneaky.

With this basic plan, we began to hastily cobble together many of the little experiments we had worked on over the past few years: collision detection, ray-casting for the enemy AIs, and a basic physics simulation affecting the player character (who was a circle, at this point-both graphically and in terms of collision shape).

"Six weeks!" We thought, "that's plenty of time!" We were spectacularly wrong. Instead of six languid weeks of us neatly slotting together finished chunks of code, birds singing at the window as we put our feet up and cheerfully played our new game, what followed was six insane weeks of us frantically rushing to get something done, stunned by how much there was to complete that we hadn't even considered (making levels, UI and menus, saving progress, etc.)-plus we were still working full-time at those day jobs.

This experience taught us how grueling and horrible crunch is; we were burnt out for months afterwards, and we've made a point to try to avoid it ever since. Actually, we learned something else as well: how long it can take to really finish a game even when you've got most of the parts ready to assemble! Take your estimation and double it, and you might be getting close.

Part of the reason development was so time-consuming was that we didn't have a crystal clear idea of what we wanted to end up with, or a design doc; this may sound dangerous, but even today this tends to work well for us-having the flexibility to let the game tell us what it wants to be, and the courage to try tweaking and changing various aspects of it is so important.

Changing directions

As we worked on the project, we discovered that it was far more fun to careen around levels pulling off crazy moves at top speed than it was to sneak around slowly and stealthily. That felt significant, so we changed gears to take advantage of it, which was definitely the right decision in hindsight.

One of the most pivotal moments in the game's development was when we added the player character, which had previously been represented by a circle-we drew out a little stick figure, tweaked it and added some flare (oh yes, pun intended) and then began animating, using Flash's keyframe and tweening system, and borrowing heavily from Muybridge's frame-by-frame photo animations of people in motion.

As soon as we added the ninja, the game immediately gained a personality, an identity of its own. That one little change transformed the feel of the game completely; it really "sold" the feeling of speed and acrobatic movement and made it more exciting to play. There were many other little moments like that, which made the process thoroughly enjoyable: we especially liked making and playing levels, and started to name them with the goal of making each other laugh. It was rewarding, which took the edge off the intense stress and overall difficulty of game development. This sort of silly levity kept us sane by helping to make our 12-hour days a bit less gruelling, in much the same way as the slapstick ragdoll death animations in N help to soften it a bit and make failure in the game less brutal to repeatedly endure.

So, over the course of those six weeks, N eventually emerged. The name seemed like a natural idea: simple, minimal, different, and representative of the game itself. (Also, we really liked how that particular glyph looked in the bitmap screen font we wanted to use: very abstract and monolithic, the perfect logo.) It didn't occur to us until afterwards that it would be terrifically difficult for people to search for the game!

(Incidentally, the name "N" doesn't, as is commonly assumed, stand for "Ninja"-it represents The Way of the Ninja, the fictitious "highly advanced system of spiritual, cognitive and physical training" detailed in N's story. The sarcastic plot was a reaction to the still-prevalent notion that narrative is somehow an integral part of what games are-N's story was our tongue-in-cheek way of poking fun at that idea.)

In a lot of ways, N was a reflection of what we liked in games-we combined parts of some games we loved, added some things we were interested in, and made sure to avoid what we didn't like about other games. It was a silly, irreverent game made just for us, and not surprisingly, we thought it was pretty good.

For the love of the game

We entered the contest, and waited, and waited. Two weeks passed, and the finalists were announced: N didn't even place! The game that eventually won the final round was Starsky and Hutch Pinball. This was a very disappointing experience; we felt like failures. We really enjoyed playing N, and had begun to mistakenly believe that this thing we'd made was objectively amazing, but the world said Starsky and Hutch Pinball was better. And since that was obviously crap, we figured our game must be even worse!

We realized we'd let ourselves get deluded, thinking that because we'd finally finished a game, and this achievement was so momentous in our lives, that it would of course make a big splash outside of them as well. Not necessarily so! We learned that at the end of the day, you really have to be making games for you, because then you'll have something you're happy with regardless of what anyone else thinks. In other words, do it because you love it, but not because you think other people will. (Also, it's a great learning experience, and learning is incredibly rewarding.)

And we did love N. Imperfect as it was, we still thought it was fun, so we said ‘what the hell' and released version 1.2 as freeware in 2004; we wanted to give back to the game community that had given us so many hours of enjoyment, and that had helped us learn how to program in the first place. Surprisingly, after a month or two, people wrote to us saying they liked it. And that they hated it. They told us N was the most frustrating game in the world (fair point). We got a lot of feedback.

Finding the fun (and the fans)

That feedback encouraged us to continue working on the game, refining it, adding more levels, and some new functionality such as online high scores. We listened to the criticism and praise, filtered by our own vision, and over the course of the next year we made something that was better than it was when we started. (To be fair, this wasn't hard: The first version of N relied on NES-style passwords to save progress, because we hadn't had time to figure out how to save data properly! Yikes.)

We giddily incorporated Metanet Software, as a joke. (It turns out that the joke was on us-corporate taxes are horrible.) We entered N v1.4 into the Independent Games Festival in 2005; it managed to win the Audience Choice Award, thanks mostly to the active and passionate online community of fans which had sprung up around the game. When we won the Audience Award at the Slamdance Guerrilla Games Festival the following year, we were again quite amazed, although this may have been pure luck: we randomly chose the table closest to the door to display our game, which meant we got a lot more walk-by traffic than other games. Attending GDC and Slamdance was wonderful: to be around lots of other game developers from around the world was an immensely exciting experience. Talking with them was incredibly inspiring and energizing, and gave us a ton of insight on how and why other people make games.

So, after a rough start and a lot of work, N was starting to do alright. We were shocked and proud that this little thing we'd made had found an audience. The whole point of us making games in the first place was that there were games that we wanted to play that didn't yet exist; we found it a bit mindblowing that other people wanted to play it too. One of our most proud achievements was that N was named a "Top Dog" on Home of the Underdogs-seeing a game we ourselves had made on the very site that was the source of our original inspiration to make games was really rewarding.

Feeling like the game was still pretty rough and unfinished, and that we owed our fans something really special for believing in us, we promised more updates. But we were also itching to move on to new projects, since we'd gained insight and a whole whack of new ideas during the process of working on N. The success we'd experienced with N was a double-edged sword-our own expectations for our second game were immensely high, and we could feel that weight every day. We worked on a few other game ideas, but we mostly floundered under the pressure.

On top of that, we were struggling to stay afloat, bolstered only by our extreme frugality; we were still working day jobs, now supplemented with the occasional freelance game programming contract, but since we had released N for free, Metanet Software was not yet self-sustaining.

N to the X(box)

In 2006, there was a lot of interest from both fans and Microsoft in making a version for XBLA (which was still sort of new at the time), so we started to look into it. We had a lengthy - and often quite heated -- internal debate about whether or not this would qualify as "selling out".

Although the thought of quitting our day jobs to work on games full time, as a legitimate business, had certainly crossed our minds, in those days we were especially cynical about the business side of the industry: we were making games for the love of them, and worried that to work with one of the big console companies would mean that we would change, and start making games for money instead of for themselves. We didn't want to be those people, or lose something important.

We eventually decided that exposing the audience of Xbox-owners to something that was maybe a bit weird or different than the usual AAA fare was a strong enough motivation to face the terrifying world of the games industry proper, and that as long as we put love into the game and made something we both believed in, it would be worth trying. Having a game that we made on an actual games console seemed like a crazy dream come true, and we didn't know if we would ever have such an opportunity again.

We really wanted this whole game-making enterprise to work (neither of us enjoyed our day jobs) and we yearned for the freedom to spend all of our time making games. So, we decided to make a go of it at Xbox 360 Live Arcade, with N+.

In order to not go bankrupt, we somewhat reluctantly decided to make N+ a paid title, but we set the price low and planned as much content as possible in order to make sure it had the best possible value for players.

We had a strategy, but we didn't have the money to fund development. Luckily, we are based in Canada, so we applied for and received a small loan from the Canadian government to fund development of N+. We had some help with this process: our agent Warren Currell helped us deal with Microsoft-which is definitely not something either of us wanted to do!-and Jamie Cheng (from Klei, also a client of Warren's) helped us a lot with the paperwork, which was quite intimidating for the noobs we were.

All the money ended up going to certification, testing, localization, and (most importantly) to pay the awesome Slick Entertainment to develop it. (Slick had worked on Xbox 360 games before, and knew all the ins and outs of shipping a "real" game, and we decided N+ would turn out best if we left the console programming to professionals.) In order to make the budget work, we couldn't even pay ourselves! Good times.

We worked with Slick for the next year, making almost a thousand levels and trying to feel confident about every single little detail in the game. Slick was absolutely fantastic to work with, they were able to port the code, build the architecture, write the network multiplayer, and implement our hundreds of sometimes nit-picky requests with ease-and over the year, somehow it all came together. It wasn't perfect, but it was solid.

When we finally released N+ on XBLA in 2008, again we were lucky: the game sold surprisingly well (we continue to be amazed at how many 360 owners are willing to take a chance on something that on the surface isn't as appealing as Madden or Call of Duty), and for the first time in our lives we had enough money to pay ourselves! This was a real indication that maybe this game dev thing could work out after all, maybe we could quit our day jobs and finally have that freedom to make the games we want. Looking back, we sort of stumbled into becoming game developers, but it came from a love of games and turned into a love of making games too. And we wouldn't trade that for anything.

Liaising with the locals

When we started working on N, Toronto was very young as a place for making games. Today, it's exciting (and a bit intimidating) to see the number of great games being created here and the number of amazingly talented people making them. Being surrounded by bright people and a thriving community is immensely inspiring, and often the key to solving many of the problems we all face during game development.

Talking with other developer friends in Toronto (like Capy, Queasy, ][, and Bigpants) and at events like GDC has been instrumental for us; we've been able to understand that while making games can be incredibly difficult sometimes (as with any creative enterprise), we're not alone in our struggle, and we can all help each other.

In N, to become a skilled player, you have to grow and learn as a person. You need to change your behaviour subtly to avoid dead-ends and keep moving forward. You need to have patience. Most of all, you need to stay calm and focused, and to not panic no matter what happens. Maybe that's a pretty good metaphor for game development as well. Huh. Who knew that all this time, N was really an art game!

What's (N)ext?

These days we continue to work full time at Metanet Software, which has evolved into more of a proper business, with budgets and accountants and dedicated servers and a business plan, but we still try to keep our overhead as low as possible. Last year we finally took the plunge and rented a small office space, after our Toronto game dev friends all insisted that it was a lot better than working from home. They were right! That division of separate work and home spaces is important: it helps you to understand better the role and value of each part of your life, and lends itself to a more structured and efficient work schedule too.

Our plan is to make games that we prototype in-house, with just the two of us, and then develop the most successful of those further, teaming up with collaborators as necessary. A low overhead gives us the best chance to stay afloat in an unpredictable and potentially volatile future, continuing only work on projects that really matter to us, or that speak to us in a significant way. That's what it's about, for us.

We feel that the ability to change direction at any point during development based on what feels best about the game is a crucial part of making games for the love of it -- the only way we know how to do that is to ensure that our future in this industry is not completely dependent on the success of whatever we're working on at any given time. Easier said than done, of course.

This year, we're remaking N for the third-and absolutely final-time, and it will be called N++. It's a decision that was not easy to make: The various versions of N certainly had a massive impact on who we are and how we've spent our time thus far, but over the past nine years we've become - perhaps understandably -- pretty burnt-out on N. Still, we have always felt quite guilty about never having finished the v1.5 update we promised to fans and not having any other games to show for all the effort we put in to them over the years...All of that pressure really watered down the enjoyment we find in game development. So this year we're eliminating all N-related stress by finishing it all for good.

There are certainly pros: fixing all the little glitches, improving the quality of the level design, making the version of N we always wanted to make but didn't have the resources or experience (or perspective!) to properly realize. It's also a great opportunity for us to work with people we've always wanted to work with, like our friend Shawn McGrath (who made Dyad). To a certain extent N++ is meant to be a kind of rehab, to get us back into the groove of finishing games after a few years of struggling, but we do worry that we're just trying to recapture the exhilaration of how it feels to actually ship a game. We're worried that we're stalled, afraid that we'll never be able to make anything else, and that this is the best we can do. How can we find a way to continue to feel motivated and to continue moving forward if that's true?

Who knows! It occurred to us at a certain point though that we have to put that worry aside and try-running away from problems doesn't do much in the way of solving them. We're going to try our best to make N++ the absolute definitive version-the N-liest version of N that ever N-ed-so that we can give ourselves permission to stop working on it, stop trying to perfect it, let it (and us) be what it is and wholeheartedly move on to other games. After all, this is what we love to do, and we never want to lose that love -- making games because we want to play them, and not because of obligation or pressure: that feels like the right thing to do.

Raigan Burns: n. a set that is closed under two commutative binary operations and can be described by any of various systems of postulates which is deduced from the postulates that an element exists for each operation, and for every element in the set there is another element which when combined with the first under one of the operations yields the identity element of the other.

Mare Sheppard is one half of Metanet Software Inc., an indie game developer based in Toronto, and is a founding member of the Hand Eye Society. After graduating from the University of Toronto, Mare formed Metanet Software with Raigan Burns, who is similarly passionate about games, art, music, and many, many other things. Mare and Raigan incorporated Metanet 2004, released N in 2005, brought N+ to consoles in 2008, finished an update to N in 2013, and are now feverishly working on two new games, three top-secret projects, and a partridge in a pear tree. In her spare time, Mare enjoys crafting Metanet's merchandise, playing video games and encouraging more people to make and play games.

Return to the web version of this article
Copyright © UBM TechWeb