Motherfucking AS3 Garbage Collection

I like to think that I’m a responsible developer. I make good constructors and deconstructors to prevent memory leaks, I have fairly secure coding habits, I OOP the hell out of everything, and I do everything by-the-book.

Imagine my frustration, then, when all of my games (particularly my latest, Steambirds) have gigantic memory leaks. Like, 500+MB consumption in 5-30 minutes of gameplay.

At first I thought it was EventListeners keeping persistence on my trashed objects. I went through my code several times making sure I nabbed them all and set them to Weak.

Then I thought it was the weak listeners failing. My tests were showing orphaned objects still chugging away despite garbage collection making an observed pass. I’ve banged my head against several walls over the last year trying to figure this out, and in the end always giving up. “Restart the application if it gets slow!” was my only recourse. Flash doesn’t even let you force garbage collection on objects, so I couldn’t hack my way out of it.

Today I found a very interesting blog post. I always knew how the garbage collector worked; it traverses your tree of object references, and identifies any “islands”; that is to say, any objects that aren’t referenced by any variables in your code. At the end of it’s run, all the islands are trashed. What I didn’t know is that IF YOUR ISLANDS ARE BIG ENOUGH, FLASH GIVES UP AND ASSUMES IT’S NOT TRASH.


I guess by complexly-nesting my code, it resulted in something that was too much for the goddamn garbage man to handle. My games essentially think any object I ever create is for HOLDING ON TO FOREVER.

If you want some more technical data, I highly recommend you check out Tom Mason’s blog post on the topic. It was eye opening, to say the least. But now I have to go rewrite a shit-ton of code.

43 Comments

SteamBirds in User Comments

  • “bad” – dragonboe
  • “Kiss Your A** and hope for the best thats what I did” – LtKillaMonkey
  • “uff” – MexicanJudge
  • “quite fanny” – CIANI
  • “This is idiotic. 4/5″ – Magilvia
  • “Educational! There’s history and trajectory physics.” – NoThln6n3zZ
  • “Also, it’s awesome how everything stops every few seconds while you figure out what to do next, like in life.” – Egoid
  • “Can’t tell if this follows real history or not.” – Tee3
  • “It reminds me of Star Fox” – Ragic
  • “Turn based dog-fighting. How exciting. NOT.” – ShadowBot
  • “1939 saw the NUKING of Paris? SAY WHAT, VIDEO GAME?” – A-SCALE
  • “ugh. i hate games like this that make things like planes take 100′s of bullets and still survive… especially in WWII. these things would take about 10 rounds they would go down because they could not manage to put That much armor on a single plane” – NiteMaster2
  • “next time change history by having F-22 Raptors in 1956!(sequel)” – TheSherriff
  • “zeplins were used in ww1 not ww2″ – amp456
  • “one of the worst games i played in a while. maybe the worst game i played this month…i know a lot of people like this game and that your making a mmo based of this, but i have to say, its crap.” – Sonic33Blaster
  • “extreme boredom” – jotarkka
  • “In answer to robot monkeys, it’s called “steam”birds because they’re using steam powered guns, if you read the info on each level, you’d know that :D” – The Beast252

User feedback has been overwhelmingly positive, actually. I had to really dig to find these gems.

5 Comments

SteamBirds in the Media

Since it launched back on March 2nd, SteamBirds has been getting attention from just about all the blogs in my feedreader. Because I’ve already lost track of a few, I thought I’d list a few of the quotes I’ve pulled!

The first to mention it was of course Dan Cook @ Lost Garden. I hear he had an inside tip about the launch. :)

If you like it, you owe Andy a beer.” [read more at Lost Garden]

SteamBirds is a rare treat.” [read more at Lost Garden]

Next up, I got an EMail from Tycho @ Penny Arcade where he slobbered all over *me*. I’m not used to role reversal! This will probably be one of my cherished lifetime moments; achieving Penny Arcade’s front page is just astounding.

The current version of Steambirds lies in wait to rob you of your Monday morning.” [read more at Penny Arcade]

