Apr 272013
 

Textures are heavy. Bloat-y. They weigh down your apps, and consume memory. Sometimes you just want to efficiently animate something procedurally. One useful technique to have in your bag of tricks is that of basic skeletal animation. In this article series, I’ll run you though the basics of 2-d skeletal animation. I’ll be implementing this as part of a variant of the popular ‘run as far as you can’ games on the Android platform using AndEngine/OpenGL as the rendering back-end. Those more interested in reading code can follow along at the 5 Seconds GitHub commit history. At the end of this series, you’ll be able to implement basic skeletal animation in the language of your choice. I’ll be using Android/Java/*OpenGL as the pedagogical example, but the code should port easily to other platforms.

*Note that if you’re following along in code, you’ll see the original game engine was a basic multi-threaded game loop/render loop combo I created for this article series (any 5-seconds games using OpenGL would inherit from these base classes I cooked up).  After a few months of some awesome projects at work taking up my time, I switched it out to andEngine.  That said I’ll still be running through a bit of basic engine design.  If you’re looking to get a feel for basic Android game programming without the OpenGL and much of the multi-threaded bits, I’d recommend reading through the source code of the ‘Pop X Color Balloons’ game contained within the project. As always, you can try the code out at anytime on your own Android device because everything about it is open sourced on GitHub. Eventually I’ll make this game series available on the Play store as a compilation game (think Wario-Ware), Until then, GitHub will be the place to grab the project.

Skip Ahead:
Let’s Talk about “Boundage”
Prequel: Choosing your Draw Ordering, and The Importance of The Separation Between Game Logic and Game Graphics
Ensuring Thread Concurrency and Avoiding Deadlocks
Baby Steps: Step One: Start with an Arm is an Arm is a Leg?
Baby Steps: Step Two: Now Form The Head
Some Thoughts On Procrastination

 

Let’s Talk about “Boundage”

For me, it all starts with an off-the-cuff sketch on paper. This often occurs while I’m doing something else with my family. Why burn your eyes out doing design work at your laptop? A good design can be translated from sketch to mathematics on paper. When you’ve got a good solution mathematically, then you can consider the implementation details. When it’s time for coding, you’ll know it.

page1 page2 page3

Continue reading »

Share
 Posted by at 4:13 pm
Dec 302012
 

When looking back on 2012, it was a pretty successful year for both myself, and Google. They released a hot new tablet, and their app store has done remarkably well. One of my personal successes was the open sourcing of all of my android apps and other software back in April. Now, at the end of 2012 I feel that in the spirit of open source software I should share all the metrics about my apps on the Play store. The bottom line is, things are going pretty well. Installs are on the rise, and I love sharing software with people.

You can view or download the embedded spreadsheet below. I’ve highlighted some interesting findings in the list directly below.

  • My apps have been downloaded from the Play store a total of 223,872 times.
  • My apps have (today) 27,508 active installs from the Play store.
  • The average number of installs per app is 3k.
  • The average active installs per app (today) is 410.
  • During 2012 I received 10 total emails from users of my apps requesting bug fixes. I responded to every one.
  • During 2012 I received 15 total emails for feature requests, I implemented 8 of them.
  • Since becoming a Play store developer in May 2011, I have published 68 apps. I have pulled one app and had one app suspended due to DMCA request by Atari (custom pong.)
  • All of my apps have crashed a total of 63 times. That’s less than one crash per year per app on average.
  • The #1 most downloaded app is ‘Easy Cat Whistle‘ with 48K, followed by ‘Easy Pest Control‘ with 17k, and a three way tie with ‘Easy Side by Side‘, ‘Easy Graph Paper‘, and ‘Easy File Split and Join‘ each having about 10-11k.
  • The app with the most active installs is ‘Easy Side by Side‘ with 3860, followed by ‘Easy Cat Whistle‘ with 3459 and ‘Easy Inventory‘ with 2629
  • The average rating for one of my apps is 3.6 (out of 5). The average number of people who actually rate an app is ten.
  • My one paid app (Super Whistle) took about two hours to complete and has been purchased 53 times, netting me ~40$
  • I make about 50$ monthly on in-app advertising during the summer months, and 100$ during the winter months (this is not captured in this document, only through my bank statements). That’s about 2 times as much as I made from my monthly book sales in 2012, but only 1/150th of my monthly salary from working 9-5 jobs in 2012. Do note however, that most of these apps haven’t been updated since I initially published them in 2011, and advertising revenue continues to slowly rise. This slowly increases the return on those hours spent writing the apps initially.

As you can see, as an Android developer, I still get significantly more financial return from my time investment by working for an established organization. Not that money should generally be the driving force in your career, but for most of us it weighs in significantly. Mobile developers are the hot commodity right now, and companies can’t hire them fast enough or compensate them highly enough. It’s a volatile and exciting market that once again won’t be the same in a year. It likely won’t even resemble what it was a year ago. Those who know how to navigate the choppy waters of new technologies can, as usual, write their own checks. That said, it’s always good to have another revenue stream.

There’s also something incredibly satisfying about sharing software with people, especially when it is open sourced.

Download (XLS, 18KB)

Share
 Posted by at 6:49 pm
Dec 302012
 

Pop Them Balloons! – The first game from the 5-Seconds mini-game and article series compilation has been released on the Google Play store. You can download it (for free) here. This may take up to a full day from this posting to reach your particular Play market, so if you don’t see it on your Play market, be sure to check back later this evening!

Pop Them Balloons! is a casual game where you try to pop a certain number of different colored balloons within a time limit.

balloonstopop easymediumhardscreen youpopped3yellowballoons

Please note, It’s ad-supported, but no in-game ads, only title screen. I feel this is a fair compromise, especially since everything about the game is open source on GitHub and free for you to use however you like.

Share
 Posted by at 3:36 am
Dec 292012
 

While UI is often the last thing a programmer thinks about when starting on a new project, it’s often the very first thing a user knows about your project. Why then don’t we all use the latest and greatest UI patterns? Perhaps many coders find visual design to be out of their domain, or perhaps they feel that the execution of the algorithms contained within their program are of paramount concern to users. Regardless of the reason, disgruntled users have started to leave once trusted programs whose interfaces have not kept up with the times. How then to update your app(or game!) to the newest visual hotness?

In this article I’ll be taking you through the creation of a dynamic game selection screen based on the excellent ViewPagerIndicator library by Jake Wharton. As always, you can follow along in code at the 5 Seconds GitHub repository. When you finish the article, you should be able to easily implement a icon-enabled view pager for your Android app or game.

thisistheendFrontNoAdvert

  1. Open Source FTW
  2. Creating your Activity
  3. UI Layouts and Unobtrusive Advertising
  4. Creating your Generic Fragment with Saving and Loading of State Values
  5. Creating Your Adapter
  6. Putting it all Together – Instantiation
  7. Icing On the Cake – Title Music Loading
  8. Conclusion

Read on for the full article!
Continue reading »

Share
 Posted by at 10:35 pm
Dec 072012
 

While pushing out an update to ‘The Grind‘ this week, I had a few users who reported crashes with the newest content pack update. Unfortunately, Google Play’s dev console did not show the errors, and the users were not sure where the crashes were occurring. What is a developer to do?

Keep reading for a quick tutorial on setting up Crittercism crash reporting in your app.

Crittercism Logo

Continue reading »

Share
 Posted by at 5:34 pm
Nov 262012
 

This is the second in an article series about Android development, open source software, audio production, and so much more. You can read part 1 here.

Preface – A New Game!
Using the Hardware at Hand
Capture List, Gotta Capt’ em All!
Fun with Audio Capture
Editing your Audio – Audacity
Removing Ambient Noise with Audacity
Recording a Title Theme with Audacity

Preface – A New Game!

When I wrote the first article in this series, I never thought It would take me where it has. I’ve been all over town recording audio samples on my little boom mic, learned quite a bit about basic audio and recording techniques, and received a ton of excellent feedback from friends and strangers alike. My original intention was simply to update all of my previous Android apps to use my new audio library, but the sparks of creativity cannot be contained. I am therefore starting work on a new minigame collection titled ’5 seconds’. It will; of course, be fully open source. Expect cameos from all of my previous game characters and a good dose of fun. You can also expect site updates describing the game development process and how ’5 Seconds’ is evolving. You can checkout the GitHub page for it here.

Continue reading »

Share
 Posted by at 2:04 am
Jul 212012
 

About a year ago, I wrote many, many Android apps. Some of them were games. All of them were written under a “one app in one day” constraint and as such the games never had any sound. No sound effects, no background music, no waveform generation, nothing. Fast forward a year and they’ve all become open source on GitHub. I’d wanted to update them all while re-using as much code as possible. How then was I to maximize the effect (all the games get all the features) while minimizing the effort of adding sound to all of those previous games simultaneously? And how best to share the effort with other Android programmers? In this, the first of a three part article series, you’ll find out. For part 1, I create the project, setup the environment, make a plan, and update the waveform generation code on my currently in-market apps. You can follow-along with this article series in real-time by watching the commit log to the Android Simple Game Audio project on GitHub. And stay-tuned for the upcoming part 2, wherein I become a Foley artist and make use of some interesting and (not quite) antiquated technology.

Creating an Android Library Project
Including an Android Library Project in Your Android Project (Yo Dawg)
Planning (Knowing Exactly What You Want To Accomplish)
Iterating (One Feature At A Time)
Low Bar: Waveform Generation
Update Your Markets and Ad Copy
Mid Goal: Sound Effects

Continue reading »

Share
 Posted by at 12:58 am
Jun 112012
 

If you grew up in the 80s or early nineties, there’s a good chance you remember the AD&D goldbox series from SSI. These were top-down strategic RPG games based on the advanced dungeons and dragons pen and paper RPG series. While the first (Pools of Radiance) was my favorite, there were at least 10 or 11 others to play. Then there’s the Elder Scrolls, Fallout, X-Com, Master of Magic, Wizardry, Bards Tale, Albion, Superhero League of Hoboken, and about 1000 others. These games were great fun back in the day, but with some of the new improvements to DosBox you can actually improve the original experience on your Android handset or tablet.

Here’s a quick guide for playing your classic games with touchscreen and transparent keyboard on your Android.

  1. Install a DosBox port for Android. I highly recommend DosBox Turbo, as they are bleeding edge.
  2. If you’re using DosBox Turbo, also install ‘DosBox Manager’, it adds easy custom DosBox Profile Support
  3. Locate the game you wish to play, and extract it to a directory on your android. I recommend /dosbox/GameName/
  4. Install a good software keyboard for Android. I recommend ‘Hackers Keyboard’, as it comes with a transparent theme you can select
  5. Fire up Dosbox Manager, or manually edit your DosBox.cfg to have an appropriate amount of memory (32mb) and low frameskip
  6. While you’re editing the config, go ahead and enable mouse support, with absolute (perfect for touchscreen!) positioning
  7. Finally, edit the autoexec.bat in the config and add a couple of lines to start your game such as ‘cd dosbox/gamename/’ ‘startgame’

Update – Wizardry 7 by special request:

Share
 Posted by at 4:53 am
Apr 122012
 

Just throwing up some statistics for posterity and new readers. Sometimes it’s helpful to give a little context to the state of my work and the site etc. These come from the advanced GitHub search box and manually going over the top user profiles by number of repositories, and I implore anyone with contrary data to let me know so I can update these. The text of the infographic image is below the jump for those of you who don’t like to load large images in posts.

Continue reading »

Share
 Posted by at 9:17 pm