The Great Porting Adventure: Day 2

Where's the Start Menu on this thing?

Yesterday, I spent a chunk of time looking into various possibilities for porting my XNA-based game to non-Microsoft platforms like iOS and OSX. In the end, it seemed like learning Unity would be a prudent move and now would be a logical time to start that process.

In true indie fashion, I’m calling an audible.

I wrote off MonoGame rather quickly without much justification, other than saying it felt too much like magic and I would have trouble resolving any roadblocks I encountered. While that may be true, I think the benefits outweigh the small price of experimentation.The biggest potential upside, other than reusing 95% of my codebase, is that I can maintain a single copy of the game moving forward.

After all, if the MonoGame solution works I should be able to get my game running on something like OSX in a very short time. I figure that’s worth trying out. I’ll spend today setting up my borrowed MacBook, getting my environment in order and running through some MonoGame examples. I figure the OSX port will be a good first test, since it will play identically to the Windows version.

Maybe the first 99% of porting with MonoGame will go smoothly. Maybe the last 1% will prove impractical or impossible. Let’s find out.

Meta-Platforming

There comes a time in every XBLIG developer’s life when they ask themselves, “How can I put this”

“onto one of these?”

This year, I want to hit more platforms than just the Xbox LIVE Indie Games market. My first priority is PC, specifically Windows. In this context, XNA is fantastic. I basically get a Windows build of my games for very little effort (some resolution management and key binding support). But what about OSX and Linux? The Humble Bundle (and the feedback I’ve received) has shown that these are non-trivial segments of gamers.

And then there’s mobile. Even I own a smart phone now, so that means pretty much everybody has one.

So if I’m going to go through the trouble of porting, I figure I might as well shoot for the stars and try to hit as many platforms as possible.

Of course, XNA doesn’t “just work” on these platforms. Porting XNA games has been done before by developers like Radian Games (Super Crossfire) and Fun Infused Games (Hypership Out of Control iOS), so it’s not completely foreign territory. Here’s a quick look at my current thinking:

Goal: Port DLC Quest to as many of the following as possible: iOS, OSX, Android, Linux

Approach #1: Native iOS Port

Rewrite the game from scratch for iOS.

  • Pros:
    • Free (other than iOS publishing fee, but all approaches will include this)
    • Potential for good/great performance, as this is as close to the metal as I can get
    • Learn a lot
  • Cons:
    • Most work. Total rewrite.
    • Have to learn Objective-C
    • Doesn’t directly allow for publishing on Android or Linux
    • Not sure how to port to OSX either

Thoughts: This is the most work, to hit only some platforms. But there’s no “magic” – I would know how everything works.

Approach #2: Port to Cocos2D or similar engine

Rewrite the game using Cocos2D as a base.

  • Pros:
    • Free
    • Save considerable time rewriting engine
    • Works on iOS and OSX
  • Cons:
    • Have to learn Cocos2D engine
    • Still have to rewrite game in Objective-C
    • Still does not directly publish to Android or Linux

Thoughts: Similar to above, but cuts out considerable engine work. But I already have an engine anyway.

Approach #3: Convert using ExEn, MonoGame, etc.

Use a MonoTouch based library/framework to do the heavy lifting and keep my codebase mostly intact.

  • Pros:
    • Use existing codebase, kinda (game needs adapting for touch devices/screens anyway)
    • Might be easier to maintain multiple versions in one solution
    • Write in C#
  • Cons:
    • $400 for MonoTouch (and an additional $400 for Mono for Android)
    • Does not directly publish to OSX orLinux
      • Whoops, apparently OSX is supported. Wizorb also managed a Linux version, so that’s a ‘maybe’.
    • Likely won’t work perfectly, require learning how MonoGame works to fix it

Thoughts: This feels like a magic bullet approach. I’m wary of things not working perfectly and then having to grapple with an unknown technology to try to fix it.

Approach #4: Unity

Re-write the game with Unity and reap the multiplatform benefits.

  • Pros:
    • Write once, hit iOS, Mac, Android, Flash. Possibly even Linux soon.
    • Get experience with Unity, which seems like a sensible business choice
    • Write in C#
    • Can potentially reuse some code
  • Cons:
    • Need to rewrite at least some of the game
    • $400 each for iOS and Android publishing. Potentially $1500 for Unity Pro + $1500/iOS/Android if needed.
    • Large learning curve for the “Unity way” of doing things
    • Likely have to invest in SpriteManager or similar library
    • Basically magic

