One of the things I wanted to do to help market my Facebook game Sea Friends is get it in the Facebook Application Directory. This way, if people are searching for apps, they can add it. Until Facebook approves it for the directory, the only way people can add it is if people receive a challenge or if they go to the app’s URL directly.
When the app was submitted for inclusion in the directory, Facebook rejected it because it violated section 8.4 of the Platform Policy, which involves incentives for using or adding Application Integration Points. Basically, a Facebook application should not provide points, virtual or real currency, or any improved rankings just for sending out invites or sending out notifications.
Ok, that sounds pretty straightforward, but a huge part of Sea Friends is violating this part of the policy. The game allows you to protect real coral reefs, and while playing the game helps to do just that, sending out challenges to your friends also does so. That is, each time you challenge a friend, you protect 5 more square inches of coral reef.
Now, wait a minute. There are TONS of apps in the Facebook Application Directory that are based on giving things to people and earning points or unlocking items in exchange, aren’t there? Isn’t Sea Friends doing essentially the same thing?
It turns out that there is a subtle difference, and this question has come up before. These other apps don’t violate the policy because the points or unlocked items aren’t awarded until the recipient accepts the invite or virtual item. So to fix this issue for Sea Friends, I would need to make sure that the extra square inches of protected coral reef only get added after the recipient of the challenge actually accepts the challenge.
And there you have it. To violate the Platform Policy, your app needs to provide an incentive to send out invites. The proper way to do it, officially sanctioned by Facebook, is to only grant the benefit after the invitation has been accepted.
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:
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.
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?
Wolfire, indie creators of dynamic and bloody fighting game Lugaru (which involves ninja rabbits and wolves), have announced weekly alphas of the sequel called Overgrowth.
To help celebrate and generate awareness for Overgrowth, they are giving away free copies of Lugaru.
All you have to do to have your free copy emailed to you on Christmas Eve is join this Facebook event and join the Overgrowth Facebook Page. Don’t open it until Christmas Day! Make sure you’re a fan of the Overgrowth Facebook Page, and be sure to invite your friends to this event!
If you’re not familiar with Lugaru, here’s a video created to explain the giveaway and show some footage:
Lugaru is available for Windows, Mac, and GNU/Linux. Overgrowth will also be cross-platform. I enjoyed playing through the first game. It reminded me of a much faster paced One Must Fall: Battlegrounds, and I enjoyed the dynamic fighting system. There’s something satisfying about sweeping your opponent’s leg and then kicking them before they can land, especially when you can kick them into another opponent or two. I think my personal favorite move is the knife throw, especially when it stops your opponent from running off to tell the others that you’re around. As for Overgrowth, I hope to get a chance to look at the alpha releases soon.
In the meantime, if you’re as interested in behind-the-scenes game development as I am, then you’ll find the Wolfire Blog fascinating. The developers have been working on improving the graphic capabilities of the sequel’s engine, and I imagine the tool support for modders is going to be top-notch.
I’ll leave the old version up in case anyone is worried about cheating, but I managed to fix all of the little bugs that were preventing it from being a real game. I’ll have source and a Win32 version up soonish.
I finally got the game to include buildings and roads. As you can see, the cars don’t know about them yet, and in fact they drive over them. Now that the game is aware of the concept of intersections and buildings, I’ll be able to randomly place the Bank and require the cars to only make turns at intersections.
Since dinner almost killed me, I decided to have a salad. Romaine lettuce, walnuts, and raisins, covered in lemon juice. Pita chips and tapenade on the side. And of course Orange Juice, still a proud sponsor of GBGames.
I took the time to jot down some notes about how I want to proceed. How will the getaway car find its way to the banks, rob them, and get away? I think if I force the cars to only make turning decisions at intersections, it will not only make things easier on me, but I also think it can look pretty good. I also need to update the bank sprite.
With less than 6 hours left, I need to get a working game as fast as I can.
It’s hard to see from this partial screenshot, but the getaway car has reversed direction after hitting the road block. The road blocks are temporary and disappear after some time, and you place them by pressing the space bar.
Only six hours left to go. I still want the getaway car to rob banks, make turning decisions to avoid road blocks and the player’s car, and, you know, get away. Oh, and I need to put roads back into the game. B-)
Soon after I finally managed to make the squad car controllable, my friend came over with another friend and made steaks and salad.
As you can see, there is some Sapporo Reserve the wash it down with.
But there was also a lot of other beer. I woke up feeling dehydrated and found the following in my kitchen:
I had six bottles of Shiner plus that can of Sapporo. Actually, considering how I felt the night before, I’m surprised I woke up as early as I did and felt more or less fine. I was obviously not feeling 100%, but it’s not like I had a pounding headache.
So this morning, after showering, I had the best chaser of all: The Award-Winning Peanut Butter and Pickle Sandwich!
Two bananas, The Sandwich, and Orange Juice, the official drink of GBGames.