Categories
Game Design Game Development Personal Development Post-mortem

Sea Friends Post-mortem

I released my first Facebook app Sea Friends in February, and at first it looked like my friends were the only ones adding the game. Pretty soon, strangers started adding the game as well. It is a good feeling when you find that people are enjoying your game. It validates what you’ve accomplished and shows that people find value in it.

If you are familiar with my game development, you’ll know that Sea Friends is based off of my recently released game Walls, which in turn is based off of Minimalist. Minimalist was created for the 11th Ludum Dare 48-hour game programming competition. I wrote a separate post-mortem for it. Sea Friends took the same simple game play, applied a theme, and added a ranking system to a social networking site.

What Went Right:

  • Setting an aggressive schedule. My business colleague in this endeavor convinced me that it should be possible to get this project done in two weeks. Considering how long I spend working on a single project outside of 48-hour game dev competitions, I liked what I was hearing, even if I wasn’t sure how to get it done. We scheduled one week to make the Facebook app, and another week to tweak it. I figured the worst-case is that I learn a lot in a short period of time, so I went ahead with the project. I’m glad I did, because I was right. I got so much out of this experience, and I was able to put together a game much faster than I would have done before.
  • Leveraging the work of others. So how do you work a full-time Day Job AND get a complete Facebook project completed in a short period of time? You pay other people to do it for you. I didn’t have the time to learn new languages and write all the code, and while I am a decent programmer artist, I still create programmer art. I needed other people to do the work for me. Essentially, this project taught me how to be a project manager. I only did a few hours of programming, and it was mainly to update Walls with a few new features so I could have the Flash developer see what I wanted in the Flash version of the game. While I was at the Day Job or sleeping, someone else was still getting work done. By leveraging the work of other people, I fit 48 or 72 hours into each 24 hour day. That isn’t to say that I didn’t do anything myself, though. My work was less direct product development and more coordination, planning, and design. I was still exhausted by the end of this sprint.

    Before starting this project, I had been reading The 4-Hour work Week: Escape 9-5, Live Anywhere, and Join the New Rich which focuses a lot on the benefits of outsourcing to free up your time to do more of what you find important. One of my favorite moments during this project? Finding out that my car was buried by the previous day’s snowfall and knowing that I would need it to get to a meeting with my colleague on time. I needed to spend my evening looking for a Flash developer. I didn’t have time to dig out my car! So I went to Craigslist and found someone to do it for me. It cost me $20, and the job was done in less time and in a higher quality than I would have done myself. Most importantly, I was able to use that time to do higher priority things, like work on my aggressively scheduled project!

    You probably outsource some things without even realizing it. Dry cleaning and automobile repair are two good examples, but why stop there? I haven’t done my own laundry in over a year since I started dropping it off at the laundromat. You pay by the pound, and pick it up at the end of the day. They even fold it for you! There are grocery shopping services, cleaning services, lawn care services, research services, and many other services that you can take advantage of, all so you can focus on what you “don’t have time to do” now.

  • Theming an existing game. Walls is a fairly abstract game. It is based on Minimalist, after all. While I think the game play should be enough to compel people to play it, I can also accept that having something cute and fun-looking helps. People argue about the importance of high quality graphics to a game, and I’m one of those inclined to believe that they aren’t nearly as important as some people think they are, but I suppose a blunt way to put it is that players will generally like attractive games more than games that don’t appeal aesthetically.

    The good news is that the game itself was already finished, so I could literally swap out the art and have a different feel for the game. Check out these screenshots to see what I mean:

    Sea Friends Screenshot

  • Finding a good “team” I found one fantastic Flash developer named Brennan through FlashKit.com’s freelance forums, and he was able to port Walls to Flash in less than a day and did great work putting together Sea Friends. I found a great artist, Jessica Garibaldi, through a coworker at the day job. She did incredible work and was able to give me great looking art daily. Together, these two people helped me have a good experience with outsourcing and put a together high-quality game. If you would like to get in touch with either of them for your own work, feel free to ask me through my contact form.