Thoughts: Unity seems to make the most sense, but I’m also reluctant to use it because it feels like I give up too much control.

And the winner is…

Looking at this (and having slept on it), it seems like all signs point to Unity as the way forward. I’m not a big fan of the “magic” involved with Unity but that’s likely largely attributable to a lack of understanding. I’ll give it a shot and see if my reluctance is warranted or not.

I think the last time I used a Mac for more than 5 minutes was with an iMac in computer class over a decade ago. This oughta be interesting.

You said it dog.

Going Loud Studios: 2011 Indie Dev in Review

Well, that’s 2011 finished. This marks the end of Going Loud Studios first full calendar year of business, so I feel it’s time to take a glance back before moving on.

2011 Review

The Games

I released two new games in 2011:

Lair of the Evildoer (June 2011):

DLC Quest (November 2011):

Both games were picks for “Kotaku’s Favorites” list on the dashboard, which was sweet.

Zombie Accountant WP7 goes free

It might also be worth noting that the Windows Phone 7 version of Zombie Accountant quietly (very quietly) had its price slashed from $1 to $0 in… July? To be honest, I did this just to see what would happen – the game was long dead anyway. I kinda forgot to follow up on it though, so here are the stats:

The Awards

Frankly, I think it’s awesome that I even have anything to write here. DLC Quest won Official Xbox Magazine’s Indie Game of the Year 2011.

Social

I’ve been making indie games for over a year now but I only looked into my city’s “indie scene” in the past few months. Turns out, it does exist! I started attending the monthly meetups put on by the fine folks at Dirty Rectangles which has been a ton of fun. Locking myself in a room to make games has been reasonably successful, but it’s great to meet new people and talk about making games in person. I look forward to doing that a lot more this year.

Sales

Or, “Why you came here”. Here are some stats!

Quick analysis: pretty acceptable! Granted, it’s pretty much all on the back of DLC Quest at the end of the year, but I’m okay with that. Not taking a loss on the first year of business? Sounds good to me.

Presence

Interviews! Podcasts! Print coverage! Youtube views! Twitter subscribers! 2011 was a great year for establishing myself on the internet. A few highlights include having some featured blogs at Gamasutra, coverage at big sites like Kotaku, Game Informer and Games Radar, a brief spot on Attack of the Show on national freakin’ television, participating in a few podcasts, and numerous interviews, including one in print in the January 2012 issue of OXM. I made some great contacts along the way too. The Going Loud Studios Twitter account (@WeAreGoingLoud) and Facebook page have also seen a nice bit of growth, sitting at 410 and 156 followers respectively. Oh, and the trailer for DLC Quest has racked up over 31K views so far.

So not quite famous, but it’s a nice start 🙂

Looking Ahead

We’re already three days into 2012, so enough with the retrospective! Here’s a quick look at some thoughts for the upcoming year.

More games

This is a no-brainer. Everything above comes from making fun games that I want to play. That’s the driving force that has gotten me here and it’s the passion to continue making games that will take me forward. I’m itching to make something new right now!

More platforms

If you study the releases above carefully, you’ll notice that 100% of all games I published in 2011 were for XBLIG. That’s a market that has its fair share of problems and has a bit of murky future. Even without that, it just makes sense to spread my games to more places where people can play them. PC is my prime target – heck, I have PC ports of both 2011 releases essentially ready to go. 2012 will be the year when I start publishing beyond the Xbox.

Diversify!

More platforms is great, but I’m thinking of ways to take diversifying a step further by exploring things beyond just making games. Don’t get me wrong, making games will always be first and foremost for me. But there are some complementary things I could be doing to spread myself out. At the moment, I’m thinking along the lines of more blogging and YouTube videos. There are benefits to that kind of exposure that might not directly generate income, but are useful for expanding your contacts, popularity and so forth. I don’t have any concrete plans just yet, but it’s something I’d like to experiment with this year. For science.

Game jam!

Can you believe I’ve never participated in a game jam? Everybody always says you should do that. I’m going to do that.

More learnin’! More seat-of-my-pants adapting!

