Wednesday, July 20, 2011

Sedition

After many months, and even a good deal of schedule slippage, I uploaded my game, Sedition, to the Android market. You can find it here:

Sedition Ad-Supported  and  Sedition Ad Free

I also have a Blog dedicated to my software endeavors, DigitalPopcorn


My baby

(Apologies to anyone reading this who might not be able to access it in the Android Market, I plan to expand offer to additional countries soon, as well as other distribution channels.)

Anyways, it is still in "Beta", but here is a run down of some of the technical/design details of it:

Android Library Management for publishing multiple editions of an android app

[UPDATE 12/30/11: This post is a little out of date, I recently updated to r16 of the ADK, and eclipse 'Indigo' (3.7). I had to play around with the library settings to make the dex process happy, and the settings actually make a little more sense now. I'll make a new post]

Sorry for the long title, but I spent a frustratingly long time( hours ) doing something that should have been achievable in seconds.  My hopes are that I am able to document the steps needed here well enough that someone can save themselves some time.

As a last step before publishing, I needed to be able to quickly make two versions of Sedition, an Ad-supported version, and an Ad-free, paid version. In the Android market applications are distinguished from one another by the "package" property in your AndroidManifest.xml file. So simple, change your manifest name and re-build. Not so fast, the resources in your application, eg the files that get assigned an id in the infamous "R" class, are built to live in that class. So when you change your package, any code that references anything in your R class will break. For me this resulted in over 100 errors. I have some final static variables in that help me define code behavior for any given flavor of build. This was the closest I ever got to a #ifdef type mechanism that I mentioned a few months ago. Unfortunately, there is no solution for changing manifest files in a similar manner.

The conventional wisdom of the Web suggests moving your application into an android library, then make two new "Applications" that then link to the library, like so:





This is what I did. It should, by all accounts, have been quick. It wasn't, there were a ton of booby traps, and unless you have innate knowedge of the inner workings of the android build tools, it's a little bit of a mysterious beast. Here's what I did:

Friday, July 15, 2011

Almost Live

My game, unless something goes wrong at the last minute, will get submitted to the Android Market this weekend. It's far from "done", but I think it is a solid "Beta" level app. All the planned features are mostly working.

I figured it was about time I opened up a little more about it....

Without any fanfare, here is:

Wednesday, July 6, 2011

VDHL

I got a chance finally to play around with my Papilio One board, and the Button/LED Wing I got.

I'm fascinated by VHDL, though I'd consider myself a 'novice'. 

I think something may be amiss with my board, or the wing. 

I wrote some trivial 'hello world' VHDL, I made a component that I can "wire up" (technical term) to either the high side or low side of a wing. (The Papilio has 3 16 bit wing sockets, but the Button Wing is 8 bit, and can occupy either half of a wing).

So my component looks like this:

Monday, July 4, 2011

Back in the solder again

I finally made an initial release of my game, Sedition, not yet on the market, but to a few people I know personally. It is not complete, I'm torn whether to call it 'alpha' or 'beta' at this point. At any rate I intend to 'flip the switch' and Google's and Amazon's markets within a week or so. More on that in a future post.

I also have a Blog dedicated to my game and any future software I release: Digital Popcorn

Anyways, one thing that working on this game has kept me from is doing hardware hacks. Now that development efforts have (hopefully) peaked on Sedition, I want to get back into it.