What Went Wrong:

  • Finding a good “team”. In order to find the good, I had to go through a bit of bad. On the first day, I found one company to do the Flash port, and I thought everything was going to go smoothly. Hours later, they found that the project was more complex than they initially thought and told me that they couldn’t get it to me on time. I found another developer who was doing decent work, but he wasn’t able to get me the work at the times we agreed. It was almost two weeks into the project, and I still didn’t have the initial Flash port completed! And then, to top it all off, when I tried to bring the project to a close, the relationship fell through, so now I was two weeks in and with nothing to show for it! It was a frustrating experience, but rather than give up, I tried to take whatever benefits I could get out of it and move on.

    And the main lesson is that I need to communicate my intentions better.

    What’s embarrassing is that I already knew how important clear communications are when dealing with other workers, and yet I still sent out emails and messages that had the potential for misinterpretations. For one thing, Walls looks deceptively simple, and I could have done a better job of conveying how involved it actually is. I had a number of people tell me that they could do the Flash port for $20, and I believe the first company thought they could do the work in a matter of hours. When I finally found the developer who worked on the full project, I learned that I needed to be very very clear and specific. Just because you give the original C++ source code to people, it doesn’t necessarily mean they will read it and know what the game is meant to be. I took every feature, design decision, and mechanic, and explained in detail what was expected. Once I was able to do so, things seemed to go much more smoothly.

  • Slipping the schedule. Unfortunately, my first two weeks were more about learning lessons than about making a game. I had to take another two weeks to get all of the work done, meaning it took about a month from start to finish. I was still a bit new to the aggressive schedule myself, and I was learning how to set expectations with the people I pay to do work for me. When you’ve never been in a management or leadership position before, it can be a bit foreign to set expectations and act on those expectations. If someone promises you completed work in a day, and 24 hours later he/she make excuses about why he/she couldn’t fulfill that promise, it is perfectly fine to cancel the arrangement. I actually found myself trying to be accommodating to one of the first Flash developers’ schedule, only to have it bite me in the end later. It’s my project, so I should be the one setting the pace. It sounds obvious, but again, if you’ve never done it before, it’s a new skill you need to learn. I never had plans to hire anyone full-time, so I never paid attention to the business books about management, and I wish I had.
  • Feeling like I’m standing still. The problem with not personally knowing the technology involved is that you can’t easily dig in yourself. I did not know Actionscript or general Flash development, and I’m not familiar with PHP or MySQL. There were days I spent waiting on contractors, and I felt like I was idling in the meantime. I spent some of that time working with my colleague on potential design decisions for this and future projects, but there were a few times when I wanted to dig into the code and get my hands dirty, especially when I knew what little changes would be needed to improve the various releases I received. I had to remind myself that I’m paying these people to do these things for me.

    I still want to learn these technologies since I can’t always rely on someone else to do the work for me. I have a finite amount of cash, after all. Sometimes it is fine to let others do the work you asked them, but I still would prefer it if I can take what they have and tweak it. Waiting for them to send me back small changes I could have done myself should save time.

  • Using proprietary formats. Of course, if I can’t actually make the change even if I had the source, what good is it? With this project, I’m referring to the Flash part. The source was provided as an FLA file. I don’t use Windows or a Mac, and Adobe hasn’t released a way for me to open FLA files on my Linux-based system. It’s funny because there are Flex tools available for writing something new, but I have no way to take work someone else did and modify it. Or if there is, I couldn’t find it.

    And no, I really don’t like the idea of using a completely different OS just to use one tool that I don’t actually need to use. Again, there are tools available to create Flash files, but even separate from that, I could have used Java to create applets, or AJAX technologies, or any number of open technologies, and any of them would have been less of a hassle for me.

  • Marketing the game. Aside from ads in my colleague’s own games, the only way my game would spread was by the players challenging their friends. And it seemed that they were doing so, although the growth seemed to drop off after a bit. I wanted it to be a quiet initial release to ensure that there were no show-stopping bugs, but I’ve only recently been adding links to the game on the GBGames main website. As much as I know that marketing is important, I feel that I dropped the ball here. Press releases, submissions to major game websites, and paid advertising could probably do wonders.