As always, I plan on continuing ‘being indie’ in the philosophical sense. I picked up some great books on game design and engine architecture over the holidays that will be going to good use. Always learning, always trying new things, and always willing to throw out all of my plans if the need arises.

It’ll be nice to revisit this post a year from now and see how 2012 measured up. Now, follow me on Twitter @benkane!

Xbox Dash Update Holds Out Olive Branch to Indies, Twists Knife

New dashboard update! Has the sky fallen on Xbox LIVE Indie Games? Let’s take a look at what changed:

What We Got:

Bing Search

Indie games show up in Bing search results. If someone knows your game, they can find it relatively easily. A big addition that could change the effectiveness of advertising online and word-of-mouth.

Rate from Library

It’s now much easier to rate indie games since you no longer have to go back to the marketplace. I think the percentage of users that rate games will increase, and hopefully the effect of “ratings manipulations” is diminished.

Related Games

Each game now has 3 (expandable to 10) additional related game suggestions. Should help the service as a whole, though you see a lot of the same titles being suggested. Still, this is a really nice addition.

Included in “Picks”

The Games Marketplace now has 3 (expandable to 10) “picks” based on a user’s history. This could help expose more indie titles – the picks seem to include indie titles surprisingly frequently. However, the selections seem pretty bizarre. If the suggestion engine can settle down, this could be a nice win for a small subset of indie developers.

A High Level “Indie Games” Tile

The current “Indie Games” tile is actually in a pretty good place, even if you have to wait for the carousel to rotate (or do it manually with RS). If this was a permanent tile, I’d be happy. As it stands, it feels like it’s only a matter of time before another promo is rotated in.

Included in Quickplay

I think this is new. The Quickplay tile on the main page of the dash (and in the guide popup) now includes indie (and AppHub-deployed) titles. A nice-to-have, but it cannot be seen by anyone but you.

New Releases List Now Has 100 Entries

I suppose this is good. I’m referring to the “Games -> Games Marketplace -> Games -> Indie Games -> New Releases” list here. There’s also “Games -> Games Marketplace -> Games -> Game Type -> Indie Games -> New Releases” that has ALL indie games sorted by release date. Yikes.

 

This is the new indie games section! Well, one of them.

 

What We Didn’t Get:

Cloud Storage

No big surprise here. Would have been nice, but really not necessary. Probably would have made peer review a bigger headache anyway.

Beacons & Activity

Beacons may have helped fledging mulitplayer indie games maintain some sort of community. Activity would have been a nice way to spread the word about popular games in a viral manner. Indie games do not exist as far as these features are concerned.

Included in New Releases, Most Popular, Genre and Title A-Z list with Other Game Content

As before, indie games are not lumped in with “real” games, XBLA, DLC, Games on Demand or Xbox Originals. Not surprising, and I don’t genuinely expect Microsoft to give indie games the same status.

This is the other, permanent indie section. It's just one big list, with four sorting options.

What We Lost:

Ability to Filter by Genre

Genre is simply gone as far as indie games are concerned. There is a Genre list in the Games Marketplace, but it does not include indie titles. The only way to see an indie game’s genre is by looking at the full game description.

Ability to Quickly Sort by Title

If you want to browse indie games, you get one big list of all 2000+ titles. You can sort that list by Release Date, Most Popular, Rating or Title – but that’s it. Want to find Zombie Accountant? Sort by title, scroll through almost 2000 games and presto! No more jumping to a letter.

Visibility

Indie games used to be a category on par with XBLA and Game Demos. Those categories have changed, but indie games didn’t get an equivalent spot on the virtual shelf. No game content has as little visibility as indie games.

If the Carousel Tile Goes Away…

The “top-level” tile in the carousel is probably what people think is THE indie section. To me, that’s the temporary section that will disappear as soon as Microsoft decides to run a different promo in its place. Then what? We have one big, sortable list. And that’s it. No Kotaku’s Favorites, no contest finalists. Why the “Game Type -> Indie Games” tile doesn’t link to the same section as the carousel tile is beyond me.

Update: Apparently the top-level carousel tile is not going anywhere anytime soon. Its existance is a fairly big gesture from the dashboard/marketplace team – thank you to whoever pushed to include it.

My Thoughts:

