I’m trying to start blogging regularly on Thursday. I want to continue posting progress updates on Whirlygig but I also want to share random, geeky stuff that I’ve done or seen around the web.

 

Whirlygig

I finished and submitted Whirlygig for WP7 on July 27th, just in time for a Hackathon contest deadline of June 30th. The background music for Whirlygig used a looping SoundInstance. Right before I submitted, while reviewing the final tech specs, I saw that you are not supposed to use a SoundInstance for game music. Fine. I quickly revised the code to use the MediaPlayer to play a wma. This cut the project size and improved performance anyway.

Whirlygig failed the marketplace review on three counts. Two of the three were related to my last-minute implementation of MediaPlayer-based sound. First, when the game starts I stop whatever the MediaPlayer is playing and play the game music. The tech specs say you’re supposed to ask the user before you do this. Second, if you are using the MediaPlayer for background music you have to make a volume control available that does not affect the global volume outside of the game. Both of those are pretty easy fixes but require me to finish the options screen (originally not planned for the first release) before resubmitting.

The third thing it failed on will be more tricky. If the user is in game, they press the “start” button to take them out of the app, and then they press the back button it should resume the app. This does not work on older versions of the OS. Since I only have the emulator and a fairly-new Samsung focus it’ll be kinda hard for me to reproduce that one.

I hope to get these things wrapped up and resubmit Whirlygig WP7 early next week. More screenshots of the final game at the end of this post.

 

My Day Job

By day I work as a programmer for a fairly-large online retailer. We need a mobile shopping app that also manages things like the user’s account and wishlist. We want to deploy it on multiple platforms (iOS, Android, etc) but my small team does not have the time or resources to develop it natively on multiple platforms and we don’t want to outsource. After testing multiple cross-platform solutions we are working with PhoneGap. PhoneGap allows you to build an app in Javascript, HTML5 and CSS3. It has wrappers for each OS and makes hardware access available to the Javascript layer. It also gives you a special browser instance with no ui. This means that you have a common-denominator to code against and no browser UI such as address bar, etc.

I’m currently working on the core app design and deploying on an Android device to test. I’m very pleased with the results so far. The interesting thing about this is how many layers of abstraction are working together. Linux-based Android has the Dalvik Java machine. On top of that, Phonegap is providing a browser with custom Javascript hooks to the OS. On top of that I’m using jQuery. On top of that I’m using jQuery Mobile. It’s very cool how HTML5, CSS3 and jQuery provide a very rich, abstracted toolkit and can run in a predictable environment with hardware access via Phonegap.

Incidentally, I’m not real strong at Javascript. I’ve done a ton of Javascript to enhance website functionality but this is the first time I’ve worked on a full-fledged, Javascript-based app. Our internal policies mandate that all Javascript must pass JSLint so…that’s pushing me to follow good coding practices. I’ve learned a lot!

 

Video Gaming

Obviously if I build video games I must like to play them :P

I am a family man (wife and 2 kids, another on the way) so I don’t get a ton of video gaming time and I prefer to make progress on projects anyway. That being said, I dedicate a bit of time to playing games. Usually this happens on Thursday night. My buddy Jason comes over and we play some sort of multiplayer game from 7:00pm to whenever we get tired. Usually about 2am. Jason was not much of a video gamer before. He’d played some Xbox but was relatively inexperienced on PC games. I’ve introduced him to a variety of genres and we’ve had a lot of fun. We’ve been playing older or inexpensive games as we both are budget-conscious. Here are games we’ve played:

  1. Minecraft: He watched me play it and thought it looked fun. This was how the “Thursday gaming night” started. We had a ton of fun building fortresses and killing each other with arrows and dynamite.
  2. Magicka: We picked up Magicka on Steam, beat it twice and then bought the DLC packs and beat those too. Very fun coop game. We spent as much time stabbing each other in the back as actually fighting enemies.
  3. Terraria: I love the charmingly-retro Terraria. It has a lot of good elements from games like Minecraft and Castlevania and other 2D side-scrollers. Jason didn’t enjoy Terraria quite as much so we only stuck with this for a few gaming nights.
  4. Sins of a Solar Empire: This is an older game but we dedicated one of our gaming sessions to it so Jason could check out a sort of RTS game.
  5. Borderlands: Steam had a decent deal on Borderlands and several of my other gamer friends play it so we picked this up and gave it a shot. It’s a great game. Jason is pretty hooked on this one. He went from zero experience at FPS games (arguably one of the hardest PC genres to master) to being a real champ at CQB. He’s a pretty good hand at sniping too.
  6. Left 4 Dead 2: Steam had this game for $4.99. We both bought it yesterday and plan to give it a shot tonight. I anticipate a lot of chaotic fun.

I played a tiny bit of World of Warcraft (maybe 3 months?) last year. It was my first MMO. I didn’t enjoy it that much because the buddies I played with have played since 2005. They already know all the lore, locations, quests etc so they mostly care about raiding. It’s an old enough game that nobody really cares about enjoying the vanilla quests any more so it’s hard to play lower levels with anyone that’s not just trying to blow through it and level their toon as fast as possible. So, I didn’t really get into WoW that much because everything just felt like a grind.

To get to the point, I downloaded the trial of Rift last weekend. I’ve been playing a little of that in the evenings after the kids go to bed. It is a really great game. So far I’ve taken a character to level 9 but haven’t even paid attention to leveling that much because the lore and questing have been interesting. The quests don’t feel like a grind as much as the WoW quests did. It’s very similar to WoW in many ways but it also has a lot of fresh differences. The rifts are fun, impromptu battles and the leveling tree is awesome. In WoW I always felt like I couldn’t experiment with strange combinations because people just expected you to be one of the tried-and-true raid types. In Rift you can get some really neat ability combos that make it feel more diverse. And it’s new enough that people don’t just Min/Max a specific character type as far as I can tell. Incidentally the graphics and technical stability feel very polished. Ultimately it’s a great, fresh MMORPG that seems worth playing whether you’re new or an old hand at MMOs.

 

 

Whirlygig final in-game screens: