Posts Tagged filler

Thoughts on Hundreds

Sensational Headline

Several people have sent me emails and messages now that Hundreds is out, ranging from “reminds me of Filler” to “dude, they cloned your game” to “it even looks like Filler.” I’ve been casually following its development, so I finally downloaded it over the weekend and gave it a play.

My thoughts generally fall along two lines–an analysis of the game as a game and its similarities to Filler, and my thoughts on the game as indie theater (is that a thing?).

In general, though, I like Hundreds. Quite a bit. It’s pretty, it’s hard, and I clearly like the mechanics.

Similarity to Filler (Inflation Mechanic?)

To be honest, Filler is barely a game. I read an article on a new physics engine for Flash back in the fall of 2007 (APE – Actionscript Physics Engine), downloaded it, and started playing with it. I wanted to see how the circle particles interacted with each other and how many it could handle, so I made a little thing that let me mouse down to start growing a circle particle and release to drop it.

Something in that toy sparked a memory of Jezzball from years ago, and within an hour I had Filler more or less running in its final form. I refined it a little over the next couple of months (instead of growing the radius linearly, the balls “inflate” proportionally to their area/”volume” instead–they grow quickly at first and then slow down), but the shipped version was basically that prototype with some menus and ads.

Hundreds uses that same mechanic–inflating a ball–but to different purpose. Where Filler was an arcade game with a neverending level progression, Hundreds is a puzzle game with specific, authored puzzles. This works really well for the inflation mechanic, as it solves the one major problem I never really solved with Filler–lots of particles leads to lots of collisions which leads to slowdown. By introducing a finite number of particles in each level, the lag issue goes away entirely.

Hundreds also introduces many new types of particles where Filler had only the inflation-balls and the bouncing pop-balls. Most of the particles are pretty neat (I like the hockey pucks that you can slide around, but don’t much care for the chained-together-balls). For me so far (about 60 puzzles in), the puzzles generally fall into two categories: acrobatics and patience. In the acrobatic levels, there’s usually some sort of dexterous action required–batting a razor particle through a small opening, moving the pucks around to block razor particles, using two-finger controls to make quick arrangements. In the patience levels, it’s usually a matter of slow scanning, waiting for an opening and deftly inflating just a little. The former feel like totally new puzzles to me, but no matter the particle complexity the patience levels end up feeling just like Filler to me.

Which is fine.

I like Filler, and I like that same feeling in Hundreds. I certainly don’t own the inflation mechanic or even the combination of patience and inflation. I like the mechanic, so I actually wouldn’t mind seeing more games that use it. Over the years I’ve sketched/prototyped out a few such games that I’ve never gotten around to making:

  • a Filler-style tower defense game where you drop particles onto creeps, who crawl over the rubble at the bottom (prototyped–it’s pretty neat)
  • a bubble golf game — imagine a pinball layout (wedges/ramps) with several “air” catches that you’re trying to fill up. kind of like inverse pachinko, but you can control how big your ball is (sketched)
  • a bubble platformer — a little mario guy who runs around collecting bubbles on the sea floor who can “inflate” as a shield against danger… but also collecting too many bubbles makes you jump too high (sketched)

There’s probably a lot more!

In terms of art style, Filler doesn’t really have one. 0×555555 isn’t an art style, it’s just a color of gray that I like. The original Filler is minimalist in style because I wrote in entirely in code and didn’t own Photoshop or Flash at the time (which I used profits from Filler to buy). Filler 2 isn’t really any different than Filler (other than the challenges) — it’s more of a “here’s what it would have looked like if I’d had the resources the first time around.” I think Hundreds is a bit obtuse in places (I thought the game was broken on the first frozen particle), but in generally I really dig the colors and design aesthetic.

Hundreds as Indie Theater  ($2.99???)

So now that I’ve established that I like Hundreds… I don’t think it’s worth $2.99. “Worth” is a really strange word, though–something is worth whatever someone is willing to pay for it, and clearly people are willing to pay $2.99 for Hundreds.