While I think there are some great wins for indie game discoverability (Bing, related games, picks), the usability of the indie games section has taken a big hit. There’s nothing to browse anymore. There’s no reason to visit. There’s no sense of there even being a place to visit at all, even if you do manage to find it.

Frankly, I’m surprised and impressed at what we got. I think that what we lost is overwhelming though.

Update: To clarify, I think older titles in the catalog will suffer since there’s no real way to browse them effectively. Then again, the marketplace was never really strong in that regard. Support could be better (it can always be better), but if the carousel tile sticks around as indicated, things might not be so bad for new and top performing titles. The lack of Genre filtering stings, but is frankly the one I feel has the best chance of getting resolved.

As always though, time (and data) will tell. But hey, at least it’s not in the Speciality Shop.

What’s Next:

Make a post in this thread in the official feedback forums. Even if it’s just to say that, yes, you do care about indie games: http://forums.xbox.com/xbox_forums/general_discussion/f/2386/t/155168.aspx

Post Mortem: Lair of the Evildoer

Now that Lair of the Evildoer has celebrated its two month anniversary (and dropped off all lists on the dashboard), it’s time for a post-mortem! I haven’t done a sales post yet, but suffice to say that they have been a tad disappointing. Nevertheless, the conversion rate is promising and I’m consequently polishing up the PC version of the game.

This post-mortem is a bit long, but it seems fitting given the length project. Enjoy!

What Went Right:

Making the game I wanted to make

First and foremost, this is the reason why I consider Lair of the Evildoer to be a success. I started out with a relatively vague set of features I wanted to include, and built the game iteratively according to what I felt would be fun. It meant I got to include things that I wanted to see in a game of this type. It also meant cutting things after they had been implemented simply because they didn’t end up being fun. The game may not have turned out perfectly, but it’s a game I am proud to have made.

Avoiding feature creep

With roughly 2 months left to go in the project, I started using PivotalTracker to maintain a list of work items and try to get a schedule under control. Doing so allowed me to easily see how over-ambitious I was being and make some hard cuts to features. Without this self-control, I would still be working on new features with no end in sight. It’s great to have a lot of ideas, but they mean nothing if you never ship.

Iterative playtestings

I experimented using the playtesting feature of AppHub to post weekly new builds of the game roughly two months before I planned on shipping. This gave me some great early feedback, as well as some priceless testers who tried multiple versions of the game. I feel there’s still some work to do here in order to get the most out of playtesting though – much of the later areas of the game were tested infrequently or else ignored completely. You have to be careful not to overstay your welcome and use up the goodwill of those helping you. I think some incentives, cheats to skip sections, and more focused testing (such as only including one specific level at a time) could improve results here.

Entering Dream Build Play

I finally entered the Dream.Build.Play. contest. This was more of a personal goal, but it was satisifying to be able to submit my completed, polished game by the deadline.

Winging it

The first month of development was filled with wild prototyping as I experimented with procedural generation, read up on loot systems, and tinkered with GPU shadows. Even for the next three months, aside from a few key features, much of my development was guided by spur-of-the-moment inspiration on what I felt would be a cool or fun addition. While this almost certainly ate into my development time, it was great to be able to code by the seat of my pants.

More press releases

For my first game, Zombie Accountant, I sent out a press release on the day the game launched. No matter how good your game is, it’s going to be tough to get any sort of attention that way. This time around, I sent a press release announcing the game, another a month later to announce the release date (and more details) and then a final “Go get it!” press release on launch day. This might not be the right balance, but it certainly felt like there was more “buzz” generated this way.

Peer review in 48 hours

Lair of the Evildoer passed peer review within 48 hours, which is the minimum amount of time that a game can spend in that process. I attribute this partly to having a greater presence in the AppHub forums as well as a better relationship with other devs on Twitter. The longer time in playtest may also have helped.

Doing everything myself (or else getting it for free)

Aside from some the music, which was provided for next to nothing by one of my talented and generous friends, everything in the game was created by me or else was used with a permissive commercial license for free. Total cost for the project, other than my existing AppHub membership and my time, was about $100.

Making dev videos

For a few weeks in late development, when features were coming fast and hard, I made weekly videos about progress on the game. They didn’t garner a huge amount of attention, but hearing even just a little feedback was enough to spur me on.

Coverage Get!