Gamasutra featured SteamBirds in a game round-up:

Fans of strategy games like the Advance Wars series would feel right at home here, with the only differences being that combat takes place in the skies and rigid tile-based movement has been done away with.” [read more at Gamasutra]

I was surprised to see a big fancy publication like The Escapist feature us on their Alt-Escape segment:

It’s a perfect way to waste time on a lazy Friday afternoon.” [read more at The Escapist]

IndieGames.com was very fast at picking up the game, and even linked my trailer (which is somewhat rare, interestingly). IndieGames said that only one mission was playable in the bonus section, when in fact all you have to do is unlock the other missions by beating the first. *slaps forehead*

There are also bonus levels to attempt for anyone who has completed the main campaign mode, although only one mission is actually playable at the moment with more content to come in the coming weeks.” [read more at IndieGames.com]

Rock Paper Shotgun also picked up the game, complete with an awesome Pun-titled article (who says journalism is dead?!):

ALL YOUR STEAMPUNK SPEAKS OF IS FEAR OF THE FUTURE. ALSO, PAST.” [read more at RockPaperShotgun]

1 Comment

Gaming World: It is my first anniversary

GDC 2010Ahh, finally back from the Game Developer’s Conference in San Francisco. About halfway through the conference I stumbled upon the realization that it is my “Gaming Birthday;” right about this time in 2009 I wrote an article about how GDC Inspired me to make my first game.

I’ve done a fairly in-depth post-mortem of 2009, so I won’t go blabbing about the past again. Suffice it to say that it feels like a dozen years have gone by when it has in fact only been one; I feel like an industry veteran; I’ve been invited/spoken at 4 different events; and I’ve even been hosted on The Independant Gaming Radio Show twice (once just last night, about GDC and Steambirds; the other back in January about community management).

The one thing that has really stood out for me in the last year, though, is the new friends I’ve made. Experiencing the legendary Indie Love firsthand. Excuse me for a moment while I go and embarrass myself and several others:

I still remember a year ago, when I was considering whether or not I should attend GDC at all. I remember sitting there at the back of the Independent Gaming Summit talks, wondering who all them friendly-looking folk at the front were. But now, each of those astounding folks are my friends.

I really have to give credit to three people in particular:

  • Colin Northway: Convinced me to go to GDC in the first place, and while at GDC, convinced me to write my own game.
  • Phil Hassey: Inspired me to make my first game while at GDC (after learning he made one of my favorite games, Galcon, in only 48 hours).
  • Greg Wohlwend: Showed me how amazing and easy it is to collaborate on projects; working with him convinced me that this could be a career and not a flirting interest (and for making the best game trailer I’ve ever witnessed).

If it weren’t for those three chums, I’d not have the chance to be sitting at the IndieLove campfire in Derek Yu’s backyard. I wouldn’t have added around 60 new people to facebook in the last few months alone.

Heck, I just spent a week sharing a room with Indie Gaming’s Patron Saint of Passion, Devotion, and Chemicals: Phil Fish.

A final shout out has to go to Matthew Wegner, who usually escapes the focus of my blog thanks to his undefinable grandiosity. Matthew seems to be everything and everywhere: Organizing IGS, operating my favorite blog, running an awesome company, and starting TIGRadio, just to name a small fraction of his resume off the top of my head. Yet at the same time, he isn’t up on stage like some guitar-slinging rock god; he’s more the guy in the booth that lights the entire Indie Stage. I’d venture to say that the fundamental Indie landscape would be different without him.

But enough with all these blowjobs.

I brought my camera with me down to SanFrancisco and got some excellent shots of some architecture. I’m not usually a fan of architecture, but sometimes a particular view or piece of scenery will strike me as particularly enjoyable. You can see my entire (short) GDC photoset here, but I’ll post one of my favorites:

I love that without any context, this photo goes quickly from “neat” to “striking” — in my mind, anyway! :)

SteamBirds is doing excellently, to say the least. I don’t want to post my post-mortem or stats yet, because it’s still collecting me dollaz. I’ll probably post something closer to the end of the month.

