Showing posts with label indie. Show all posts
Showing posts with label indie. Show all posts

Sunday, September 30, 2012

The Last Thumb Fighter - Delivered!

           

Click the above links to see the apps in Apple's App Store!

I've finally completed my first mobile game, The Last Thumb Fighter!  It has been seven months in the making.  I should really spend more time writing apps...

Anyway, it's done, and instead of talking about what it is, I'm going to let you go check it out above.  For those that are interested, I'm going to talk a bit about development.


It all began with a simple thought.  That thought was, "Y'know, I love playing games with my friends, and there's no game that you could just pop out when you're hanging out at a bar and play with each other."  Of course, there probably are some out there, but who has the time to search the app store for them?

So, that got me thinking about how you might play a game with your friends, and I stumbled upon this idea of holding the device between the two of you, each with one thumb on it.  Everyone I described this two had the same feedback, "That would be awkward, and there's not enough room for it."  And every time I got this feedback, I pulled out my iPod and made them hold it between us, and it just works.

That's gave birth to the idea, and shortly thereafter I began the prototype.  The first iteration was just two circles shooting circles at each other.  There was no game there, but the interaction just felt so right.  You can judge for yourself whether or not the game's a success, but I think that regardless of how you feel about the overall product, you'll agree that interaction is successful.


From there, development went remarkably smoothly.  I took the lessons of my last project into this and made a list of all the things I need to do, and one by one, I implemented each item and checked it off the list.

I hit a few stumbling blocks, from which I learned a few things, which I will share with you now.

1. Corona handles drawn images better than circles.  With just a few newCircle calls, you can bring your app to its knees.  Fortunately, there's an easy solution: draw your circles in your favorite paint program and use them instead.  I recommend doing this early on because there are some subtle differences in how you handle the two, and it's no fun searching and replacing all the circles in your code.

2.  Corona's button widgets are odd.  They seem to be built for single interactions.  You'll notice that before the co-op and multiplayer, you and your friend can select your ships at the same time.  This created some funky bugs where the input bounced back and forth between simultaneously clicked buttons, resulting in the ship selections changing randomly.  I ended up scrapping Corona's buttons in favor of my own.  It turns out, my custom class was pretty easy to write.  It's not as fully featured, but it gets the job done.


3.  Sound is hard.  There are definitely some little gotchas in implementing sound.  Take a very careful look at how the samples work when you write your own.  I actually learned much more about this when I created the update for Wizard's Magic Ball, but more on that later.  However, what I'm really talking about is writing music.  I haven't ever done that before, and I learned as much or more about sound than I did about everything else in this project.  At some point, I'll have to do a post about how I write and record music.

4.  Corona is remarkably easy to upgrade and well documented.  No, this wasn't a stumbling block, but it helped me through several.  I upgraded Corona once during this project when the New iPad came out, and there was a tiny change (for the better) to the button widget.  That was the only thing I had to change.  And throughout the project, I relied heavily on Corona documentation, which is fantastic.  Great documentation can make up for many faults in an SDK.

And there you have it.  There's so much more I could say about this project, but I'm not sure what would be useful or interesting to someone stumbling across this blog.  I'm sure I'll be mentioning it often in the future (assuming I do more than a single blog post per release).  If you've read this far and you have questions, fire away.  I'd love to start a dialogue about indie game development.

P.S.  I'm not one for taking away dev time to write blogs, but I have the upgrade to Wizard's Magic Ball and my adventures with other SDKs like Moai to talk about in the future, so barring any unforeseen laziness (or more likely, busyness making apps), look forward to posts about those in the future.

Tuesday, July 26, 2011

How to remove a payment method on Xbox Live

Wow, I've only been annoyed by this for a year.  Finally, I stumbled upon it when canceling my App Hub service for launching XNA apps on the 360. :(

Here's how to remove an old payment method (read: expired credit card) from Xbox Live.  Why they made this so difficult to find is beyond me:
http://support.xbox.com/en-us/pages/xbox-live/how-to/xbox-live-account-management/default.aspx

Oh, and about getting rid of my XNA service.  It feels like giving up, but really, I can still develop for it.  I just can't deploy to the 360.  But after a couple of years of barely using it, I'm ready to stop giving Microsoft my money.

I realize now that I was disenchanted by how Xbox Live Indie games never really took off.  I guess they still could, but it's been a long time, and the next Xbox console is likely looming over the horizon.  I hope they continue the initiative, but they need an overhaul.  They need a marketplace akin to that of Apple's App Store.  People need to be told what to buy and given ways to pass it on to friends.

It's funny, my work may never be seen on Android either, but at least on Android I feel like it could be seen.

Sunday, January 2, 2011

The Best Around

There's a classic song, stop me if you've heard it.  It goes:

I want to be the very best,
like no one ever was....
 To catch them is my real test,
to train them is my cause!

Pokemon!

It was a great song for a great show about a great game.  And it never fails to inspire the kid in me to dream big, and that's what I'm doing now.

My dream is to do four things: play the guitar really well, play the piano really well, speak Japanese really well, and make great games.

And that brings me to this page.  My hope is that maintaining this blog will keep me honest.  It will also be an outlet for me to display my progress, so that I don't get annoyed with toiling away in obscurity (even though I know no one is likely to read this, at least I'll feel like someone could be).

I also plan on posting my various problems (and hopefully solutions), so that those on similar journeys will know that they're not alone.

So let's begin...

Come with me the time is right,
There's no better team.
Arm in arm, we'll win the fight,
It's always been our dream!