More press releases, emails, trailers and Twittering earned me quite a few reviews, articles, giveaways and “picks” on a fair number of indie gaming sites. My “big” breaks include getting picked for “Kotaku’s Favorites” (which came with a spot on an Xbox dashboard list for two weeks) and even a brief spot on Attack of the Show. Seeing my game on TV was a pretty awesome feeling.

What Went Wrong:

Development time

Nice feelings and satisfaction aside, spending 6 months on a project to see this kind of a return is simply not sustainable.

No co-op

The lack of co-op play was not mentioned as frequently as I expected, but I still feel this is the largest omission from the game. It was not an easy feature to decide to cut, and perhaps better planning could have prevented that.

Planning release for E3

Once I got a handle on the remaining work and polish that I decided I wanted to put into the game, I pieced together a schedule for announcements, trailers, peer review, and finally a release date. It took a while to settle on something realistic. It took a further two days for me to notice that my announcements coincided with the pre-E3 conferences by Microsoft and Sony, with the release date itself falling just as E3 ended. Whoops. Back to the drawing board.

Art takes a long time and requires direction

All of the art in the game was created by me. I had no real direction or style in mind when I started creating it. The result is a collection of half-hearted temporary art mixed with haphazard rushed art to fill in the gaps created by overzealous data creation. It’s really easy to add a new monster type to a spreadsheet when you don’t consider the art that needs to go along with it. In the end, graphics ended up being probably the weakest area of my game. Had I recognized this earlier on, I would have opted for higher quality and lower quantity – focus on a cohesive art direction and don’t skip “petty” things like animation due to time constraints.

Boxart + Name = No Trials!

I’m still a bit unclear as to how to avoid this next time, but I do know that my combination of boxart, title, description and screenshots were quite unsuccessful. I have some theories, but the important part is the result: gamers browsing the indie games market were not enticed by what I was selling. Zombie Accountant pulled in over 15000 trial downloads in its first 10 days. Lair of the Evildoer earned just over 5000.

Making dev videos

Making development videos takes a lot of time! I found that a good chunk of my Friday ended up being spent recording footage, making a voiceover, piecing together a video, uploading it and then making a blog post/tweeting about it. Considering the only viewers were other devs, the return for this effort was rather minimal.

Git (and 200mb of hosting)

Having cut my teeth on Perforce in the industry, I was using Git to store both my code and game assets. Towards the end of the project, I ran into issues with disk space and came to realize the horror that is storing large binary files with Git (and expecting to keep disk usage reasonable). It was a gotcha that I managed to avoid having to throw money at to solve (i.e. buy more hosted space), but it did take me about a day to learn more about Git’s internals and resolve it with my provider. On the plus side, the distributed nature of Git allowed me to keep developing while I did so.

What Went ????:

Releasing on a Friday

The Xbox Indie Game marketplace is governed by lists. Stay on the lists and you stay visible, getting downloads and making sales. One of those lists is “New Releases”. Ideally, you will be at the front of that list during the peak period of Friday-Saturday. I scheduled my release for Friday, which guaranteed me a decent position on that list. The downside is that the press tends to go home on weekends and thus you don’t necessarily get the attention you hope for. Press releases go unread, trailers go unwatched and emails go unreturned. If you’re lucky, you’ll be picked up the next week. But when dealing with the press, you don’t want to give yourself any unnecessary disadvantages.

Designing the trial experience

Lair of the Evildoer has a slightly modified “campaign” for players who start the game in trial mode. The dialogue is different, reflecting the fact that you have not purchased the game yet, and the balance is weighted in the player’s favor to prevent dying and wasting time. There’s even a special ending to deal with the player who manages to race through the limited content of the demo. All of this took time to develop. There’s also no way to tell if it made any difference at all to players and their decision to purchase (or not).

Not waiting for DBP or Summer Uprising

I chose to release Lair of the Evildoer when I had completed the features I decided I wanted to include, and once they were polished. Had I waited another two months, I could have been sure that I wasn’t affecting my chances in Dream.Build.Play. by releasing the game on XBLIG before the winners are announced. Officially you are allowed to do so, and the competition is steep this year anyway, so I don’t regret my decision. I also could have entered into the Summer Uprising, though inclusion in that promotion would have been a tough fight too.

Focusing entirely on one project