What I Learned:

I learned that you can create complete games in a very short period of time. Now, it isn’t really all that new as far as revelations go. I participate in Ludum Dare, after all, but I usually do so for fun anyway. If I don’t have a working game at the end, it can be disappointing, but it isn’t the end of the world. When you’re making a game that you intend to base part of your income upon, it can be more daunting. It seems like it should take longer to make a “real” game. I found that the greatest breakthroughs came when I thought, “If I HAD to get this done, what would I need to do?”

I learned that when you are going full-steam ahead on a project, the rest of your life can start to deteriorate. Dishes don’t get washed. Paperwork doesn’t get filed. Bills don’t get paid right away. And this is fine! You’ll catch up with everything later. It sounds like a common enough occurrence. You just have to accept that being busy with important stuff means the less important stuff piles up and waits. You’ll get to it when you’re done with the project, or if something else becomes more important AND urgent.

I learned that no matter how much you may want to peacefully and mutually come to an understanding with someone, you can’t always see eye to eye. You can’t get everyone to like you, and you shouldn’t spend too much time trying. You have important work that needs to get done, and if someone isn’t helping you, it’s your job to find someone else. You can’t whine, and you can’t give up. It’s just another obstacle to get past.

I learned that outsourcing work is accessible and affordable to an indie. All told, I spent about $1,175 for Flash work and art creation, which is actually a little higher than it had to be, I’m sure. Even if Sea Friends never makes that money back for me, I think the cost was well worth the experience. I don’t expect to spend so much money on each future project, but if I need work that someone else to do faster and better than I could, I know I have the option to trade my money for their time.

Sea Friends was an exercise in outsourcing more than anything else, and I thought it worked out well overall. On that topic, I would highly suggest reading Outsourcing Art: Ten Steps to Success by Jon Jones for great advice for working with contractors.

I had a lot of fun working on this project, and it was great to see it all come together. And seeing real people in the rankings? It’s very satisfying.

Please check out the game at http://apps.facebook.com/seafriends, and let me know what you think!

Categories
Game Development Personal Development

Thousander Club Update: February 16th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 98.25 (current year) = 674.25 / 1000
Game Ideas: 775 (previous three years) + 3 (current year) = 778 / 1000

I decided to take it easy this past week. I’ve caught up on bills and cleaning, but I still managed to get a little bit of work in on Sea Friends. I’m learning PHP and MySQL, which should help me do more hands-on development for my current Facebook app as well as prepare me for future apps. Sea Friends seems to be slowly but surely gaining a following, and I’d like to see what I can do to give people more incentives to tell their friends about it.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: February 9th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 93.25 (current year) = 669.25 / 1000
Game Ideas: 775 (previous three years) + 3 (current year) = 778 / 1000

I have been a bit busy these past couple of weeks, and as of this past Saturday, I can finally show what I’ve been up to. If you have a Facebook account, please take a look at my latest release, Sea Friends! I’ve taken Walls, and I’ve added a theme, a ranking system, and a way to protect coral reefs while playing.

Now that the game is released, I expect to have a good post-mortem up shortly. I’ve learned a lot in the past month. And the best part is that this year I’ve already released two games! I wanted to be more productive when it came to game development, and I’m finally seeing what that would look like in my life.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: January 26th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 53.25 (current year) = 629.25 / 1000
Game Ideas: 775 (previous three years) + 3 (current year) = 778 / 1000

I had another fairly productive week, but I had to take massive action at the end to have something to show for it. If you check the Walls page, you will see the latest version of the game in Flash format, as well as downloads for Windows and GNU/Linux with the updates.