0 Comments

SteamBirds Sells!

I guess saying “Steambirds Sells” is a bit of a misnomer, but “has been licensed!” doesn’t sound as cool.

Last Wednesday SteamBirds went live on ArmorGames.com! Click here to play it.

I’ll make a retrospective post with sale details and game performance in a week or two, but right now the game is doing very well. 93% of players play for over 2 minutes, which is an incredibly low bounce rate. The average person reloads the game 6 times, 15% of people hit the mute button, and 1.5% of people check out the credits page. Game has been out for around 4 days and I’ve already hit 500k game loads, and close to 5 million level plays.

Whee, stats!

17 Comments

Shots from Across the Street

Triage (get it?)There’s an awesome park across the street from my place; nice little hill covered with plants and trees. I often take my camera out there but haven’t uploaded any photos from my excursions yet.

This here is one of my favorite trees on the place. It’s sitting right near the top and stands fairly alone, contrasting against the sky, as you can see. (click for larger image).

I also found a nice winter berry bush, and a collection of flora from the base of the mountain.

0 Comments

Bayesian Ratings: Your Salvation for User-Generated Content

I’ve been meaning to write this article for about 6 months now, and it’s about time I got it off my chest. I’ll preface this by saying I don’t “know the lingo” of statistics and might get a few phrasings incorrect, but the article should otherwise stand on it’s own.

The Problem

Protonaut is a game that relies (in a very hard way) on user-generated content, and I wasn’t sure how to approach the presentation of it. As Community Manager for Fantastic Contraption, I’ve watched the community struggle with content management. Common questions or feature requests would revolve around a few key issues:

  • How do I find the latest good levels to play?
  • How do I find the best all-time content?
  • How do I know which of my levels were the most popular.. in the last week?
  • What are some promising newly-created levels?
  • What new levels are complete crap?
  • What authors produce the best levels?
  • How can we deal with people who always down-vote content other than their own?
  • And conversely, how do we deal with people who only up-vote their own content?

Even with me diving into Google Analytics for the whole domain (or using some third-party applications), most of these questions are impossible to answer; even those that came close were very difficult to deal with in an in-game setting.

The Common Solution

Most games implement the most basic ranking systems: offering a choice of (usually) 0 to 5 stars, and allowing you to sort the resultant list of median scores. This, unfortunately, has dozens of problems. The only real value in such systems is finding the “best score of all time,” and even then it does it poorly (not accounting for chronic upvoters or downvoters). Not to say that it isn’t easy to implement; indeed, it could hardly get simpler, and any lazy programmer such as myself will argue that “good enough is perfect.” But is it?

Each ranking system has several components; the voting system, the ranking system, the sorting system, and an optional adjustment system. There are various pros and cons to consider in the foundation — the ranking portion — of your system: Should you simply have a “like” button, as in your Facebook feed? Should you have upvote/downvote system? Should you have a scale of 3 stars? 5 stars? 9 chainsaws? 10 stars?

Each choice you make in the construction of your content-feedback system ads to a layer of complexity and results in a whack of cascading consequences, that will likely change your subsequent decisions. What looks simple on the surface can ruin your community-friendly ecosystem, and what looks dauntingly complex is shied-away from by most developers.

Thankfully, many people have done the thinking for us, and this will be one more article for the mix.

Understanding the Consequences

There are dozens of research papers out there on some of the different voting styles. I’m too lazy to make it convenient for you by linking some here; it’s been 6 months since I’ve read up on them, but feel free to Google them for yourself. Some of the key takeaways from actual research have been:

  • Given a neutral choice in addition to a positive/negative choice, neutral will be chosen way more often than the others. Since neutral is a non-vote that hardly effects the statistics, it’s just giving someone an “out” from making a decision.
  • Given a large-scale choice (such as 1-10 stars), people will either vote to the extremes (1 or 10) to game the system, or vote 7. “7″  votes are so statistically huge that any 10-star system skews towards it; it becomes the new “neutral” and is the “safe vote” that makes everyone feel happy. There’s even a running joke that game magazines only ever rank video games “7/10″.
  • Given a “like” button with no alternative, or only positive-scale responses, it’s hard to generate true statistics (there’s no way to differentiate between “all-right” and “this content is so horrible nobody should ever see it”).
  • After your user base reaches a large enough size, more and more people will take to “strategic voting”; voting the maximum on things you like and minimum on things you dislike.
  • Giving an incentive to voting will drastically increase your response rate, but also predictably produce spam votes, or votes “just for the reward” without any thought. It will also amplify any of the above listed effects.

