Tag: Rebuild

  • Rebuild 2: Bring on the music

    Colin and I are having a great time in San Francisco. It was a big adjustment (especially weather-wise) from the beaches of Costa Rica, but seeing all our friends again has made me wonder why we left.

    Last month we went to a bizarre concert: Mike Patton and noise-music duo PIVIXKI, consisting of a mad, energetic drummer and an even madder more energetic pianist. But it was the opening act that caught my attention and wouldn’t leave my head.

    Bill Gould and Gigante Sound (Jared Blum and Dominic Cramp) opened with music from their new album The Talking Book: a collection of dark and atmospheric soundscapes that were so moving and so amazing to hear live (I was right up front). I kept closing my eyes and could imagine playing Rebuild to the music. It was perfect. I contacted them later in the week and licensed a few songs for the sequel. So, presenting the soundtrack to Rebuild 2:

    The Talking Book by Bill Gould & Jared Blum
    The Talking Book – Rebuild’s new music

    You can hear samples on their site or on Amazon, but the 30-second snippets don’t do it justice. I fell asleep last week after listening to the album and had a vivid dream of a zombie-ridden future.

    It was actually quite a sad dream. Most of the people I loved were dead and our chances of survival seemed bleak. I wondered if it was morally right to make light of such horrors, even if they are fictional.

  • Rebuild: Regarding Clones

    Last week someone released a knockoff of Rebuild for the iPad. When I contacted them, the publisher politely said it was a mistake and took it down immediately, but it reminded me of what’s at stake if I take my time with the sequel (which will come out for iPad as well as Flash).

    It also got me thinking about the topic of clone games, which have always bothered me, but I find it hard to pin down exactly what constitutes a clone and why I find them offensive. The conversation tends to gets heated when the topic comes up, but I think it’s important that we talk about it all the same. It’s going to buzz around my brain until I do so I decided to look at some examples and ask some questions.

    Rebuild vs clone of Rebuild
    Rebuild vs Knockoff Rebuild

    The Rebuild clone is an extreme case and it’s been taken down, but I’d like to start with it. The gameplay was the same, the art was better but strikingly similar and the events were rewritten in different words. Perfectly legal, except that they named it “Rebuild” which was probably an accident. I think it’s crazy that someone could spend so much effort to produce a beautiful and polished game while skipping the fun part of designing the gameplay. I imagine profit must be the only motive, but I’m not sure. I am sure that it shouldn’t have been legal.

    There are good reasons why you can’t copyright gameplay. Gameplay is hard to define, and borrowing ideas from earlier games is an important part of how genres evolve. I agree, it would suck if someone owned the copyright on aiming with a mouse, or levelling-up a character, or if Square Enix could sue you for using the FFVII class system in your vector-based robot platformer. I’m happy anyone can iterate and expand on ideas from other games, but there’s a difference between that and being a total, shameless knockoff.

    Clones are like porn: you know it when you see it.

    Fantastic Contraption vs Magnificent Gizmos & Gadgets
    Fantastic Contraption vs Magnificent Gizmos & Gadgets

    After Colin wrote Contraption, he started negotiations for an iPhone port with a developer but it fell through when Colin realised the deal they offered was rediculously out of scope with the industry standard. Three months later they released a nearly exact clone of Colin’s game with a pretty graphical makeover, almost beating our real port to the iPhone market (free tip: before you deal with someone see how many outstanding law suits are pending against them). Apple didn’t take it down, but (with our publisher inExile’s help) they did feature us and the clone got buried.

    The situation was unusual because Colin new the cloner and suspects they’d already started on the game (as an official Contraption port) before negotiations collapsed. It might have held up in court if it had been worth suing over, but I’m really glad we didn’t have to find out.

    Don’t rely on Apple to make any moral decisions regarding knockoffs. They’ll take something off the App Store if it violates copyright, ie if it uses your name or characters or graphics, but they’re slow and don’t reply whether they decide to act or not.

    Tetris vs Brick Game
    Tetris vs Brick Game

    Possibly the most cloned game ever, Tetris, has been beset with copyright problems since the get-go. Knockoffs show up everywhere from naughty versions on xxx sites to “9999 in 1 Russia Brick Game” handhelds at dollar stores. Last month the company that owns Tetris sent Google a DMCA notice regarding 35 games on the Android market which were all promptly removed. Some of them used the word “Tetris” which is unarguably illegal, but many just had similar gameplay.

    It’s interesting that this sue-happy company can so easily throw their weight around to enforce copyright on a 30 year old title. I guess the system does work for some people. But I wonder if Tetris is so well known that it should be considered a genre in itself, gameplay in the public domain. Did any of the unauthorized games combine new and interesting concepts with our beloved block game?

    FarmTown vs FarmVille
    FarmTown vs FarmVille

    Facebook games all look the same, to someone uninterested in spamming her friends every time she grows a tomato. Talk about shameless mimicry! Consider Zynga‘s multi-billion dollar line of clones: FarmVille, PetVille, Café World, Mafia Wars. They wait for a game to be successful, copy it to a T, then aim their firehose of players at it – ka-ching! They must have a strong sense of irony, because now Zynga’s threatening to sue people for using “-ville” in their game names.

    Granted, they’re not the only ones at it, and Zynga is spectacularly good at optimizing games to maximize virality and revenue. Did FarmTown lose money when it got cloned, or did the sudden popularity of farming games bring them new players? Is there room in a player’s feed for two (or three, or four) such similar games?

    Minecraft vs Fortresscraft
    Minecraft vs Fortresscraft

    Microsoft just announced that Minecraft is coming to XBLA. This must be a disappointment to the creators of top-selling XBLIG game FortressCraft, one of the most recent in the genre of “first person multiplayer voxel art mining sandbox roguelikes”. Unlike the owners of Tetris, Notch has no intention of suing, in part because he wouldn’t have a leg to stand on: Minecraft started as a self-admitted clone of Infiniminer (by Zachary Barth, creator of SpaceChem).

    You could argue that the world wouldn’t have discovered this new genre if Minecraft hadn’t picked up after Infiniminer was cancelled and iterated on it to make a really great game. On the other hand, the graphical similarities are so obvious it’s embarassing. Barth says he’s flattered that his game design has become so popular, and leaves it at that.

    Crush the Castle vs Angry Birds
    Crush the Castle vs Angry Birds

    Angry Birds has been in the App Store top 3 for over a year and has made over 70 million dollars. Apple constantly features the game because it’s in their interest to have fewer, more popular games whose household names might intice people to buy an iPhone or iPad. Few games get into the top 10 and they tend to stay there, which makes developing for the iPhone kind of like playing a slot machine.

    As you probably suspected, Angry Birds’ gameplay was copied from a Flash game called Crush The Castle. The difference this time is that Angry Birds used a completely different look, having you whimsically toss suicidal birds at pigs instead of cannonballs at armored men. It feels good, it sound good, and it’s obvious why even our parents are playing this game.

    Is it innovation if you just change the setting? I know I wouldn’t have been so miffed at the Rebuild clone if you were fighting aliens on a moon base instead of zombies in an identical looking city.

    WaveSpark vs Tiny Wings
    WaveSpark vs Tiny Wings

    In another case of innovation via higher production values, top-selling iPhone game Tiny Wings is far, far more polished than an earlier game WaveSpark which used the same gameplay. WaveSpark was created as part of a project to write a different game every week, and the creator Nathan McCoy didn’t spend a lot of time making it look good. It goes to show that polish pays. So do cute birds.

    It seems that’s what players care about, as McCoy’s request for credit was met with jeering at his game’s simple graphics. I’m hesitant to call Tiny Wings a clone, but I’d like to see developers (and fans) give credit to games that inspired theirs. Do they not for fear of being sued?

    Desktop Dungeons vs League of Epic Heroes
    Desktop Dungeons vs League of Epic Heroes

    QCF Design has finally started preorders for Desktop Dungeons, and last week they briefly had a beta version of the game online (I’m bummed I missed it). They’re being secretive for good reason: they’ve been burned before.

    They started off releasing alpha versions of the game as they were writing it, incorporating feedback from the community and growing a tidy fan base. Then one such fan released an iPhone game copying Desktop Dungeons’ gameplay right down to the classes and spell names. After months of friendly but fruitless discussions between the two developers, QCF finally brought in their lawyer and spoke publicly about the situation. The cloner relented and graciously took his game down.

    He didn’t seem like a bad guy. He just wanted to make a good game, and Desktop Dungeons was a good game. But releasing it before the original was even finished? Ouch.

    SimCity vs Rebuild
    SimCity vs Rebuild

    I’m just kidding about this comparison, but SimCity was one of the inspirations for my game. So was X-Com and zombie movies like 28 Days Later and Dawn of the Dead. Like I said, all games borrow from other games and I’m happy they can.

    I know I’ve gotten all high and mighty, but there’s a line that gets crossed too often. It just ain’t right, and something needs to change! If the law can’t help and distributors like Apple won’t help, at least players can have an effect by respecting the creators of original gameplay and not buying the knockoffs. Or at least give credit where it’s due and play the original games too.

    Colin notes that the real tragedy is that the cloners aren’t just stealing a good idea. They are stealing refined, thought out game design that might have taken years to make work. It takes much less risk to just steal great gameplay and polish up the graphics.

    Good thing there will always be foolish indie developers who are more interested in making something cool than simply making money.

  • Rebuild 2: let’s get this arty started

    Characters Before
    The androgynous stickmen of Rebuild 1

    A couple weeks ago I posted looking-for-artist requests on Newgrounds, DeviantArt, TIGSource and FlashGameLicense, and got a couple dozen responses. I was kind of expecting more, seeing as it was a paid contract to work on the sequel to a popular game, and I was surprised at how many of the responders hadn’t even looked at the original game. I did however get a few very exciting responses from people who had played the game and were – bonus – great artists.

    Insanity 2 screen
    Insanity 2, now THAT's horror

    I chose EvilKris, creator of the Insanity and Insanity 2 point and click horror games. He works with 3D models and layers of texture to produce some truly dark, creepy images, far more realistic and disturbing than my clean and cutesy vector art from the first game.

    EvilKris's character art in progress
    EvilKris's character art in progress – the one on the left uses my actual face!

    To start with he’s been working on characters and equipment to replace the old faceless stick figures, so you can really see the fear in your scavenger’s eyes as you equip her with a pistol and send her off alone to desperately scrounge for food at an Allmart teeming with the living dead.

    Next will be the gory stuff for the zombie attack sequence, which I’ve decided is not going to be a minigame after all. I’m going to spend more time instead expanding the strategic game, adding plot and NPCs, equipment resources, new buildings and new endings. I hope the sequel will have more replayability, but one thing is for certain: it’s going to have a more a darker more engrossing (and also more gross) visual style, which will fit better with the storyline.

    In other news, I recently did an email interview with Ethan Moses of HorribleNight.com where I talked a little about my inspiration for the game and the relative merits of zombies vs hive-minded insect aliens.

  • Creating a two-step Flash preloader

    Sarah and two laptops
    500 kbps ain't as fast as it used to be

    I came up with this one in Costa Rica, while consistantly waiting three minutes for a 5 meg Flash game (Rebuild, as a matter of fact) to load. The vector graphics take up very little space so over 4 of those megs were just the music. Since I usually play Flash games muted, I figured it was foolish to make players wait until the music loaded before they could start playing. Enter the multi-part Flash preloader.

    Preloaders in Flash work by putting some content (the loading animation) on Frame 1 of the base MovieClip, and the rest of the content (the game and music) on Frame 2. The first frame loads in its entirety and any actionscript on that frame executes before the second frame starts to load. This makes sense when you consider that Flash was designed for playing movies. So, can you simply move some of the content (the music) to Frame 3? Yes, it’s that easy!

    Well, easy if you’re writing your game on the timeline in the Flash authoring tool. I prefer to use FlashDevelop and the Flex compiler (both free) instead, so my main class is in an AS3 file and the frame metaphor is more obscure. If you start a new project in FlashDevelop using the “AS3 Project with Preloader” template, it creates a Preloader.as class, and a Main.as class with “Always Compile” and the Frame metatag [Frame(factoryClass=”package.Preloader”)]. What this tag does is tell the compiler to put Main.as (and any of its dependancies) on the second frame, and Preloader.as (with its dependancies) on the first frame.

    So, if you stack one more class on top…

    Music.as with [Frame(factoryClass=”package.Main”)] (set to “Always Compile”)
    Main.as with [Frame(factoryClass=”package.Preloader”)]
    Preloader.as with a spinny ball animation

    Flash Frames

    The only catch is you can’t determine how much of Main.as has loaded using loaderInfo.bytesTotal because that will also include the bytes from Music.as. Instead you either need to look at Preloader.currentFrame, or try to instanciate Main and catch an error if it’s not ready yet. You could get fancy and use as many frames as you want to determine load order of all your assets, but if you’re dealing with one very large swf it’s still better to cut it up and stream your assets from outside.

    While South Korea has plans to put 1 gigabit connections in every home, internet speeds in big countries like the US and Canada have been falling behind. Many areas of the world will be running through 3g cell connections before they even have cable or dsl lines. So go easy on them and don’t forget the preloader! :)

    Here’s my example code:

    Preloader.as

    package loadtest
    {
    	import flash.display.MovieClip;
    	import flash.events.Event;
    	import flash.events.IOErrorEvent;
    	import flash.utils.getDefinitionByName;
    
    	public class Preloader extends MovieClip
    	{
    		public function Preloader()
    		{
    			addEventListener(Event.ENTER_FRAME, frameEntered);
    
    			trace("preloader starting");
    
    			// TODO put your spinny ball here but DO NOT reference the Game or Music classes
    			// directly or they will be compiled in to Preloader frame 1
    		}
    
    		private function frameEntered (...ig) :void
    		{
    			// the user can begin playing the game
    			if (currentFrame == 2) {
    				trace("frame 2 finished loading, starting game.");
    				var gameClass :Class = getDefinitionByName("loadtest.Game") as Class;
    				addChild(new gameClass());
    				// TODO remove your spinny ball here because the game has started
    
    			// finally, the music can also start
    			} else if (currentFrame == 3) {
    				trace("frame 3 finished loading, starting music.");
    				var musicClass :Class = getDefinitionByName("loadtest.Music") as Class;
    				addChild(new musicClass());
    
    				// all done loading everything so ditch the preloader
    				stop();
    				removeEventListener(Event.ENTER_FRAME, frameEntered);
    			}
    		}
    	}
    }

     

    Game.as

    package loadtest
    {
    	import flash.display.MovieClip;
    	import flash.utils.getDefinitionByName;
    
    	[Frame(factoryClass="loadtest.Preloader")]
    	public class Game extends MovieClip
    	{
    		public function Game () :void
    		{
    			trace("game starting");
    
    			// TODO put your entire game here but DO NOT reference the Music class
    			// directly, or it will be compiled in to Preloader frame 2
    
    			try {
    				// this is okay, but will throw an error if the Music isn't loaded yet
    				var musicClass :Class = getDefinitionByName("loadtest.Music") as Class;
    				var music :MovieClip = new musicClass();
    			} catch (error :ReferenceError) {
    				trace("music class isn't loaded yet");
    			}
    		}
    	}
    }

     

    Music.as

    package loadtest
    {
    	import flash.display.MovieClip;
    
    	/**
    	 * This file must be marked as "Always Compile"
    	 */
    	[Frame(factoryClass="loadtest.Game")]
    	public class Music extends MovieClip
    	{
    		public function Music () :void
    		{
    			trace("music starting");
    
    			// TODO reference your mp3 or wav classes here so they will be compiled in to
    			// Preloader frame 3.  You can also reference Game since it's already loaded.
    
    			// this is okay
    			var game :Game;
    		}
    	}
    }
  • Rebuild 2: Starting the Sequel

    Rebuild on Kongregate
    #3 on Kongregate with 2,000,000 plays!

    My game Rebuild was more successful than my highest hopes. It’s nearing 2 million plays just on Kongregate alone, and is still the #3 game in their rankings. So there’s no doubt I’ll do a sequel and it’s about time I got started!

    I’ve gotten heaps of suggestions by email, pm, and in the forums at TwoTowers, Kongregate and Newgrounds. I’ve been collecting these and trying to get a feel for how people are playing the game.

    I noticed something interesting: many people play to completion, trying to get all four endings in one game, preferrably on the same turn. This is not at all how I play; I just want to get to an equilibrium where I’m not in constant danger of being wiped out, usually around turn 75. Mopping up the remaining 2/3 of the map isn’t interesting to me, so I didn’t make a lot of content for the lategame. This is how I imagined a game going:

    • Turns 1 – 24: worry about food
    • Turns 25 – 44: worry about zombies
    • Turns 45 – 74: worry about happiness
    • Turn 75: either you’ve stabilized and won, or you’re dead and don’t know it yet

    These numbers are hardcoded: zombie mobs first arrive on day 25, and on day 45 the zombie spawning caps out and new happiness-related events start happening. But people are playing until turn 250 and conquering all 100+ squares. So, my first priority for the sequel is to take this play style into account and make sure the game stays interesting for longer, especially on easy difficulties. There will be many more random events, and branching storyline events where you have to answer yes or no questions which influence future events. Maybe even factions you can effect, or special named npcs that join the fort if you meet certain conditions.

    I was also super pleased to see people swapping stories of their survivors; the funniest names or most eyes lost (I saw 9) and the random stuff that happened to them. So my second goal is to make survivors more customizable and unique, with equipment and skills and levelling. Varying skin and hair color and yes, there will be things to lose other than eyes.

    Zombie Attack Art
    How not to do art: don't draw things for 20px high then stretch them to 150px

    The biggest complaint was the art (though some people liked it’s simplicity), followed by the fact that the zombie attacks weren’t interactive. The art will get some attention (hopefully with help from someone else), specifically the animations which I admit are totally pathetic. No promises, but I also want to replace the attack animation with a minigame that changes your odds by +/- 10%. Skippable of course, and hopefully more interesting than your usual point and click shooter.

    So those are the big 3 (more lategame content, more unique survivors, better zombie attacks), but of course there will be new buildings and effects, improved art all around and I’m going to address some stuff that drives everybody (including me) crazy about Rebuild, like:

    • All the clicking involved in sending 10 guys on a mission in the lategame
    • Having to move people on and off guard duty all the time
    • Squares filling up with zombies the turn after you clear them
    • 20 zombies spawning every turn in the last couple squares on the map
    • Losing a single 3% danger fight in Harder or Nightmare can ruin you

    Of course there are a lot of suggestions that won’t make it in, like I’m not going to attempt multiplayer or add an XCom-style tactical battle system (I wish, that would be awesome!). I’m already starting a list of ideas for Rebuild 3 – hah, we’ll see!

    Rebuild 2 Title
    The new look may be for you to decide!

    I’m looking for a vector artist to help me out this time, so if you’re interested in working on Rebuild 2, drop me a line with your portfolio.

    There are a lot of other little things that may or may not make the cut, and the possibility of versions for iPhone and other platforms. But I’m just getting started, so there’s still time to send me your suggestions!