This past week I learned a lot about the perils of outsourcing, but I also learned that even when your project looks hopeless, you can still do things to get the project on track again.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: January 19th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 38.25 (current year) = 614.25 / 1000
Game Ideas: 775 (previous three years) + 0 (current year) = 775 / 1000

I think this past week has been my most productive week! Since I’ve released Walls for Windows and GNU/Linux, I’ve been interested in having a web version of the game made available. I’ve been working with someone else on integrating it with a website, and it’s amazing the progress that has been made so far! What’s more, I’ve also been outsourcing significant parts of the work, so even more work is getting accomplished than the hours above would make it seem. There’s only so much time in a day that I can make use of, so leveraging the skills of others can help advance the progress of a project much more than going it alone. After another week, I expect to be finished with this project, and I plan on writing up a post-mortem about the experience.

I will say that out of all the business books I’ve read, I’ve always skipped past topics involving management since I never planned on hiring employees. Now I find that I need to brush up on the skill.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: January 12th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 18.25 (current year) = 594.25 / 1000
Game Ideas: 775 (previous three years) + 0 (current year) = 775 / 1000

I spent this past weekend working on my submission for MiniLD #6. The rules were pretty cool: each participant will be making a level for a larger game. There will be an overriding theme for everyone, and each person must claim a unique secondary theme. I wasn’t sure how well the combined game would work, but the primary theme was Monochrome, which I thought was a brilliant way to make all the individual levels seem like part of an integrated whole. For my secondary theme, I picked Guardian.

You can see my submission at the Ludum Dare website.

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Thousander Club Update: January 5th

For this week’s Thousander Club update:

Game Hours: 576 (previous three years) + 6 (current year) = 582 / 1000
Game Ideas: 775 (previous three years) + 0 (current year) = 775 / 1000

The first week of 2009 was a short one, and I’m off to a slow start. I spent the majority of my time working on using NSIS to create a Windows installer for Walls, which is otherwise a finished game. NSIS turns out to be a lot less straightforward than I expected. While I understand scripting an installer, it would be nice to have it automatically create the uninstaller that will completely remove all trace of the game regardless of where the player installs it. The installer would know more about what its doing than I would, but I’m expected to write a full-proof script? People keep suggesting Inno Setup, but since my build environment is my Debian machine, I’d like to keep my build process as simple as running a single command and waiting for the GNU/Linux and Win32 builds to get created automatically. I want no manual steps, and I don’t want to require a Windows machine to be involved in the process.

I know I’m just learning what NSIS is capable of, but I’m still surprised there isn’t an Easy Script option that says, “Anything you install, this uninstaller will remove, no matter where the player installs it.” I’ve made significant progress, and just a bit more time will see a finished installer ready. Still, with all this hassle, I can see why web apps are so appealing. Installing is just uploading to my own server. B-)

[tags]game, game design, productivity, personal development, video game development, indie[/tags]

Categories
Game Development Personal Development

Join The Thousander Club in 2009

In the last three years, I’ve been participating in The Thousander Club. Scott Hsu-Storaker started in back in 2006 after reading my blog post called Action vs Waiting, Practice vs Talent, which focused in part on the idea that to become an expert on a topic, you need to put in a lot of practice. Expert chess players have put in thousands of hours over many years to hone their skills. They don’t necessarily have natural talent. They couldn’t have been born knowing what to do. They simply focused their time and efforts on getting better. They practice. A lot.

From my old post:

10,000 hours over the course of 10 years might make you a master, and it sounds daunting. Well, yeah. It is. That’s a lot of dedicated hours. But 1,000 hours is doable within a year if you work full time, and you can be an experienced expert. Already have something taking up your full time? 100 hours can be done on the side, and you can still be somewhat of an expert. 10 hours could be a dedicated weekend or spread over a few of them, and you’ll definitely learn enough to be dangerous. Even dedicating an hour to a task will give you practice with the basics.

