Tuesday
Sep132011

Abe Clone Attack (learning OpenGL)

I wanted to learn OpenGL, so I threw together a game using libgdx. Below is the text from the market page for the app.

This isn't meant to be a serious game. I threw this together in my spare time over the course of a week to learn OpenGL basics on Android. I wrote a rudimentary game engine including animation, collision detection and score keeping.

Why Abe Lincoln? When I needed an image to represent a sprite, his face popped into my mind. Maybe it's his striking facial features or the fact that he's a person that I respect deeply that made me think of him in that moment.

The sprite class holds an array of animations and the state of the sprite (position, dead, type). For each call to the renderer, the engine passes the number of frames (calculated by time since last render) to the sprite, which then advances that many frames into its current animation.

Upon completing a "death" animation, the sprite marks itself as "dead". Upon the next call to render, the engine removes the sprite from those to be rendered.

I wrote a texture library to reuse textures among sprites and animations. Animations as for a texture (by resource name) from the texture library. The library either returns the texture from a map, or loads it into the map and then returns it. This is an easy way to share a single texture for all identical animation frames.
I know this is ugly. I know it's simple. It was fun to make and I'm happy to say that I learned something in the process.

Android Market Link

Tuesday
Aug302011

PAX 2011 Unofficial Guide

Sorry, I never followed through on my series of guides. I got so involved in learning the Android API that I actually started and completed a full app.

I went to the Penny Arcade Expo for the first time this year. I was planning on traveling with three buddies, but they all had to back out due to uncontrollable events. I saw it as a chance to create an app organizing all of the maps, schedules, and twitter feeds for PAX. There were nearly 70,000 attendees this year, so playing it by ear sounded daunting.

The biggest feature I was not able to implement was syncing events with Google Calendar. I finished it at nearly the last minute and wasn't able to promote it properly. Even so, I had about 300 downloads at peak. That number is dropping like a rock now that the convention is over, but I'm planning on updating it for the next convention in spring.

I think I'm in love with mobile development and I'm hatching an idea for my next app.

Though I went alone, I did connect with several friends from Gamers With Jobs and the weekend was great success.

 Android Market Link

Wednesday
Mar232011

Android For Absolute Beginners, Part 1

If you've successfully completed part 0, your computer is set up and read to write Android apps. The final part of that guide had you launching an app that was generated automatically. In this guide you'll take a peak at the guts of this app and, hopefully, learn just a little bit about Android.

Problem: I don't know anything

Okay, you know plenty. In fact, you might even know some of what is in this lesson. To make this as helpful as possible for absolute newbies, let's pretend that you don't know anything yet.

Click to read more ...

Tuesday
Nov232010

Android for Absolute Beginners, Part 0

I decided to write a beginner's programming guide for Android. My intention is to be as basic as possible for people who have the interest, but no experience. The requirements are low, but there are a few and they are:

  • You do not know how to program
  • You want to learn how to program
  • You're interested in making Android apps
  • You know how to install software on your computer

The fact that you found this guide means you have interest, but let me help out those who are on the fence. First, let's talk about what programming is.

Click to read more ...

Monday
May172010

vacation.finish()

Now that the family vacation is over, It's time to get back to work on my first Android app.  It's time to knuckle down and churn out a basic but fully functional alpha.  My first app is tentatively called "Scoreo", by me at least.  It will be a basic score keeper / stat tracker for board and card games.  I'll try to put out basic tutorials as I make progress.  I always feel that I have the strongest grasp on something when I can teach it to someone else.  I don't really have anyone to teach directly so tutorials will have to suffice.  My first tutorial will handle Activities.