Tag: Rebuild

  • Word Up Dog: Flash optimization for mobile platforms

    Word Up Dog Splash Screen
    Word Up Dog: Yo Diggety.

    I just put my new game Word Up Dog up for bidding on FlashGameLicense. It’s very different from my first game Rebuild (I needed a break from zombies!). In Word Up Dog, you play a dog digging underground for letters to anagram, aided by cute animals who speak in 90’s hiphop lingo. It has a simple interface and can be played in short sessions, so it’s a good fit for mobile platforms like the iPhone, iPad and Android phones.

    When uploading a game to FlashGameLicense, one of the options is a “Mobile-ready” checkbox. Here’s what I did to make Word Up Dog mobile ready…

    I have a Nexus One Android phone, which unlike the iPhone can run Flash in its browser. So as a first test I pointed it at the totally unoptimized game swf. I was pleased to see the game load quickly and error-free, and the graphics looked good on the bright little screen. The SimpleButtons were easy to hit and the mouse over state even showed briefly. Movement using both the trackball (which fires up/right/down/left KeyboardEvents) and touch worked correctly. But the framerate was crappy, and touching even a blank area on the screen brought the game to a crawl.

    First, I looked at how I was rendering the map, a 800×550 sprite containing ~150 vector shape tiles. The tiles had cacheAsBitmap=true which had a noticeable effect on my pc, but it was hard to tell if it was doing anything on Android. Instead I manually drew each of the tiles to a Bitmap, which improved the framerate significantly. Drawing all the tiles onto one huge 800×550 bitmap was even better, but the way my tiles overlap made updating (by blitting) difficult.

    I improved the movement speed by jumping the screen from square to square instead of smoothly scrolling it. I downgraded the target fps from 30 to 24, and simplified the gui animations so that instead of fading in, notice text pops into existance. I replaced contrast, emboss and drop shadow filters with graphical approximations. I cached the dog’s shape tween animations as Bitmaps using TouchMyPixel’s AnimationCache. Each of these things had a small but helpful effect on the framerate.

    Now to tackle the touch issue. Holding down on any part of the screen lowered the framerate by 10fps, even after stripping out all MouseEvents. I couldn’t recreate it on pc (even via air at 250fps) or see evidence of it in a profiler. My guess is that Flash just isn’t very efficient at dealing with touch screens. What finally improved things was setting mouseEnabled=false and/or mouseChildren=false to everything in the game that isn’t meant to be clicked. This seems to be especially important for TextFields.

    Flash Preload Profiler
    Tracking memory with the Flash Preload Profiler

    Finally, memory. The free FlashPreloadProfiler told me I was using 50mb, and showed the number of instances of each class and time in functions. Adobe’s Flash Builder Pro profiler gave me additional info including function stacks and the momeory used by each class.

    I got my memory down to 20mb by instantiating some map-related things when they came into view rather than at game start. I verified that I didn’t have any memory leaks such as objects or handlers left around after exiting to menu and starting a new game.

    To recap my optimizations:

    • Draw shapes to Bitmaps instead of relying on cacheAsBitmap
    • Simplify gui animations
    • Cache character animations as Bitmaps
    • Remove filters
    • Set mouseEnabled=false and/or mouseChildren=false on non-clickables
    • Other best practices I follow include cutting down on EnterFrame events, avoiding masks, and using strongly-typed variables.

    I can now run Word Up Dog on my phone through Chrome at 20-24 fps! Not perfect and it will be slower on older phones, but I’m calling it a success. In my next post I’ll talk about packaging the game up using Air so I can sell it in the Android and iPhone app stores.

  • Rebuild: selling a Flash game on FlashGameLicense

    FlashGameLicense is as far as I know the only Flash broker out there and is used by every Flash game sponsor, so it’s amazing that despite their monopoly they’re working so hard to improve it all the time. When I uploaded Rebuild I got great feedback from the FGL admins who play every game before it’s allowed up for bidding. They were really enthusiastic and helped personally through the bidding process, so I was happy to pay their 10% commission – they really do deserve it.

    FlashGameLicense sale data
    Most games on FGL sell for under $1000

    Of course, FGL doesn’t come through for everyone. The average winning bid for primary sponsorship is under $1000, usually for things like dressup or seasonal games that sponsors can easily judge the value of because they’ve seen them a thousand times before. Colin tried to find a sponsor for Fantastic Contraption through FGL, but the best he got was an offer of $300 for full ownership of the source (try 1,000 times that, asshole). This was three years ago and FGL has improved their content discovery tools, but it’s still hard for sponsors to know if a confusing, wordy game like Rebuild is going to be popular.

    I’m not at liberty to give you exact numbers (visit Andy Moore’s blog for that) but here’s how Rebuild’s bidding went on FGL. It started out with a bang, a higher-than-average-sale bid from a fellow developer looking to promote his Zombie-themed MMO by featuring it on other games’ loading screens. In my opinion a pretty cool way to simultaneously advertise and support other developers. Three other sponsors I’d never heard of joined in and by the end of the second day I’d made my minimum wage.

    Jay Is Games Review
    Launch day review on Jay is Games!

    Someone put a bid in for a sitelock, which is a secondary sale made after primary sponsorship. You create a version of your game locked to one domain, stripping out ads and primary sponsor logos and implementing the secondary sponsor’s high scores api. It was early, but they were letting me know they were interested no matter who won the primary bid. JayIsGames contacted me to say they wanted to review the game when it came out. This is my go-to site for casual games so I was pretty stoked! I got excited about how fast things were happening and pulled in some contacts to invite the other major sponsors to take a look.

    Then I heard nothing – no bids – for five days.

    At this point there were two highest bids for the same amount with different contract terms. One of them included ads and extra work, so I contacted that bidder and told them that I was favoring the other offer. Bidding sprang to life again! I still hadn’t seen hide nor hair of any big sponsors, but the guys who were bidding seemed to personally like my game and were willing to go above budget for it.

    From then on, every time bidding stalled I messaged the runner-up again to let them know that, although I really liked them and their bid was great, the other offer was a little better. I gave a specific dollar amount they’d have to put in to beat it. I think I would have missed out on a lot of bids if I hadn’t done this. We were well into the holidays at this point but I got bids even on Christmas day (a marvelous present!).

    Two Towers Games logo
    Zombie-themed splash screen for Rebuild

    Until then the offers had been for primary licenses with additional work requirements (apis, new features, etc which were increasing in complexity as the bids went up). Two Towers Games asked about switching to exclusive, which meant I wouldn’t be able to sell sitelock versions to other sponsors. Implementing sitelock apis seemed like effort I could be spending on my next game instead, so I agreed. Their winning bid went in 20 days after bidding started and sat for another week before I accepted it. Again, I can’t tell you how much it sold for, but I will say it brought me into the FGL top-sellers list.

    My sponsor Two Towers was new on the scene, and the exclusive license gave them more time and control over Rebuild’s release and traffic. I was a little dismayed to find I’d agreed to implement ads (this is standard in most licenses) but we agreed there’d be none in the Kongregate version which was what I really cared about. It took about a week to make all the necessary changes for launch.

    Ads in Spanish
    The only CPMStar ad in Central America

    Rebuild spent the first month live only on twotowersgames.com, then I uploaded versions to Kongregate and Newgrounds and it began to make its rounds on the internet. Two Towers devised a cunning system of dynamically showing content based on a call to their servers, which lets them control on the fly which sites see ads or bonus content. I was also able to sell a few sitelocks with their approval, so long as their branding stayed on.

    For reasons that I don’t fully understand, Rebuild shot to the top of the Kong rankings, won the weekly and monthly contests and after one month is still the #3 highest ranked game with 1.5M plays.

    I’ve gotten hundreds of emails and pms with suggestions for the sequel which I’m eager to get started on, but first I need to finish the game I started during bidding: Word Up Dog. I’ll try to post updates here on the progress of both games.

  • Rebuild: Tech-nomadic game development

    Rebuild game title screen
    I described it as Zombie Sim City, except no you don

    When I started Rebuild, I wanted something I could write, sell, and be done with. I wasn’t planning another Fantastic Contraption. I didn’t want to deal with servers and payment methods and message boards. I was looking for a sponsor, following the model my friend Andy Moore used to great success selling his game Steambirds to the highest bidder.

    I’d been rolling around the game idea for about a year. I’d originally conceived it as a multiplayer Facebook game where you could see your friends on the same map and trade resources with them. I was working for Three Rings who were doing some neat Facebook games and I had hope that the Facebook audience were maturing as gamers and would soon demand more sophisticated games. Or at least real games which involve some sort of decision making and aren’t just glorified slot machines.

    As you may have guessed, I became soured to Facebook games’ simplistic play and shady propagation methods. Also, although I think multiplayer is where the future (and money) is headed, it poses extra problems like server communication, synchronization and security. Too many hurdles for my first independent game! So I thrashed out a single player version over two days which was basically the entire game right there, finished. All it needed was a little polish. Or maybe six months of polish.

    I think it took me about 3 months full time to finish it, but spread across six months in which we travelled through Europe and Central America. Some places I got almost no work done (In Czech Republic we were too busy with friends, pilsner and pork knuckles). Our month in Malta was super productive since it was hot as frack and there was nothing to do. We always planned ahead to make sure we’d have a net connection in every country, and although some were more reliable than others we had few major problems. We met up with other indie developers, and I always had enthusiastic playtesting and idiot checks from my husband Colin, who was working on his own game at the time.

    Rebuild version 0.01
    Version 0.01 after a couple days of work

    I did the design, programming and art for Rebuild; everything but the music which I licensed through Shockwave Sound. I hummed and hawed about hiring an artist to help out but I was nervous of letting a stranger in to my project and had no idea how well the game was going to do. Instead I learned a lot about vectors and enjoyed being able to switch to something creative when I needed it. I learned I can still produce art and story text after two glasses of wine, even though it only takes two sips to totally wreck my programming skills. So the art took me longer than it should have, but Rebuild was ready for final testing by November.

    I’d posted earlier versions to Facebook and sent them to friends and relatives, but got little feedback except from a few diehard fans (including Colin). I sat down with a couple people and watched them play, but I find the process nerve-wracking and I always end up explaining things rather than quietly observing, because I’m afraid that they’ll get confused and frustrated.

    FlashGameLicense has a system called First Impressions where you can get strangers to play your game and give feedback for $1 a pop. Unbiased strangers playing my game! I ordered 10 and sat refreshing the page until my first review came in:

    User: ExamineDeepish
    Played for: 7 minutes
    Ease of Use: 3/10 – the game really make little sense
    Fun: 1/10 – waste of time
    Graphics: 5/10 – nothing to shout about
    Sound: 5/10 – the sound is cool
    Polish: 3/10 – the game needs some work
    Parting Thoughts: The games should be more interactive of a real game. People don’t want to read so much for a game they just want to play and get on with the fun.

    Rebuild 1.0
    After six more months of part time work.Too many words??

    A fun rating of one?? People don’t want to read so much?? There was no way I was going to make minimum wage (my humble goal) with this game. I knew it was a good game, Colin knew it was a good game, but if your average Flash player downvotes anything with words in it, no sponsor was going to touch it. The second review gave it an even lower score, so I slunk to bed dejected.

    The next afternoon I grit my teeth and checked the reviews again, and was delighted to find some of the new reviews praised the game, giving it 9s and 10s and speaking in full punctuated sentences. They managed to drag the overall rating up to a 7/10 with Ease of Use being the worst category. Two reviewers got lost and had no idea how to play, so I spent another day tweaking the tutorial before I made the game visible to other FGL users then started bidding in early December.

    Next time I’ll talk about FlashGameLicense and the bidding process.

  • The Fate of The Fate of the World

    Insofar as a game can be about something The Fate of the World is about ruling the world to eliminate global warming. The problem with games being about something is the general incompatibility between the real world and video games. Lets knock up a short list of stuff that’s important to video games:

    • A clear goal (go right and rescue the princess)
    • A clear set of options (run back and forth, jump)
    • Predictable results from the chosen options (what goes up, must come down)
    • The ability to try the same challenge or a similar challenge over and over allowing you to learn.

    Note that none of these are really present in world governance. Fate of the World is largely the same way. It simulates pretty well the hopeless “I have no idea what’s going on but I guess I choose… more taxes?” decision making process of government. The problem with stripping away all the things in the list is that it leaves you with an environment that is not conducive to learning. Video games are about learning so Fate of the World is not a great video game. Which is too bad. You’d think you were in for a fun afternoon with a  “take control of the world and save it from climate change and petty nationalistic bickering by whatever means you can” game.

    But the problems are all listed on that list up there. You probably haven’t played the game and there’s no demo so I’ll have to do some work explaining it to you.

    There is a world made up of 12 regions. You play cards in each region to set policy which then changes the region, your selection of cards, and the world.

    So far so good. This also describes (minus the weird playingcards metaphor) great games like SimCity, Cliffski’s games Kudos and Democracy, and Sarah’s game Rebuild.

    You start out playing all of these games the same. You start playing the metaphor (People are being killed by zombies? I should find more soldiers I guess) and as you progress you start playing the rules of the game instead (well I need 6 soldiers and I know that on average 2 zombies a turn show up at the walls so I have 3 turns to find more soldiers). You get better at the game by reverse engineering it. That’s why they’re fun because you are learning the rules behind the metaphor and thus get better at the game.

    To be able to do this you need a couple to things from the game. They are listed up there at the top. Unfortunately Fate of the World has some serious problems on the predictability side of things.

    Lets take an example. There is a card called “Commit to Renewables”. It “influences” a region towards renewable energy. When I play the card it will make graphs move around. Graphs like the one on the right. There are a lot of graphs because there are a lot of underlying systems. The basics of “Commit to Renewables” are pretty simple. It makes the things in the “Renewables” graph like solar and tidal energy go up. But in every country they go up by different amounts. Do I just have to memorise the differences between countries? Should I be scouring the web for material on South African geothermal output? What’s worse is I that can’t figure out how this graph interacts with the many other graphs. Renewables feed into the harmful emissions system and I’m pretty sure I know how that interaction works. They are, however, not independent of the other energy systems so they also feeds into the regional coal, oil, gas and nuclear systems. Those systems each feed into international versions of those systems which in turn flow back into residential, commercial, and industrial systems as well as the happiness system for your region. That system feeds into the happiness system of the world which feeds back into the residential, commercial and industrial systems, as well as the regional outlook, contentment, militancy, and stability systems. Which feed into yet more systems like war and poverty. I have played for two days and am still identifying systems that I didn’t even know existed.

    So we’re in real kill-all-the-butterflies territory here. This throws out the whole “comprehensible actions that lead to comprehensible consequences” portion of our list.

    Even this could potentially be made to work if they got the last bullet point right: “The ability to try the same challenge or a similar challenge over and over allowing you to learn”. And they actually got closer on this one than the previous two. There is only one scenario to play (until you beat it, unlocking the next one). This scenario can not be beaten creatively, or in a myriad of ways. There are a narrow few solutions to each level. This makes The Fate of the World a traditional puzzle game instead of an open Civilizationy strategy game. Your goal is to find the right path through the disastrous future. The one shining road of hope. This is what makes the game somewhat playable. This Groundhog Day like approach to saving the world.

    Unfortunately there is a magic game design number they are breaking. I don’t know what the value of this number is but I know its units. It is (time invested)*(percent chance of failure). It is the price of failure. And it is too god damned high. I am willing to invest an hour to replay the same level as long as each play through provides big insights “oh, people who are unhappy go to war”. If I get enough insights per minute then It’s worth playing through again. As I figure out the big systems, however, I’m getting fewer and fewer insights per minute because the little interactions are harder and harder to untangle. That’s why most games are about learning just a few systems and mabey layering in more systems over time. It keeps us learning at a reasonable rate.

    They could have fixed this game by ripping out three quarters of the systems and focusing on the few that express the soul of the problem. Or they could have given us tiny little problems to solve in this labyrinth of rules (probably not as fun). As it is I find the game frustrating and opaque although if you’re looking for a massive knot to untangle while blindfolded you couldn’t do better.

    One last note. Bizarrely, this game is based on a previous flash game by the same developers that has the opposite problems! It lays all the rules out at your feet leaving you nothing to learn. Try it out here. Don’t assume it captures the feel of Fate of the World, it is in many ways it’s shadowy opposite.

  • Origin Story

    Hello World. Welcome to a little corner of the web about Games, travel, and Games. We are Colin and Sarah Northway. Two independent video game authors who fell hopelessly in love and now travel the world plying our trade.

    A few years ago I (Colin) wrote a game called Fantastic Contraption while we were living in San Francisco. At the time Sarah was working at a great game company called Three Rings. We love San Francisco and three rings but we also love traveling so when Contraption made us some money we decided to cut loose. We sold everything but our laptops, quit our jobs, and started traveling and writing games full-time.

    We’ve made friends in Turkey, Czech Republic, Italy, Malta, Scotland, France, Honduras, and Costa Rica. We try to meet up with local independent game authors wherever we are. So far it’s been an amazing experience. Sarah has managed to write and release a game called Rebuild while on the road. It went live about a month ago to some serious acclaim. I spent most of the last year working on a game called Clutter which, unfortunately, I put on hold about two months ago near the end of our trip in Honduras. It just wasn’t working out.

    We are both working on new games right now and the plan is to use this space as a kind of public sounding-board. I find the process of writing about ideas tends to bring out other ideas and give me a more concrete understanding of the topic at hand. I also hope there might be some amount of discussion on the sight. But it remains to be seen if anyone will ever read it!

    At any rate. Welcome. I hope you find something interesting.