I strongly recommend you take a look at your planned voting style and do a full bout of research on it. Check out Google Scholar and find some actual results, instead of going from what your heart says. Or better yet, build a system however you want and observe the results, and change them to suit your needs.

How Bayesian Sets Up The Stage

A Bayesian Rating system tackles most of our problems head-on. Let’s step through how it works.

Let’s say we’re dealing with user-generated levels in a video game. A brand new level shouldn’t be rated at 0; users will never find your new content, as it would be buried under all your crap content. Likewise, it’s unfair to make new levels with the maximum possible score, as people will spam bad levels just to remain at the top of the list. Most often, people will set the Bayesian rating to be somewhere in the middle – say, 50%. This way, every level starts off with a “fair chance”.

As more and more people vote on your level, the score will start to normalize towards the actual statistical median instead of the artifically-engineered 50% rating. This way, if a single user-made level gets 10 up-votes in a row, it’s ranking will appear as such:

  • 50% with 0 votes
  • 60% with 1 vote
  • 80% with 4 votes
  • 90% with 8 votes
  • 100% with 10 votes

The magic behind the Bayesian system is this weighting (or dampening) system. It’s influenced by what is referred to as a “magic number”; this figure tells you how many votes need to be cast before the Bayesian weighting is no longer in effect, and the score truly is a median of all the other scores.

The weighting system actually takes into account the variety of scores, as well. If you only have two levels, one gets a 75% score and the other gets a 30% score, one will show up as 0 and the other as 10 stars. There is always a minimum and a maximum represented, and everything in between is taken as a scale of those two figures. This solves a great deal of weighting and balancing problems with large-range systems, and compensates for situations where nobody has ever voted 100% or 0% (or where everybody votes for a narrow range of percentages).

Essentially, what the weighting mechanic is doing is “making up” votes for things that don’t have enough votes to get real meaningful data to start with.

How We Can Take It To The Next Level

It’s not just that simple though! We can crank this baby up to the next level so you never need to tune it yourself ever again.

For example; who says 50% is the optimal “starting value”? Isn’t it more fair to make the entry-level rating the median of all current scores? Why not! You can calculate your new starting value on-the-fly by looking at all your current content. This means that every user-contributed piece of content will have it’s relative scores affected by every single vote cast.

And the magic doesn’t stop there; why hard-code your magic-number to something like “10 votes” when you can make it a variable as well? Make the magic number equivalent to the median number of votes across all your content. This again will make the scores of everything change with a single vote cast, but it helps corral fringe cases and unexpected userbase expansion (or contraction) as well. Imagine you run an online store where almost everything gets a 60% vote. Then all of a sudden, one particular item you have for sale attracts a huge bag of traffic and everyone votes 100% on this new product (without casting votes on all your older stuff).

As each vote is cast, your older products would normally be scaled farther and farther down the “top” lists. However, they are also sinking deeper and deeper into the “magic number” and the score is being balanced more towards your 0-vote figure. This figure in turn is going upwards, as the new product is heavily increasing your median score!

The system is amazingly resilient and self-balancing. If a lot of levels are made and nobody votes, the system compensates. If a single item gets a lot of votes, the system compensates. If you have a thousand votes on every item, the system compensates.

Protonaut uses all of these tweaks for it’s level ranking and system generation. To keep my database from being fried, I recalculate my Bayesian constants once per day (instead of on every vote being cast), so as the clock turns over at midnight you will often see levels rise or drop in ranking to reflect the day’s votes.