Like most developers, I have a habit of wandering off with ideas to make prototypes and leaving behind a mess of unfinished games. I decided early on that this game was going to require a significant investment of time and thus I should focus my efforts entirely on this one project in order to minimize delays. While this was probably the fastest way to finish the game, it’s also the slowest way to finish the next game (provided I don’t make a sequel immediately). I think I’ll be attempting a few projects simultaneously this time around to prevent fatigue on any given idea and hopefully have more frequent releases on average.

Pick Your XBLIG Release Date Thoughts

What It Is

XBLIG developers can now opt to hold off on publishing a game once it has passed peer review. This gives them the ability to publish at a time of their choosing, within 24 hours.

Why It Helps

I see two big upsides to this change for developers. The first is that press coverage, reviews and general hype can now be coordinated with much greater certainty. On a small scale, this means that you can inform your audience about a title’s release date in advance without having to worry about a failed or delayed peer review. On a larger scale, it will now be much easier to coordinate events like the Indie Winter Uprising, which ended up spanning a month instead of a week.

The second major upside is that developers can now pick the day of the week to launch their game. It’s been shown that the New Releases list is of great importance to an XBLIG’s success, but staying on there is often a roll of the dice. In the past, you could attempt to time your release by submitting to peer review roughly 48 hours before your desired launch time, if you had a big enough following to review your game more or less immediately. It was an inexact science at best, but Luke Schneider of Radian Games managed to time some of his releases. It was never really an option for the rest of us though. If you missed your desired launch time, you could end up missing the weekend altogether and releasing your game on a Monday to a small audience.

Why It’s a Big Deal

Microsoft has taken (and ignored) a lot of flak regarding its support for the indie service. The fact that any change has been made is a reassuring gesture, but there’s more to it than that.

This change is to benefit developers trying to run a business with Xbox Live Indie Games.

The XBLIG market has not been terribly friendly to developers trying to make their living selling their games. Instead, it has often been touted as a hobbyist’s playground – somewhere where you can release your games to the world and maybe make a few bucks for the experience. This change is not for the benefit of the developer who wants to show off his game to his friends. It’s a step in the right direction for Microsoft to start treating XBLIG as more of a marketplace with real income potential. And that’s encouraging.

What’s Next

It will be interesting to see how developers handle the new power. I’m curious to see how a definite release date will affect the press coverage for indie games, if at all. After all, it will still be just as hard to send review copies to the people who need them: you have to create a PC build, or else send the .ccgame file outside of the XBLIG service. Will indies bother? Will I bother?

Release day timing will be interesting to watch too. Will everybody flood the New Release list on Friday morning in the hopes of getting a prime spot during the coveted Friday-evening-through-Sunday timeslot? How long do you play chicken before you publish your game in an attempt not to get bumped down immediately? What about trying to buck the trend and publishing on the historically undesirable Monday timeslot? Would you get more time during the week on the list? Is it enough to make it worth it?

Lastly, it will be very telling to see how Microsoft follows this up. This is a feature that has been requested for a long time now; many would say it’s overdue. Hopefully this is not just a token gesture to make up for the ratings fiasco of previous weeks. However, the Top Downloads calculation was also changed recently so it seems someone at Microsoft is looking out for the XBLIG market. With E3 just around the corner, I’ve got my fingers crossed…

Do Indies Crunch?

I happen to have a convenient two week block of spare time and a game that needs finishing. I plan on crunching.

But wait you say! Crunching is bad! Yes, I’ve heard that too – here’s a good article detailing why. I’ve also experienced the fun that crunching for a big publisher isn’t.  And yet, free of the shackles, I’ve got my Red Bull on my desk ready to go.

As an independent developer, you basically get to control your own destiny. You pick what game you make, the genre, the platform, the price point and even the release date. You don’t have a publisher breathing down your neck threatening to take away funding. On the other hand, you don’t have that funding to begin with. And you need to eat, so shipping isn’t really an optional part of the job. Crunching to get there is up to you.

My reason for crunching is obviously to accomplish more in a shorter period of time. But I also know that I can afford to take it relatively easy after this stretch. I figure that if I’m following agile methodology and sprinting all the time, shouldn’t I jog at some point? Maybe the interval training analogy is flimsier than I thought.

So indie developers, do you crunch? Why?