It’s been a little over a year now since I finished up working on Starhawk for PS3 but it seems like so long ago. Despite being a pretty fun multi-player game it flopped and most of the team was let go after the second DLC update. Sometimes that’s how things can go in this industry, but I saw it as a great opportunity to focus on building an indie career and it’s been a crazy year. In the past 12 months I was contracted by Sifteo to develop an original game for Sifteo Cubes, won Indie Speed Run, showed a game at MAGFest indie showcase, released several freeware games, and made major improvements to my game engine. Despite some success I’ve netted only about $13,000 in income while having many setbacks and working constantly. In this post I will review my experiences from the past year and outline my plan for moving ahead.
After parting ways from LightBox I spent the first few months going through all the things I had been wanting to devote some time to. I fixed a huge backlog of issues with my game engine “The Frank Engine” and added some new features like the incredible looking dynamic lighting system shown in the video below. I was planning on working more on PC games but then I ended up winning a development contract for Sifteo Cubes which consumed most of my time last year.
Squaring the Cube
Early 2013 I entered a contest on The Experimental Gameplay Project blog where the prize was a $25K development deal to make a game for Sifteo Cubes. I was intrigued by the system’s combination of tactile features and extreme hardware limitations and thought this might be a cool though unorthodox way to launch a career. After spending about 2 months working on a puzzle platformer called “Squaresville” and a few other games I ended up winning the contest. They offered me a contract of $25,000 to make Squaresville for their platform. That may seem like a lot of money at first, but you have to realize this was to be paid out over a rigorous 6 month schedule, in addition all the development time I had already invested. Also the payment schedule was much more heavily weighted towards the end of the project and I should have negotiated it better. Still I was happy enough to have a publisher while still keeping my creative rights, that I was willing to accept a less then desirable compensation, and I incorrectly assumed that the full payment was guaranteed if I followed my side of the contract. Here’s a link to the Game Design Document I pitched for Squaresville with some more technical information about the project.
The programming for Squaresville was the most challenging part of the project because of the limited tools and a somewhat lacking SDK, but I understood that they had just released this new device and were working out the kinks. There was no debugger which was the biggest issue for me because it is so much harder to diagnose issues without one. Of course I was writing everything from scratch including physics and engine code so there were many points of failure. The emulator also sometimes randomly crashes after about a few minutes (SPI FIFO overrun/underrun), which was very discouraging to players who tried my game. I sent my suggestions to Sifteo and they were very receptive, so I hoped things would get better and it seemed like the system had a lot of potential. They assured me that debugger support was under development, but it never came, nor did any other updates.
The hardware itself also made things difficult because Sifteo Cubes are much slower then I expected, much below SNES and in many ways below NES. Sifteo’s core processor is faster then a SNES (72 MHz vs 21 MHz) however Sifteo does not have a separate PPU for graphics or audio subsystem. This means that only the main CPU is responsible for graphics, audio, and controlling multiple wireless screens. There’s more to it then that of course, I recommend this article by one of the engineers who worked on the Sifteo Cubes hardware that goes into more depth. It’s kind of amazing how Sifteo does everything on a single chip and works fine for some games but in effect it makes them slow at animated graphics and audio, crucial elements to a platforming style action game. I spent weeks squeezing out tiny optimizations and wrote a profiler to better examine the timings of different areas of code.
The art was actually kind of fun to work on because it was so much lower res then anything else and I had to pull many tricks for graphics and animation. Sifteo works using 8×8 tiles so I used a 8×16 sprite for the player which is really tiny but somehow just barely enough to represent pretty much any thing you want. While working on the project I used a massive 1000 x 1000 pixel image for all my ideas which was kept under revision control. For fun and practice I also made low res versions of some of my favorite characters from videogames and comics.
Despite the limited hardware and lack of debugger I pressed on and built a powerful game engine that ran on Sifteo Cubes while also creating the artwork and working with my musician, Rene Wiersma. Unfortunately after the alpha phase I was contacted by Sifteo and told that they were experiencing financial issues and cutting most of the projects under development. I pitched them an idea to release what I was working on as an open source game engine for other people to use called Wildflower. It was good to at least be able to share my work while also providing an opportunity to refine the editor for my game engine which I also use for PC development. We ended up renegotiating the contact for the reduced sum of $13,000 which is a bit disappointing for the amount of work I put in to this project. Some of that money also went to pay my musician for the work he had already completed.
What went wrong
Eight months is a long time to gamble on developing games for a system that no one has and that also by design wont work on any other device. I learned that when it comes to contracts there is no such thing as a sure thing. My producer at Sifteo had actually originally designed a shorter schedule but it was me who thought it would take longer, which it did but it would have been smarter to reduce the project scope instead. We should also have set up a more even delivery schedule to avoid potential problems if the contract was not completed.
After seeing the hardware and realizing it’s extreme limitations and lack of debugger I should have at least reworked the game design or pitched them another idea. Too much of my time was spent hunting down bugs and just optimizing things to get it running at a barely acceptable 20 fps. I found that just playing music could use upwards of 5 fps of frame time. There were many other low level issues that took weeks to solve, and I’d rather be focusing on the fun parts of game design.
The audience that Sifteo Cubes was marketed to did not overlap well with the type of player that would enjoy a metroidvania style puzzle platforming game like Squaresville. I could have better targeted their core demographic by simplifying the game design to be more linear with less complex puzzles. Also I think it would have helped visually if I doubled the size of the player’s sprite and text because the screen is small and it’s difficult to see individual pixels.
What went right
Part of my plan for Squaresville was to use the same editor from the game engine that I use for my PC games. Working on Squaresville and Wildflower gave me an excuse to refine the editor’s user interface while adding many essential tools to the editor such as cut, copy, paste, undo and redo. This was great because all that work is being re-used in my PC game engine. I had originally also planned to release Squaresville on PC but I never got far enough into production to make it worthwhile.
Early into the Squaresville project I discovered an easy way to make GIFs of my Sifteo games which turned out to be a fun way to show off what I had been working on. I posted them in many places like the TIGSource forums and Reddit to help generate some interest. This also helped me keep my spirits up because despite the lack of ownership of the system people could still see how cool my game looked.
Working with a publisher like Sifteo on a experimental platform was a good learning experience for me because I’ve never done anything like that before. Most importantly I’m proud of what I created, and even though it was never completed Squaresville is a really cool demo that’s completely different from anything else I’ve done before.
Winning Indie Speed Run
Another awesome thing that happened is we won Indie Speed Run which is a game Jam run by Escapist Magazine. Our game “Secret Formula” was created by a team of Saam Pahlavan, Jerry Yuan, and myself. I wrote up a separate postmortem for that game which you can also read. People seemed to love the game but it winning a game jam doesn’t yield as much of a publicity bump as you would expect. We’ll see though since this only just happened about a month ago. The prize money was $2,500 which we split 3 ways, that was a nice little surprise and probably the most I’ve ever been paid for 2 days worth of work.
I submitted Squaresville to some indie festivals and MAGFest invited me to be part of their indie showcase. This was great because I was planning on visiting my family over the holidays in Philadelphia which is only a few hours away from National Harbor, and my brother was already planning driving to MAGFest with some of his friends. I saw this mainly as a chance to show my PC games because even though I also showed Squaresville it was no longer under development. Also MAGFest is a just really unique experience that I was already considering going to.
This was the first festival I’ve ever shown a game at so I learned a lot about how to work a booth. I originally planned to show a top down action roguelike I had been working on, so I crunched on it like mad in the weeks leading up to MAGFest hoping to wow players. It is the most technically impressive game I have under development but that doesn’t translate to player’s interest. When it came time to actually show the game I found that that it was too complex of a game for that type of situation and players were not as impressed as I would have hoped.
The next day I adapted by instead focusing on Secret Formula which is a much more simple game and things went way better. People seem to have fun playing and it is exciting to watch because it has an attractive art style and is easy to immediately understand. I would tell players that a play through typically takes less then 10 minutes, and we made it in only 2 days for a game jam where it won first place which made it an easy sell for most people. It also helped build my confidence when so many players said they loved it after making it all the way though. On Saturday I set up before noon and people were playing Secret Formula almost non-stop until midnight, it was awesome. I also had some help from my brother Ben, Saam (who did the art and design), and some other friends. Some graphic designer friends of mine, Haim Sharma and Erik Weikert designed these awesome stickers that I gave out to everyone who stopped by the booth.
There were quite a few people who were interested in checking out Squaresville on Sifteo Cubes, but unsurprisingly almost no one had heard of the system before. It was a little hard for passerbys to notice the Sifteo Cubes because they are flat on the table, so I placed them in front of the stickers to help attract attention.
How to show your game at a booth
I feel like I learned so much at MAGFest, more then I ever would have expected. It’s hard to convey all the small things about running a booth, but here are some of the most important things to know.
- Focus on showing a single game, ideally a simple one. If your game is complex try to separate out a small demo area with a clear start and end that takes no longer then 10 minutes to complete. Tape the name of your game above the monitor like a marque. I made the mistake of putting my company’s name above the monitor which confused some people. You can also tape controls below the monitor for quick reference.
- Stay on your feet, active, and engaged. If there is no one playing your game, first take the opportunity to clean up your booth, fix yourself up, have a quick snack, because you won’t get a chance to if it starts getting busy. Then focus on playing the game for a while and see if anyone comes around to watch.
- Try to form an honest connection with players, but don’t hover over them or annoy people who aren’t interested in talking.
- If a player is playing, try to watch them play, you don’t have to be standing over their shoulder but keep your eyes on the screen. This will cause other people to notice that 2 people are watching the screen and help get more to start watching and waiting for their turn to play.
- The show floor is very loud, plan on having a good set of headphones available.
- Plan ahead for food, bring some healthy snacks like granola bars, fruit, etc. Buying food at a festival is expensive, slow, and poor quality. If you can find a microwave that also helps because heating up leftovers is sometimes the best way to get good food without waiting. There are usually water coolers that have hot water you can use to make tea or instant coffee if you bring supplies to the show floor.
- Make friends with the people at booths next to you and help them. Don’t be afraid to ask for help if you need it.
- Bring some gum or mints since you will be doing a lot of talking.
- Secret Formula isn’t a competitive game but it keeps track of your time, the fastest time and how many deaths you have. Something like that is fun way for players to gauge their ability against each other. Maybe it would have been cool to have something like bronze, silver, gold medals for different times or a top 10 list.
- Stickers can help attract people and are generally accepted as being cool. I would recommend about 200 stickers for something like MAGFest. I ordered my stickers from Sticker Mule. Make sure you order well ahead of time especially if it is during the holidays.
My Plan for 2014
Over the holidays I had some time to reflect on the past year and think over some changes I’d like to make.
- Make more small experimental game prototypes and get them to players as early as possible to gauge interest. Smaller ideas can always be extended into larger if there is interest from players. My game engine is actually designed for making rapid prototypes so I need to leverage that aspect more.
- More blog posts and sharing of what I’m working on. I started off well enough but working on Sifteo stuff really killed my blog because it seemed like there wasn’t much interest in the project from the indie game scene since no one had the system.
- More enjoyment of life itself. I spent so much time grinding my life away trying to make the Sifteo project work, I forgot that the whole point of indie development was to have fun.
- Keep healthy. This is something I had already made a priority through last year by eating healthy and going to the gym much more often. This time around I plan to incorporate meditation into my daily routine.
- Sell games. I must find a way to start selling something by this time next year or I’m going to be very tempted get a real job.
That covers almost everything that’s happened in the past year, I left out a bunch of stuff because there was so much that happened. Some of the other games I created last year include a pretty awesome Ludum Dare game called (R, G, B) which has a postmortem, Peong (a ponglike sifteo game), Twisteo (kind of like a rubik’s cube for sifteo), Dark World (one of my less good Ludem Dare games), and some major updates to Faster Blaster (my metroid-blaster master mashup). I’ve also been working on an action roguelike game with procedural level generation which I will post more about soon.
I hope this article helped some people to learn from my mistakes and advice, thanks for reading! Are you trying to make things work in the indie world? Leave a comment and let us know how it’s going.