Furthermore, Protonaut looks at your average vote cast and uses that as a weight against how much your vote should be “worth” in the first place. This makes everyone’s vote count, but chronic upvoters (or downvoters!) will be technically punished for their preference.

This also helps stem runaway-voting on levels; a popular level floats to the top of the list, everyone plays it, and everyone votes it upward because it’s good — well if you only ever vote up, the system knows this and scales your votes back a bit. Players that explore the deep content of the game (as opposed to just browsing the top ten list) get a heftier vote. If that wasn’t fancy enough, the average-user-vote value is bayesian-ranked itself!

And BAM — there we have it! A benefit for voting, that self-regulates and balances as well. It’s a whole lot harder to game this system, and it rewards the true fans of the game.

Furthermore, I optionally artificially reduce each Bayesian-generated score by how many level IDs precede it, thus making it an excellent adjustable time-based system (a truly epic level could stay at the top of the list, but most levels will disappear in the natural “churn” of things).

It really is a beautiful system. And easy to implement, too. Taken from the link below, this is the basic bayesian formula:

Use this equation:

br = ( (avg_num_votes * avg_rating) + (this_num_votes * this_rating) ) / (avg_num_votes + this_num_votes)

Legend:

  • avg_num_votes: The average number of votes of all items that have num_votes>0
  • avg_rating: The average rating of each item (again, of those that have num_votes>0)
  • this_num_votes: number of votes for this item
  • this_rating: the rating of this item

Some links for further reading

Have any questions about Bayesian ratings? Used them yourself? Success story? Horror story? Post it to the comments! I’d love to hear about it.

8 Comments

Comparing Open vs. Closed Development

Open Development

Open Development is a practice where, in game design, many builds are presented to the end-user throughout the design stage (well before beta or even alpha stages), and typically a forum or blog feedback system is in place for discussion and inclusion of the public. The idea is to get feedback very early — well before things get sent down the production river, and to ensure you’re making a product that resonates with your audience.

Studios like Data Realms (Cortex Command) and Wolfire (Overgrowth) are famous for this development style. I also used this method for the development of Space Squid.

The major advantages of Open Development are Marketing (you can build a following early), User Testing, and early direct-feedback to guide your design. For me, open development helped gave me confidence that what I was making was indeed worthy of this Earth.

The biggest disadvantage (for me anyway) was simply time. Blogging every day about changes to Space Squid was a chore that took up more effort than I’d like to spend. There’s also the danger that your development gets sent down the wrong path; after all, the public isn’t very good at Game Design. Larger studios say that secrecy is a necessity, though I’m not sure why. Something to do with marketing and advertising budgets? Legal concerns with who gets credit maybe?

Open Development also puts a bit of pressure on you to keep the project in a playable state. For Space Squid, I was trying to have a playable build every day — which means no half-finished code, no “I’ll finish this up tomorrow.” This lead me to cut some corners I probably shouldn’t have.

Closed Development

Closed Development is what people probably think of as the status-quo. The public is rarely aware the product even exists until marketing begins, and public input is not sought. Developers are free to design the game as they see fit, and will sometimes do closed-testing (paid user feedback testing, closed alphas/betas, etc.) if the are smart.

Every single big-name studio I can think of utilizes this method of development, and some independent developers will end up making their projects this way just because they don’t want to spend their time blogging. I used this development method for Steambirds.

The disadvantages to closed development is the lack of constant, unbiased, public input. A lot of time the user testing is done internally (giving biased results), and a paid Game Designer is simply trusted to know what he’s doing (and if he doesn’t do well, it is assumed he doesn’t get as much work in the future). You also miss out on the long-term marketing strategy (building up a fan base, making people feel included in the game development cycle, etc).

A huge advantage, though, is being able to keep your head down and just getting it done. No worrying about every-day release schedules, being able to have code checked out for weeks on end, no having to itemize and publicize every single thing you do. And if you (and your game-design friends) are absolutely convinced the gameplay is perfect as-is; why bother bringing the public in on it?

Except, of course, the danger that you’re wrong? :)