Scott is a 3D artist, and so he records how many models he creates. His goal is 1,000 3D models. I liked the idea of the club so much that I participated, and I’ve been keeping track of the number of hours of game development I’ve put in. I’ve also been keeping track of the number of game ideas I come up with.

Over three years, I’ve managed 576 hours of game development and 773 775 game ideas. It’s far short of the 1,000/year goal for each, but it’s progress. My first year I did 262 hours, and the second year I did only 146 hours. Last year I did 166 hours, which is a slight improvement, but I obviously still haven’t done as well as the first year. Using these numbers, I can measure myself against myself. I’d like to see 1,000 hours hit this year, but it is going to take a lot more dedication and focus than I’ve been giving in the past. Through 576 hours of game development over the past few years, I’ve learned a lot, and I look forward to the experience I will gain this coming year.

1,000 hours in a year comes out to about 3 hours per day. That’s doable if you are focused. You could even skip a day or two and double up on the weekends. Will you join the Thousander Club this year?

Categories
Game Design Game Development Games

Is Punishing Game Play More Fun?

I learned of a fascinating video put together by Shamus Young called Reset Button: Most Innovative Game of 2008.

Young talks about how the game industry evolved without leaving a way for new gamers to easily join in the fun. While there is no inherent problem with having complex games, the learning curve got very steep for new people. If you’ve been playing games forever, you’re used to punitive game mechanics and adapted to difficult control schemes. If you haven’t, then an Xbox 360 controller might as well be the controls of a 747.

Young claims that the latest Prince of Persia (which I haven’t played) is exactly what new gamers need: a game that’s forgiving. Corvus Elrod wrote about the forgiving nature of casual games, and since I believe that any game can be made casual by making it more accessible, it seems we’re all in agreement.

But Young asks a question: does making a game more punitive make victory more fun? That is, if a game is too forgiving, does it detract from the fun? Could Prince of Persia have been more fun if it forced you to replay entire levels whenever you failed, the way most games do? Is there more satisfaction gained from success because you know you avoided punishment?

I’ve been playing Advance Wars: Dual Strike a lot recently. Completing missions has been pretty easy, in the sense that I rarely failed to do so. I was still having fun, but part of me wondered if I was going to get bored before I finished the game. Then I came across a mission that was fought on two fronts, and not only did you have to defeat all of the enemy’s forces, but now you had to do so in 18 game days. I played that mission multiple times, trying different strategies, until I finally won, and barely. There was something much more satisfying about overcoming a tough challenge in this mission than in bumbling through the previous missions.

I suppose part of the satisfaction came from a sense of improvement. In the previous missions, I might have thought I was doing poorly, but then I somehow pulled off a victory. When I lost a mission, however, I had to replay it, and I could see how playing differently changed the outcome. I learned what did and didn’t work, and learning is fun. In this sense, the fact that failure required replaying a mission seems to have enhanced the feeling of fun when I succeeded.

On the other hand, what if Dual Strike forced me to replay the entire game after losing a mission? It would be analogous to games like Super Mario Bros, in which you had a limited number of lives or continues. I know I tolerated such games when I had plenty of time to play (and replay!), but did I have more fun with those games than I did with games that had unlimited continues? It’s definitely not fun to come so close to completing a game only to have the final boss defeat me, losing all progress, and requiring a restart. Still, does knowing that such a punishment awaits me make victory all the more sweet?

Intuitively, I want to argue that it shouldn’t. I can point to plenty of casual games that are enjoyable and fun, games in which the most a failure can do is set you back a few minutes of your time. At the same time, however, there is only so much Tetris and Bejeweled I can stand before I find myself wanting something more involving. Maybe there is something to this idea that punitive game play is more fun?