But they’re not really paying $2.99 for the game Hundreds. They’re paying for a ticket to the indie theater.

Adam Saltsman (Canabalt, Old Spice Saves the World) and Greg Wohlwend (Solipskier, Gasketball) are fairly well known in the indie game scene, and they’ve done a great job stirring up attention before the release of Hundreds. Buying the game achieves two goals–it gets you the game Hundreds and it acts as a vote of support for its creators to keep doing what they’re doing. In that sense, this is another form of Kickstarter. We want there to be successful indie developers so that we have something to strive for, and supporting games like Hundreds lets us tag along for that ride and keep our own dreams alive. In that sense, it’s absolutely worth paying $2.99 for.

But tweets like this are probably a disservice to aspiring game developers:

"one might be forced to assume that there is in fact a large audience of people willing to pay more than less than a dollar for ok stuff", A. Saltsman

This exact same game by an unknown at $2.99 would be a disaster. Probably even at $0.99. By building a large social and media following and hyping its release well ahead of the launch day, they’ve managed to do something that most indies can’t–widespread press coverage, Apple featuring, and enough initial downloads to launch into the Top 10.

The message that’s being sold in the media is simple: “build a high quality original game and you can command a higher price point and be successful.” But I think Hundreds is more of a marketing success than a truly innovative and original game (not that it can’t be all three–I just think if you’re going to hold it up on a pedestal the most interesting piece is the marketing, by far). Certainly, the game could’ve been a dud and wasted all the hype leading up to its launch. A more accurate story might be “build a large internet following and you can successfully sell content to them (see Louis C.K.).” Game developers should always strive to build good games, but the takeaway from Hundreds should be how to launch a successful game and not necessarily how to design/develop a successful game.

I’m curious to see what will happen when the price ratchets up to $4.99 on the January 10th. I think it may be able to hold its chart position on tablets, but will probably drop like a stone on smaller devices. Which is actually kind of a shame, because I do think it’s a good game.

, , ,

No Comments

Filler for XBox and More Thoughts on Indie Games


The night before hopping on a cruise last month, Filler finally went live for the XBox (September 13th). Coming up on almost a month of data, I wanted to take a look back at the XBox version’s development process and comment on Microsoft’s Indie Games in general. I actually had a solid prototype working on the XBox over a year ago, before the service even launched. I had way too many other projects on my plate, so the XBox version kept getting pushed to the back. After finishing up the Batman: Brave and the Bold contest game in early July (I’ll do a post-mortem on that one as soon as I get a thumbs up), I felt it was finally time to clear the XBox version from my to-do list.

Finishing Up

From each time I’d worked on the game for a week or two at a time, there was quite a bit of code in place. I’d completely stripped down APE (Actionscript Physics Engine) and the original Filler codebase to be as abstract as possible, then moved that code directly into XNA. I won’t say I got it 100% MVC, but it was pretty damn close. The majority of work, then, was all about building up the actual display and menus for the XBox version. Building the interfaces was pretty easy–though the lack of an interface builder means it’s a lot of “tweak, compile, check, and repeat”–not so dissimilar from coding Flash games in pure AS3.

Having played tons of Indie Games for WorthThePoints, I also had a pretty good list of things about the service (and the XBox 360 in general) that bugged me. Top among that is the prevailing idea that one profile directly maps to one human player. While I know why they did it that way (more Gold accounts), I personally think the profile system in the XBox is terrible for multi-user households. Content is attached to profiles instead of machines, which means we’re always logging different profiles in and out to figure out which profile has the proper permissions or features unlocked in a given game (that’s directed at you, Rock Band). Because Indie Games are even more rigorously locked to single profiles, I wanted to build my own system which would function more like the “save” slots of the old SNES and Playstation games I used to play.