What’s Better?

Neither! As usual, things aren’t black-and-white. I don’t have marketing budgets or legal issues to worry about, but I’m also too damned lazy to blog every single day. I value the input and feedback of the public, but the public often doesn’t understand what I’m trying to do, and can’t see past a few visual glitches to the gameplay underneath.

While developing Protonaut I posted once a week instead of once a day. I often pooled major new ideas into a big release that I could then do the equivalent of alpha-tests on. I spent a long time with the game in a not-working state, but I also kept it to myself and let the fans play with the last stable build. It wasn’t quite perfect, but it was a better shade of grey.

Designing to your Strengths

Everyone has their own preferences and their own styles. I know I’m a people-person; I like to post blogs and I like hearing feedback (and can take criticism) from the public. I also know I have a particular weakness for trying to incorporate everything the public suggests; every idea is an excellent one, and the scope or original vision is quickly lost if I don’t keep myself in check.

I’m still working on finding a balance. Protonaut was still too open for my tastes and SteamBirds was way too quiet. At least I know where I’ve been, and the direction I want to go. All I can ask of the other developers out there is to actually try both extremes before making a decision on where you should go next!

3 Comments

Blog Relocation: Complete

Finally! Got my blog moved over to my own domain. My old blogger account can now die. Farewell, Aught Nine; it was nice while it lasted, but it could only last a year.

I’ll be working on making this site themed up nicely and have some links to my games. For now, why don’t you check out my SteamBirds trailer?

0 Comments

The End of Aught Nine

Well, the year has come to a close. I started this blog knowing it would only last a year — but don’t worry! I’ll be firing up a proper blog on my own website (andymoore.ca) soon. I’ll make another post here to announce it, and I’ll see about exporting these posts there.

Protonaut is an exercise in open development. I make a blog post just about every time I build a [working] update to the game, involve a lot of people in obtaining feedback, and have a lot of fun doing it! I haven’t been updating recently because Protonaut has been on hold (dev ramps up again soon!) and I’ve been working on a new, top-secret project.
It’s just an experiment: Switching from Open development to Secret development will allow me to get some perspective on how the two systems work with each other.