I have Etrian Odyssey 2, a Nintendo DS game in the same category as Wizardry. It’s hardcore and incredibly hard, and I find it immensely satisfying. No, it is not a game to recommend for beginners and newbies, and it’s not meant to be. If your party is killed while exploring the maze, you revert back to your last save. If you didn’t manually save often enough, you’ll find yourself repeating entire segments of the game. Prince of Persia would simply put you right back where you failed so you could immediately try again, but does it lose anything in the process? Is Prince of Persia simply Grimm Fandango, an enjoyable story interspersed with puzzles that you just want to get through to get to the next part of the story?

If failure didn’t result in negative consequences, or if the negative consequences aren’t horrible, then there isn’t much incentive for the player to avoid failure. Why learn how to play better when I can just fumble my way through to victory? I feel that a game without negative consequences for failures on the player’s part is going to be pretty mindless or tedious. I’ve only seen game play videos of Prince of Persia, but it looks to me like the Annoying Jumping Puzzle simply got more elaborate with faster iterations between attempts. Am I wrong?

I think Young is right, though. The video game industry needs forgiving games to introduce itself to new gamers. I wonder if such games will be stepping stones to more complex games, or if they will be seen as valuable and fun on their own. Will there always be a barrier between rich, involving games and casual game players? Do the players need to be slowly introduced to the games, or do the games need to reach out to the players?

Categories
Game Development Linux Game Development Marketing/Business

Why You Should Support Mac OS X and GNU/Linux

If you’ve been following my blog for some time, you know that I always encouraged development for multiple platforms and not just Windows. The common argument against doing so is that you increase your development costs and effort for a very small percentage of increased customers. Where’s the benefit?

Wolfire explains why you should support Mac and GNU/Linux platforms. When you’re an indie developer, especially one starting out, you’re a small fish in a big pond. You don’t have a huge marketing budget. You don’t have a massive sales force to help push you through retail. PC Gamer, IGN, and any of the large game review websites aren’t likely to cover your game. Having Mac and GNU/Linux versions of your game makes these obstacles less important, increases your visibility, and improves sales.

So what happens when your game is available for the supposedly negligible extra few percentage of people who play games? Websites such as The Linux Game Tome, LinuxGames.com, InsideMacGames.com, and even the official Apple Games site will cover your game and your company. Then sites such as SlashDot will cover it. That’s a lot of potential customers from a dedicated niche, people you couldn’t reach by releasing yet another Windows game!

Troy Hepfner, of My Game Company, said that releasing Dirk Dashing for GNU/Linux was a very good idea:

And I am so glad we tried a Linux version of one of our games – this has turned out to be a huge shot in the arm for our business!

33% of initial sales came from GNU/Linux, and while the total percentage of sales from GNU/Linux users has gone down relative to Windows and Mac users since then, it’s not an insignificant amount of income. Hepfner has said that he knows a number of his Windows sales came directly from people who only heard about his game from Linux-based gaming news. Again, supporting these other platforms can help an indie to stand out from a crowded Windows-only marketplace.

Wolfire says that supporting these supposedly negligible platforms can help you take advantage of vocal minorities and surprisingly dedicated fans to spread the word about your game.

To conclude, if you’re not supporting Linux and Mac OS X from a philosophical standpoint or for the fans, at least do it for the money. If you don’t support non-Windows platforms, you’re leaving a lot of cash on the table. I don’t know about you, but I’m not in a position to just say f— it to a large community of people who want to support us.

Bottom line: If you agree with the larger game companies and think that there is no benefit to supporting multiple platforms, you’re wrong. You are not running a large game company that can get millions of dollars in sales in the first month of release while ignoring everyone but the hardcore gamers. Having cross-platform ports available provide you with plenty of marketing opportunities which can increase sales greatly. With hundreds of games being released each year, you need to do something remarkable to make your game stand out. It’s still quite remarkable to support Mac and GNU/Linux users, so take advantage of it.

[tags] marketing, indie, cross platform development, sales [/tags]