Besides adding a co-op multiplayer component, I really didn’t want to just release “another Filler” for the XBox. The original Filler was only tuned through about level 15 (the highest I thought anyone would make it), so I was totally unprepared when people were up in the 60′s and 70′s a couple of days after I released it. Besides the physics breaking down, the difficulty of the game itself completely plateaued past around Level 15. Both the number of lives and the number of balls allowed spiraled way out of proportion to how many were actually needed to beat a given level. For Filler 2, I tried to correct this by combining the lives and balls into one value.  The problem with this approach was that experienced players need way less balls than new players. Starting the game with 10 balls was reasonable for a first time player, but it gave expert players such a huge cushion to work with that there was never really any danger in losing.

The limit on how many balls could be placed was mostly put in place to put players from “cheating” and simply filling up the board with hundreds of tiny balls. To move towards making that the core win/lose state, then, was promoting a feature that was only added for convenience’s sake. For the XBox version, then, I wanted to get back to the notion of lives while thinking of a better solution to limit how many balls could be placed on screen. I tried lots of things: a power meter that depleted, holes in the floor that let small balls slip out, special enemy balls with a variety of powers (including popping small balls).

While playing with the notion of special enemy balls, I actually stumbled onto a pretty fun game mode which I may code up and release as a standalone version at some point. One of these special balls had erosive powers–every time it bounced into a filler ball, that ball would shrink a little bit. It was this mechanic which finally provided the difficulty curve I was looking for–though not as originally implemented. By making all the filler balls shrink at a constant rate (like filling, the “shrink” rate is proportional to the area instead of the radius, which means big balls shrink slowly and small balls shrink quickly), I actually solved three problems for the price of one.

The “fill the board with small balls” strategy became worthless–before the screen is even half way full, the first balls dropped in this manner start to “pop” and take lives away. Second, even when playing in the “proper” manner the new shrink rate adds a time-crunch component which was missing from the first two versions of the game. Most importantly, the shrinking balls smooth out the difficulty curve–they’re practically a nonfactor in first ten levels and don’t really start to have a major impact until around level 15… where the difficulty was previously plateauing. From a pure gameplay point of view, then, I firmly believe the XBox version of Filler is the most well balanced version to date. If I ever do another Flash version of the “core” game (and not a spin-off), it’ll be nice to have that part of the equation “solved.”

Peer Review

I submitted Filler to peer review for the first time on August 8th. It would go on to fail twice–both more for quirks in the framework than what I’d consider bugs on my part. The SpriteFont class takes an optional parameter when instantiating it, a single character which is used in the event that your code tells the SpriteFont to render a character which isn’t contained in that font (i.e. a character with an accent on it). Rather than doing something sensible like defaulting to a space (or simply rendering nothing), a call to render one of these characters causes the whole game to crash. Again, this is something that’s part of the XNA framework and not something inherent to C# itself. The fix? Adding a ‘-’ to the initializer for my fonts, which took about 30 seconds. The penalty? Besides the five days it spent in review before the crash was found, it had to spend another eight days in review “jail.” The published cooldown for a rejection from peer review is seven days, but your jail time doesn’t start until the day after you pull it from peer review (or get rejected, I assume). So if you pull it at 5 AM, it’s practically an 8-day wait.

After resubmitting the game on August 21, it took only a day for another crash to show up. If you try to open the marketplace menu with a silver account (i.e. a non-paying XBox Live account), the game crashes. All the accounts on my box are Gold, so I never even thought to create another one to test from. For a framework that does its best to handle all of the transactional details for you (trial modes are automatic, purchases are handled completely outside the game), it boggles my mind that the framework itself doesn’t pop up an alert with something to the effect of “You must be a Gold member to access this content.” The fix? Testing to see if the acting player is Gold or not and popping up an alert if they’re not–about five minutes of coding. The penalty? Another 8 days in peer review jail.