I think a retrospective is in order! When I first started this blog, I made some goals for myself. Here’s how they shook out:

  • I will finish moving out of my house in this next week.
    COMPLETE! I am now living with my girl, Aubrey, and have been quite happy.
  • I will sell or give away most of my material goods by February 1st.
    MOSTLY COMPLETE! I have to say that living out of a backpack is quite liberating. When I only really own a backpack, clothes, and a laptop it simplifies life quite a bit. I have a few other odds and ends that I’m still trying to sell or holding on to — a Wii and a Projector to watch the occasional movie on — but I’m happy to ditch it all at a moment’s notice.
  • I will continue working on my various web contracts to pay for my bills.
    DONE! I’ve gained new exciting contracts over the last year.
  • I will make an effort to cut expenses.
    COMPLETE! Aubrey has taught me the magic of making my own food (gasp, shock). I’ve actually got a handsome sum in the bank right now! I’m quite proud.
  • I will finish all of my half-finished projects by April 1st.
    FAILED! I think this one wasn’t destined to win through. It only makes sense to finish a project if I actually have plans or interest in them… What I ended up doing was take all my half finished projects, archive them, and promised not to look at them ever again until I’m sure I need them.
  • I will continue brainstorming at least one new application or game per week.
    KINDA. I think what I was aiming for with this goal was to make sure that I was constantly thinking and working on innovation and revision, rather than focusing on and over-developing single (flawed?) applications. I think I successfully avoided this, but in a way I didn’t expect: I ended up picking a single mechanic and constantly revising and innovating on it, often changing the premise of my application several times before completion.
  • I will select a Flash Game from my list and create it by November 1st.
    LOL. I definitely succeeded here! When I wrote that goal, I had zero actionscript experience and had only toyed with Flash itself for a few hours. My first game was complete in 30 days (finished May 1st), and I’ve now made a few more.
  • I will select a travel location and get there by September 1st.
    FAIL! Looks like real life got in the way of this one. Despite selling all my posessions and keeping my budget low, I don’t quite have enough money squirreled away to travel somewhere with confidence in my long-term survival. :(
  • I will spend New Years 09->10 in a foreign country.
    FAIL! As a successor to the above goal, it couldn’t succeed.
It turns out I was quite a bit more prolific than I thought I would, with flash applications. Here’s a bit of a timeline:
  1. In January, I started this Blog with high hopes. I had done no industry research and had no idea what was going on, really; I was aiming for the future blind.
  2. GDC March was the big turning point for me. I met up with the talented Greg Wohlwend, who I would later work with on projects, and got a massive dose of what was possible and how the industry worked in general. I was particularly inspired by Phil Hassey, Petri Purho, and other rapid-prototyping game developers.
  3. Space Squid was my first game, finished May 1st, 2009. I gave myself exactly 30 days to learn Actionscript, Flash, setup a dev environment, and build a game. I ended up going through around 20 core-gameplay revisions in that time, and posted most of them to this blog.I still look back at SpaceSquid fondly. There are several really good, fun game mechanic prototypes in it’s development cycle. I’m sure I could turn the basic premise into a set of a dozen fun games.

    Sadly, SpaceSquid wasn’t picked up by any sponsors or portals (for money). The gameplay lends itself to a quick 2-minute playthrough, with little motivation to move on. I’m happy I only spent 30 days on it, and I look at it like an excellent learning experience.

  4. Protonaut is still in development, but is my first mega-project. It has a lot of high hopes and future plans, but is currently in the last phases of development. Greg Wohlwend approached me to do the art on this one, and he’s been an excellent source of collaboration for design philosophy and mechanic tweaking.I’m still convinced Protonaut is going to be a successful title, earning me moneys. I really want the product to be juuust perfect though; it’s only going to have one day in the spotlight when I decide to start marketing it. A test-run mini-launch later in the year showed that people enjoyed the game and the mechanics, but were ultimately disappointed in the level selection. I’m going to have to get in there and whip up some premium content…

  5. GDC Austin was an absolute blast. Though the venue was a bit lacking compared to the San Francisco version earlier in the year, the people were awesome. A cozy, intimate set of indie devs all hanging out and having fun… Such joy. It was there that I met DanC, who I later started working with.
  6. Military Contracts are fun and very high paying (military flash apps? lol). I have to give huge thanks to Greg Wohlwend for passing on this job and handing it to me; it’s funding my next few games. :)
  7. The Wooden Fleet is a game I designed for LudumDare #16, the 48-hour-game-jam. I wanted to try my hand at writing a game in such a small timeframe, from scratch, doing all the assets myself…I ended up being pretty lazy about it. I watched a movie or two, I slept normally, and spent the weekend hanging out with my girl. In the odd hours of spare time I had, I ended up making a working game idea, but it is incredibly lacking in polish. Things like you can’t move diagonally, your support ships spam out due to a bug, and your movement is way too slow.

    I really enjoyed working on it though and perhaps sometime in the future I’ll revisit the project and make it playable.

  8. SteamBirds is my current Pride and Joy, and this should be the first time I’ve mentioned it to the public. :) This is my super top secret development, being made in association with Daniel Cook (DanC of LostGarden).SteamBirds is really close to my heart because the game type, mechanics, theme, genre, content, and story are all things that I truly love. This is a game being written by me, for me — obviously with modifications to make it more marketable. :)

    It’s currently scheduled to launch in January sometime. The first iteration is very near completion… I’m excited :)

There are several little things I left out from the list, and a lot of new projects and collaboration requests going down in the next few months. I daresay this is becoming a full-time gig!

All I need now is some bankrolling success!

In other news: My personal website, offering up my IT services, has resulted in zero business. I want to turn it into a proper site that showcases my work and houses a more permanent blog than this one-off AughtNine gig. I’ll post some details once I get something lined up.

I just hate designing web pages, is all. :( Maybe I can pay someone to do it for me…

3 Comments