Category: Development

  • BombFace & Playing/Writing Video Games

    Hey, I’m Alan, Colin’s brother. I just finished a game I was working on and I wanted to share some thoughts I had while working on it. Colin and Sarah were nice enough to let me post on their blog (hey it’s called Northway Games, and I am a card carrying Northway).

    I just spent the last nine months developing my first game. It’s a physics puzzler that, simply put, requires you to set bombs in order to blow up objects in a crafty manner. I call it BombFace.

    You could describe it as Fantastic Contraption, but with bombs instead of contraptions. I just submitted it to FlashGameLicense.com (the website where you can auction off flash games), and I’ve never felt so alive!

    I also work a regular 8 to 5 Software Engineering job. Once the clock strikes five o’clock I swap my work laptop for my personal laptop and continue to program. I’m like Mr Rogers swapping shoes, but with laptops.

    What I wanted to talk about, and what I’m curious about is: does anyone else feel like writing a video game is the ultimate form of playing a video game?

    What I mean is, take a puzzle game like Fantastic Contraption (or BombFace). You have a design mode in which you create contraptions (or place bombs in the case of BombFace), and then enter the run mode and watch the results, hoping that your design does what you’re designed it to do.

    Well that’s exactly what I’ve been doing in writing this game for the last nine months, except instead of creating contraptions I’ve been writing code. The concept of entering a run mode to see what how your design behaves is exactly the same. It’s the same process. Design, test.

    What’s funny is I really didn’t set out to make a Fantastic Contraption-esque game. I wanted to make a side scroller. I think I might have stumbled into it because I’m a programmer. Playing Fantastic Contraption, and BombFace are enjoyable for the same reasons that programming is fun. Thinking about a solution, and incrementally improving your solution till you complete your goal.

    This can also be applied to other games to a varying degree. For instance, when you die playing any FPS you’ll probably try to think of a way of getting past that part. Maybe it’s taking it a bit slower and sniping the guy behind the 50 cal. before anyone notices you. Maybe it’s throwing a couple grenades into the room first and closing the door. You’re thinking up solutions and then implementing them. There isn’t a strict separation between design mode and run mode, but the process is still there.

    What makes writing a video game better than playing a video game you ask? Many things I would contend. Freedom, first off. Freedom is one of the reasons I believe people like Fantastic Contraption so much. There are a lot of different ways to solve a level. When writing a video game, I wouldn’t say you can do anything, but there are an infiinite number of options with huge variation. A much greater freedom than even Fantastic Contraption.

    Also, there’s the reward for finishing. There was no better feeling in my youth than beating Super Mario World for the first time. I invested so much time and energy into it, and for that reason it paid off. Well imagine spending 9 months on a game, and putting your thoughts, your likes, and your preferences into it. In some ways it represents you. Then at the end of the 9 months imagine putting it out into the world for people to judge, rate, and pay money for. You could become so successful that you could become nomadic indie game developers and literally travel around the world for years. Seriously, that could happen! Colin and Sarah are making that happen right now! Take that Mario end credits!

    Almost everyone plays video games, so why doesn’t everyone program video games? Is there a certain balance people are looking for between thinking of solutions to problems, and…shooting people? Do they just not know where to start? Maybe they have no concept of what programming is like? Well here me loud and clear folks: if you enjoy Fantastic Contraption (or BombFace for that matter), then you would enjoy programming even more.

    Agree? Disagree? Hit me up in the comments.

     

     

     

  • Pulling at the Wet Strings of Life

    Jordan Fehr is Joining the Incredipede team as the game’s sound designer. I’m a big fan of his work. He’s done a great job on other games like Super Meat Boy, Snapshot, Jamestown and others.

    He asked me to describe my vision for the game. Which I haven’t really articulated here so I thought I’d share my response:

    If you haven’t watched my Sense of Wonder Night presentation start there. I talk about the birth of the game. At its heart it’s about life and the wonder of the variety of life.

    That’s why it’s set somewhere between the age of discovery in the 1600s and the Victorian era of the 1850s.

    That was a time when the world was still open and unfound. When exotic beasts and men existed in rumor and sketch. Imagine the feeling of possibility. Imagine what you could believe.

    The gameplay is about raw creation. The goals and levels only exist to goad you into creating. The point is to make something that you didn’t know existed. To delight yourself at your own creativity and ingenuity.

    That raw creativity is wrapped in the (metaphorical) language of nature, life, and exploration to give it vitality. Why fiddle with nuts and gears and bolts when you can pull at the wet strings of life?

    Colin

  • Incredipede Artist: Thomas Shahan

    Hello to you sirs and madames. I would like to introduce you to a talented young man by the name of Thomas Shahan.

    I found Thomas through a lucky turn of chance while I was perusing Wikipedia.

    Phidippus mystaceus by Thomas Shahan

    I was looking up jumping spiders while we were  in the Philippines because we had a lot of beautiful spiders running around. His astounding Phidippus Mystaceus picture caught my eye and I absent-mindedly decided to find out who had taken it. That brought me to ThomasShahan.com.

    Sterculia Nobilis by Berthe Hoola van Nooten

    I always wanted Incredipede to look like a Victorian illustration. While I was working on the game in Costa Rica I spent hours poring over old illustrated texts of botanists who had traveled to far off corners of the world.

    My favorite is Berthe Hoola van Nooten who traveled through Java and Surinam in the late 1800’s. Her work was lavish and colourful and her write-ups included rich details about how locals used the plants. She instilled the illustrations with a sense of the wider world. I can’t imagine how exciting it must have been to read her book in 1880.

    I was so taken with her work that originally Incredipede was in the form of a book. Each level had text on one side and a level on the other.

    So it was in this context that I discovered Th0mas’ illustrations.

    Pond Gathering by Thomas Shahan

    Thomas’ woodblock cuts harken back to an earlier era than I was focused on. But his absolute reveling in the squishy fecundity of nature amazed me! His work has such a sense of place. It’s so disturbingly fascinating.

    Peregrinus by Thomas Shahan

    I sent him an email asking if he was free and possibly interested in working on a video game. It turns out he was just finishing art school and was interested. I sent him a screenshot of the game and he sent me a mock-up of the screenshot as it might appear with his art. I was blown away by the result.

    It turns out he’s also a pretty big video game nerd. When we started corrosponding he sent me a link to an old Genesis shooter called Bio-Hazard Battle which has a nice organic feel. I’ve also seen him go toe to toe with Alex Neuse in an Atari nostalgia-off. Which makes no real sense since Thomas is way too young to have played any Atari games.

    The Proposed Egg by Thomas Shahan

    A few weeks ago Thomas came out to San Francisco where Sarah and I are staying and we spent a solid week on the game together (although we did find time to go spider hunting in Golden Gate Park).

    So far he’s been doing an amazing job. I put together a secret game-play video and showed it around GDC and people went a little nuts for it.

    I’ll begin showing off his work in future posts. I don’t want to show you everything at once for fear of blowing your mind out through the top of your skull.

    Thomas at the SF MOMA

     

  • Rebuild: Porting to the PlayBook via Adobe AIR and FlashDevelop

    Pugs Luv Beats
    I helped demo IGF nominees Faraway and the very musical Pugs Luv Beats.
    Last week was my first GDC as an indie developer, and hoh boy were those goodtimes!

    I helped Colin present in a talk about failure (Incredipede was the happy ending), and co-demoed Steph Thirion’s game Faraway in the Independent Games Festival. During the awards ceremony they gave us all BlackBerry PlayBooks, so I now have little excuse not to port Rebuild to it.

    I sat down to get it running today and spent far too long stepping through RiM’s convoluted developer security setup, which took me even longer than Apple’s similarly obtuse system. There are several tutorials out there but some were out of date or assume you have Flash Builder (I use FlashDevelop). So as of March 2012, here’s what you do to get your SWF running as an app on your PlayBook:

    Step 1: Request a CSJ code signing key from BlackBerry.com (takes a couple hours).

    Step 2: Get the Flex SDK, AIR SDK, and BlackBerry AIR SDK. I had trouble with Flex4.6 + Air3.2 so I used Flex4.5 with Air 3.1.

    Step 3: Start dev mode on your PlayBook in Options > Security > Development Mode.

    Step 4: Edit & execute the following to install the debug token on your PlayBook (ten steps and five different passwords, seriously?):

    @echo off
    
    :: BlackBerry development token 
    :: More information:
    :: https://bdsc.webapps.blackberry.com/air/documentation/ww_air_testing/Create_a_debug_token_CMD_ms_1968147_11.html
    :: http://www.hsharma.com/tutorials/10-easy-steps-to-package-and-sign-air-apps-for-playbook/
    :: http://docs.blackberry.com/en/developers/deliverables/27280/Running_unsigned_apps_debug_tokens_1585072_11.jsp
    :: http://openbbnews.wordpress.com/2011/11/16/installing-a-debug-token/
    :: http://www.mellisdesigns.com/blog/?p=37
    
    :: Path to Blackberry SDK
    set PATH=%PATH%;C:\Program Files (x86)\Research in Motion\blackberry-tablet-sdk-2.0.0\bin
    
    :: Path to Java
    set PATH=%PATH%;C:\Program Files (x86)\Java\jre6\bin
    
    echo First get CSJ from https://bdsc.webapps.blackberry.com/air/signingkeys
    echo And start dev mode on PlayBook in Options > Security > Development Mode
    
    :: begin setup
    call blackberry-signer -csksetup -cskpass [YOUR_PASSWORD]
    
    :: register CSJ locally
    call blackberry-signer -register -csjpin [YOUR_PASSWORD] -cskpass [YOUR_PASSWORD] client-PBDT-[XXXXXXXXXX].csj
    
    :: create p12 file
    call blackberry-keytool -genkeypair -keystore author.p12 -storepass [YOUR_PASSWORD] -dname "cn=YOUR_NAME" -alias author
    
    :: register device against CSJ
    call blackberry-debugtokenrequest -register -csjpin [YOUR_DEVICE_ID] -storepass [YOUR_PASSWORD] client-PBDT-[XXXXXXXXXX].csj
    
    :: later calls expect the p12 here for some reason
    call copy author.p12 "C:\Users\USER_NAME\AppData\Local\Research In Motion\author.p12"
    
    :: create the debug token BAR
    call blackberry-debugtokenrequest -storepass [YOUR_PASSWORD] -devicepin [YOUR_DEVICE_ID] debug_token.bar
    
    :: sign bar with RIM (remote)
    call blackberry-signer -verbose -cskpass [YOUR_PASSWORD] -keystore author.p12 -storepass [YOUR_PASSWORD] debug_token.bar PBDT
    
    :: sign bar with developer (local)
    call blackberry-signer -keystore author.p12 -storepass [YOUR_PASSWORD] debug_token.bar author
    
    :: upload debug token to playbook (must be running in debug mode at this address & password)
    call blackberry-deploy -installDebugToken debug_token.bar -device [DEVICE_IP_ADDRESS] -password [YOUR_PASSWORD]
    
    :: echo important metadata
    echo Add the following authorId to bar-descriptor.xml
    call blackberry-airpackager -listManifest debug_token.bar
    
    pause
    

    Step 5: Download this FlashDevelop project adapted from Studio Chris’ BlackBerry template, and edit airplaybook.as3proj and airplaybookConfig.xml to point to your SDK locations.

    Step 6: From FlashDevelop, hit F5 to build your SWF and test it locally using ADL.

    Step 7: Edit & execute the following to package and install the app:

    @echo off
    :: AIR application packaging
    :: More information:
    :: http://livedocs.adobe.com/flex/3/html/help.html?content=CommandLineTools_5.html#1035959
    :: http://www.hsharma.com/tutorials/10-easy-steps-to-package-and-sign-air-apps-for-playbook/
    
    :: Path to Flex + AIR SDK
    set PATH=%PATH%;C:\Program Files (x86)\Adobe\Flex451AIR31\bin
    
    :: Path to Blackberry
    set PATH=%PATH%;C:\Program Files (x86)\Research in Motion\blackberry-tablet-sdk-2.0.0\bin
    
    :: Path to Java
    set PATH=%PATH%;C:\Program Files (x86)\Java\jre6\bin
    
    :: package swf and assets into a bar then install to device and run the app
    call blackberry-airpackager -package airplaybook.bar -installApp -launchApp application.xml bar-descriptor.xml airplaybook.swf blackberry-tablet-icon.png landscape-splash.png portrait-splash.png -devMode -device [YOUR_DEVICE_IP] -password [YOUR_PASSWORD]
    
    pause
    

    If all goes well, you should see Main.as (a red square on a black background) appear on your BlackBerry. Chances are good that some parts of the debug token installation aren’t necessary but it got the job done.

    Rebuild actually ran the first time, and quite well which was an unexpected surprise. Now I need to adjust the fonts and aspect ratio, then go through what promises to be another certification nightmare to package it for sale in the BlackBerry App World. It’ll probably take two or three days total, so no great loss if it bombs.

    Rebuild should be out for the PlayBook by the end of the month!

  • 2011 Was A Good Year for Zombies

    It was also a great year for us! Colin and I hopped around the world again with nothing but our laptops, meeting new friends and working on our respective games. I released Rebuild 1 in February from Costa Rica, Rebuild 2 in October from Japan, and Rebuild Mobile in November from the Philippines. The games have done well enough that we can afford to keep this travel thing up for another year.

    Best of 2011 AwardRebuild recently won the Best of 2011 award for Simulation/Strategy from JayIsGames, my favorite casual games review site. Between that, placing in the Kongregate top ten all year, and being called “unputdownable” by Touch Arcade, Rebuild has totally exceeded any expectations I had when I wrote the first version one weekend at my in-law’s house. Thanks to everyone who’s encouraged me to keep improving the series!

    Soon I’ll be releasing Rebuild for iPhone/iPod touch, to complete my domination of the iOS market. Then it’s finally time to take a break from the brain nomming cretins (god love ’em) and work on Incredipede with Colin. Which BTW is going to look amazing!