I’m not trying to say I’m completely without blame–if I’d spent another couple of weeks reading every detail of the framework documentation I might’ve been able to find these crashes before submitting. And I don’t think the “7-day” jail is a bad thing. The idea of it–to prevent people from dumping buggy games onto the service with no QA is noble, but I think it does more harm to well-intentioned developers than the “lazy” developers it was meant to stop. A better system might take into account the severity of the bugs and the submission history of the developer.

I was traveling when Filler failed the second time, so I was unable to submit again until September 2nd. Right around the time I submitted it for the last time, I posted some of my thoughts on the review process to the XNA forums:

What are essentially two framework quirks have cost the game nearly three weeks (it usually takes a few days before anyone bothers to review). These are mistakes I’ll know to look for next time (if I choose to continue developing for XNA), but the end result is that the submission process is unnecessarily cumbersome to first-time XNA developers–the very people Microsoft should be bending over backwards to court! I hope that there’s enough backlog some day for MSFT to actually hire someone to wade through it–a community relations job or a full-time tester.

This may sound douchey, but I have absolutely no interest whatsoever in playtesting or reviewing a game that hasn’t come out yet. I honestly believe I add more value to XBLIG by spending my time on development of new games and reviewing published games than by wading through unpublished games. Zman mentioned how few people are trying to make XBLIG a real business, and that’s because no one expects EA to playtest Call of Duty before it’s released (especially Activision!). You do your best to make your game, get it bug free, submit it to MSFT. If there are bugs you release patches.

Those sentiments were met with nearly universal scorn by the “main players” in the forum, but I stand by them 100%. At times it seems as though the Microsoft employees and most of the MVPs which frequent the forums (though certainly not all) have had rose-colored glasses permanently attached to their heads. There seems to be an overwhelming belief that if they hold hands and sing “Kumbaya” for long enough that the community will magically come together in a supporting environment where everyone does peer reviews. By voicing my opinions, though, the most common response was “don’t expect me to ever review one of your games. Good luck getting anything released.”

They claim that there are legal reasons Microsoft itself can’t approve apps, but that argument just doesn’t hold up–Apple has approved almost 80,000 apps since the XBox Indie Games channel launched (last November), and all without peer review. After pretty much giving up on ever getting the game out, some more reviewers checked it out while I was on the east coast and it finally got approved on September 13th–over a month after “finishing” the game.


Sales so far have been pretty tepid, which hasn’t been too surprising given other games’ lackluster sales. Though there are still a few days left, it looks like the game will sell less than 100 copies in its first full month (currently sitting at 83 with 4 days left). More disappointing than the actual sales, though, are the trial downloads: in almost a full month, only 2,520 trial copies were downloaded. 2,000 of those were in the first three days (while on the New Release list). In the last week, daily downloads have ranged from 2-6 trials per day. I’ve stuck with it for a couple of years now, so clearly I’m a fan of Filler’s gameplay–but I certainly don’t think it’s the greatest game out there. Still, it’s rated in the top 20% of all games on the service (at least, last time I checked). For sales to fall so flat so soon tells me two things:

  • Though I considered the work I put into the challenges, multiplayer, and profile systems enough to bump the game up from a $1 game to a $3 game, I get the sense that players (and customers) don’t actually give a crap about those features and would rather just have the core gameplay for $1.
  • As an ecosystem, the Indie Games Channel only has enough traffic to support the top 25 or so games in the system. The iPhone has enough users that even an “average” game can see several purchases per day, whereas an “average” game for the XBox will be lucky to get 2-3 trial downloads per day.

The breakout success of “I MAED A GAM3 W1TH Z0MB1ES!!!1″ has shown that there’s a place for content without any “extra” features at $1. If I had to go back and do it again, I would’ve just released the game without profiles and challenges months ago for the lowest price point. Extra work on the game doesn’t really get you anything on the Indie Game Channel (versus what we’re seeing in “Premium” flash games that can command user payments), so if I release more games for the platform they’ll definitely fall within that $1 “throwaway” style game.

, , ,


Filler for the iPhone, ScoreCaching, and Filler 2

Filler for the iPhone

