Archive for September, 2008

Design Awry

September 20, 2008

I was going along, working on a iPhone port of HamQuest, when I wandered into the same goofy chain of dependencies that I ran into the first time.  This time, I hope I have done better, but you can be the judge.

Player specific information(equipment, statistics, etc) is stored in a class called, appropriately, Player.

The representation of the Player on the map is a MapCreature, as are all other types of creature.

MapCreature has some creature instance information(wounds, mostly).

The Player class knows about the MapCreature instance for the player.

The MapCreature instance has a reference to a CreatureDescriptorBase, for which there exists a special PlayerCreatureDescriptor as a subclass.  For normal creatures, CreatureDescriptors are used (another subclass of CreatureDescriptorBase).

All of the various CreatureDescriptor instances and the PlayerCreatureDescriptor exist in a CreatureTable, which is used to populate a maze.

The PlayerCreatureDescriptor knows about the Player, so it can query it for statistics important to the operation of a MapCreature (mainly attacking and defending).

So, unfortunately, there is a circle: Player->MapCreature->PlayerCreatureDescriptor->Player.  I get around having an actual circular dependency by using a base class.

It is improved from the last time, however.  MapCreature only held a CreatureIdentifier, which would then be used to look up the CreatureDescriptor in the CreatureTable.  I realized today that it was silly, because then a MapCreature needed a reference to the CreatureTable.  So, cut out the middle man.

Thanks for listening.

Reese’s Peanut Butter Cup All Over Again

September 5, 2008

So, while I have been writing my first few “simple” games while learning objective-C and iphone development, I have to say that I need to modify my original plan slightly.

At first, I considered making a slew of small puzzle-type games and putting them out there for 99 cents, and build my iphone empire a dollar at a time.

I will still wind up doing some of that, to be sure, but I took a long, hard look at the app store.  Puzzle games have 9 pages of stuff.  Anything on the first page gets 100 sales a day.  Anything not on the first page is lucky to get 10-15.

So, the main strategy is be on the first page of whatever category your game is in.  A secondary strategy is to put a game in a category with as few pages as possible.

It just so happens that I was 90% complete with a game that fits well into the “Role Playing” category, and it just so happens that in the app store there isn’t even a full page of role playing games, and almost all of them are simple dice-rolling utilities.

So, part of the new plan is to port HamQuest to the iPhone (along the way, I get to fix a number of the architectural mistakes I made first time through), which I should be able to rip through in relatively short order.

The rest of the plan is the same. Pump out lots of stuff and have it up there cheap.  I’m hoping that folks buy more stuff from a developer that they like, so a few “good” offerings will mean sales of less complex games.

Who knows, though?