Filler for iPhoneAt long last, Filler is now available on iTunes (you can see my little splash page + iTunes link here) for $1.99. I’ve never outsourced anything before, so it was a bit of a learning experience. I ended up working very closely with the team at ChaYoWo–they’re probably happier to be rid of my long bug reports than they are to actually launch the game (I kid). I’m very satisfied with the final product–even if it doesn’t sell a single copy, there’s a certain joy in being able to play my game wherever I go now. There are a couple of interesting things that happened during the development of the iPhone version.

The first thing I usually hear when people see I’m working on an iPhone version is that I should make it tilt-enabled so you can move the balls around. The problem is… that makes the game stupid easy. It’s not really that hard of a game to begin with (but man is it good to kill 5 minutes while you’re waiting for a bus…), so adding in more mechanics to simplify things just seemed like the wrong direction. Another idea I had was to use the tilt to move around the cursor, and have a button for making filler balls. We actually coded this one up, but… uh… it was terrible. In the end we decided not to use tilt and to keep the gameplay closer to the original Flash version.

One thing I noticed while playing early builds (which I also noticed while playing various clones that are already on sale) is that your fingers really do get in the way of dragging the Filler balls around while they inflate. Most of the strategies for the Flash version involve creating balls near the top of the screen and then using them as shields while they fall. “Finger-blockage” is at its worst when your finger is at the top of the screen, though, greatly diminishing the usefulness of those strategies. While playing those early builds, I did something radical: turned my iPhone upside down. Success! Sure, the balls are floating up instead of falling down–but man it was great to see the whole screen. Asking players to flip their phones upside down is just silly, though, so I did the sensible thing and reversed gravity.


While the ChaYoWo guys were coding the app to my demanding specs, I got to work on another integral piece: ScoreCaching (Update: ScoreCaching has been killed). Most of the iPhone games I’ve played with online leaderboards do just that–global online leaderboards. I wanted a little more than that, so I figured I might as well build it myself. ScoreCaching combines the idea of online leaderboards with geographic location (think Geocaching). Instead of comparing your scores to everyone in the world, why not compare your scores against everyone nearby? Even better, why not leave your scores behind as a mark of your achievement? Just as people used to line up at arcade boxes with the hopes of leaving their initials in the number one spot, ScoreCaching will (eventually) allow players to mark specific places. What’s your high score for the Golden Gate Bridge? What about Times Square? How about the pub down the street? Those features are a little ways out still, but for now you can compare your scores with your friends and those around you.

Filler 2 (Flash)

Kongregate!When Shockwave offered to sponsor Filler 2 as a three-month exclusive, it seemd as if the stars were aligning perfectly. That would give me extra time to finish up the iPhone version, ScoreCaching, and the XBox Community Games version (whoops!). I didn’t quite finish the XBox version (though I did write a hell of a lot of reviews over at Worth the Points), but Shockwave’s exclusive is up and now the rest of the internet can finally enjoy Filler 2. Kongregate, the totally-kick-ass sponsor of the original Filler, is reprising its role for the second go-around. You can play it over on Kongregate here or play it on my site with the link on the sidebar–I’ll start spreading it around the rest of the net sometime next week. If you run a flash portal, feel free to snag the SWF off my site (the one on Kong is site-locked until I verify it’s totally bug-free). If you’d like to license the game for your site (ad-free), drop me a line at

What’s Next?

On top of everything else, I’m also one of the developers in Mochi’s Brave and the Bold Contest. A $4k (minimum) payout is okay, but let’s get something straight–it’s freakin Batman. I watched the original Batman cartoon every day for years as a kid (I was a Marvel kid when it came to comics, but the Batman cartoon was awesome). Getting to develop an original game concept with one of my favorite characters–that’s a sweet deal.  I’ve also got a handful of other finished prototypes in the pipe that are currently on hold until I can clear some of this development logjam.

As always, stay tuned to this space for interesting facts and figures on how everything is doing.

, , , , , ,

No Comments