Escape! Game Story

You’ve crash-landed on an alien planet. While walking around the planet, you find plants. Each time you eat a plant, you change shape and color! Whoa! Some plants have a long term effect, but some only change your shape and color for a short time. There are monsters and animals, most are friendly, but some are territorial and can do you damage! There are also precious stones of different colors, which you can pick up and carry on your head. You also find secret doors with the inscription “3FA”. Does that mean what you think it means? Three-factor authentication? What is behind these doors? And how are you going to get back home?

I’ll be using this cute spritesheet / tileset made by Kenney that I found at ( )

Posted in Uncategorized | Comments Off on Escape! Game Story

LD30 begins

I’m excited to start developing a game for the LD30 game jam.

I’ll be using the Phaser HTML5 2d game development framework. I’m going to make all the work on a Chromebook Pixel using apps from the Chrome Store. I have Xubuntu installed in a Crouton environment in the Chromebook, but I’m only using that to run Tiled, because there’s no Chrome tilemap editor. I’m using Cloud9 as my text editor, and my code will be posted on Github at

The theme for LD30 is “Connected Worlds”. I googled the theme and two images were the most striking and inspiring to me:

The first image is by karu-panda on Deviantart ( )

The second image is by the architecture & design team of ( )

I chose to make an HTML5 2D game, so I can’t just create a Fez clone, which is what the second image suggests to me.

So I think I’ll make a game where the user has to switch between “warm, sunny, right side up” world and “winter, night time, upside down” world to solve a puzzle. That is way cool, as one of my favorite games is The Legend of Zelda: A Link to the Past, which features an alternate, connected worlds motif.

I think I’ll stick to making a puzzle game rather than a Zelda clone, as I don’t have the time or the art skills to make a Zelda clone, even if I use OGA spritesheets and tilemaps.

Good luck to everyone else in the game jam!

Dread Pirate PJ

Posted in game.development, web.technologies | Tagged , , | Comments Off on LD30 begins

Blog Reboot for 2012

Some months ago, I received a message from someone on LinkedIn, asking why I had not updated this blog in the last few years. And frankly, I didn’t have a good reason. Posting new content just didn’t continue being a priority. In truth, I posted more stuff on my Facebook wall after July of 2009 than I had posted on this blog in its entire lifetime.

A quick recap on the last 2.9 years

  • After speaking at OSCON 2009, I moved to Silicon Valley for a job at mobile gaming startup OpenFeint
  • I worked on another iPhone games development book, Beginning iPhone Games Development
  • I freelanced as an iPhone/Rails developer for a few Silicon Valley companies
  • For the last year, I have been working as an iOS developer for a high tech orchard in Cupertino 😉
  • I fell in love and got engaged

The move to Silicon Valley has been great for me in terms of employment and quality of life. I’m working in a great, growing field, and loving it. I love all the diversity in the SF Bay area. And I love northern CA weather.

During this time I have kept increasingly busy with work. When I was a freelancer, my spare time between projects was spent trying to get new customers. As any freelancer will tell you, acquiring new projects and customers is as much a full-time effort as working on the projects you get.

Now that I’m working full-time with an established company, I don’t have to worry about where my next gig is going to come from. So this focuses my work efforts between 9 am to 6 pm most weeks. This leaves me a bit of leisure time in between work and spending time with my fiancée and friends.

Which brings me to the main topic of this blog entry: what I will be doing different in what’s left of 2012 and the years ahead.


I’ve always wanted to work in video games, ever since I was a teenager learning programming on a family computer in the mid-80s. So starting with this blog entry, I will put more focus into releasing my first mobile game.

People much busier than I have gotten games and apps published. I’m single, have no kids, my job is not all consuming. I have no excuse. I simply let distractions occupy my time. Things like TV, leisure reading, social networking.

I actually have wanted to make a mobile game for over three years. I have several ideas always in the back burner. I haven’t accomplished it because I haven’t put in the time and effort it needs. Part of it is because I’ve been busy, but part of it is setting the goal and getting it done. Simple as that. This needs to go from “want” to “goal”.


If you’ve watched the movie “City Slickers”, you are probably familiar with the character named Curly, played by Jack Palance. In one scene, Curly tells Mitch (played by Billie Crystal) “Do you know what the secret to life is?” The answer is “One thing. Just one thing. You stick to that and the rest don’t mean shit.” The problem is in figuring out what your “one thing” is.

The problem with me and goals is that I’m too easily distracted by a very curious mind and way too many different interests. So the key to my achieving goals is to really focus. Just having the time available or making time isn’t enough.

I’ve done this before, when I worked on the two iOS game development books. It took 90% of my effort just to focus. The other 10% was the actual writing. :-)

So with that, I finish this blog post and I’m going to enjoy my Friday night. It’s my fiancée’s birthday today, so we are going out to dinner. No game hacking tonight. But there’s the rest of the weekend and next week.

As I make progress, I’ll be posting details of how things are going.

Onward with the geekiness!

Note: I meant to publish this a few weeks ago but got caught up doing different things and didn’t publish. Except for my fiancée’s birthday, which is on the day this was published, the other events and decisions documented here are already a couple weeks old and in progress.

Posted in game.development, life,, software.development | Tagged , , | Comments Off on Blog Reboot for 2012

iPhone Development on Windows & Linux with open source tools

Yesterday I presented at OSCON 2009. I spoke about how to use Eclipse and the iPhone-dev team’s GCC cross-compiler to develop for iPhone on Windows & Linux. I also spoke about XMLVM, an open source project that lets you develop in Java for Android and deploy on iPhone or Palm WebOS.

You can download the slides and program examples here.

To get started with open source iPhone development, you can download the open source toolchain for Linux or for Windows/Cygwin.

Note: To use the toolchain, you need to obtain the iPhone OS headers, frameworks and libraries. You can jailbreak your device and extract the frameworks and libraries using SSH, or you can decrypt the firmware and extract the framework and libraries from the decrypted disk image. The binaries you need are /System/Library/Frameworks and /usr/lib .

You can download the headers from the iPhone-dev team’s Subversion repository with svn co

To use the iPhone-dev team’s headers, you need headers for Mac OS X 10.4 SDK. Then you type this at the command line:

cd /path/to/iphone-dev/svn/branches/include-1.2-sdk
./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk

sudo bash

Or you can extract them from the official iPhone SDK. :-)

Once you get the binaries and headers, move them to /usr/local/iphone-sysroot/ . The headers go in /usr/local/iphone-sysroot/usr/include/ , frameworks go in /usr/local/iphone-sysroot/System/Library/Frameworks/ , and libraries in /usr/local/iphone-sysroot/usr/lib/ .

Then to compile and link, set CFLAGS and LDFLAGS like below :

export CFLAGS=-I/usr/local/lib/gcc/arm-apple-darwin9/4.2.1/include \
-isysroot /usr/local/iphone-sysroot

export LDFLAGS=-framework CoreFoundation -framework Foundation \
-framework UIKit -lobjc -bind_at_load -isysroot /usr/local/iphone-sysroot

Then use these compile and linker commands :

/usr/local/bin/arm-apple-darwin9-gcc -c $(CFLAGS) main.c HelloWorld.m

/usr/local/bin/arm-apple-darwin9-gcc $(LDFLAGS) HelloWorld.o main.o \
-o HelloWorld

The easiest way to set this up for each project is in a makefile. Look in the HelloWorld example in the zip file with the slides for an example.

Posted in iphone, linux, open.source, windows | Tagged , , , , | 13 Comments

My first book is finally a go! Woo hoo!

From February to April, I was working evenings and weekends fulfilling a dream I’ve had for many decades: writing a book about a subject I really care about: game development. On June 22 2009, Apress is publishing a book I collaborated on as lead author and tech reviewer : iPhone Games Projects.

Book cover

There are chapters by :

  1. Olivier Hennessy & Clayton Kane, of Posimotion, developers of Bikini Hunt and Apache Lander
  2. Joachim Bondo, of Cocoa Stuff; developer of Deep Green, a beautiful chess game for iPhone
  3. Richard Zito & Matthew Aitken, of Swipe Interactive, developers of QuickDraw and Pole2Pole
  4. Aaron Fothergill, of Strange Flavour, developer of Flick Sport Fishing, one of the top 20 best selling apps on the App Store
  5. Brian Greenstone, of Pangea Software, developer of Enigmo and Cro-Mag Rally, two of the top 5 best selling apps on the App Store
  6. Mike Kasprzak, of Sykhronics Entertainment; his game Smiles was one of the finalists for Best Mobile Game on the IGF Mobile 2009 competition
  7. Mike Lee, co-founder of Tapulous, now at Apple, lead developer of Tap Tap Revenge, the most downloaded game on the history of the App Store
  8. And a bonus free chapter by Jamie Gotch, of Subatomic Studios, developers of Fieldrunners, winner of Best Mobile Game on the IGF Mobile 2009 competition

As tech reviewer for the book, I checked everyone’s writing for technical accuracy. That was really a great experience. I learned a lot and had fun running everyone’s sample code and checking their tips and tricks for myself.

I also wrote one chapter for the book, on how to implement RESTful web services for high score leaderboards and achievements on iPhone. There’s code in the chapter for a simple Rails web service, and native code for the iPhone as well. It’s a rather deep look at the subject.

I also collaborated with Jamie Gotch on a bonus free chapter. In the chapter we discussed getting started with programming for iPhone, a few tips and tricks, and the A* path finding algorithm. I also developed a Puyo clone and explained the most important parts of the code.

Full source code for the Puyo game will be provided. There is also source code for 3 other sample apps. All the sample code will be made available the same day as the book release at the book’s support page and at

This was a very neat experience for me. I’ve wanted to have my name on a computer book, and I’ve enjoyed programming games in my spare time, since before I was a teenager (more than 30 years ago, yo! Where has time gone?)

The iPhone gives me, and everyone with the interest, a chance to develop games for others, in a very cool platform with lots of traction. This book, coupled with Beginning iPhone Development, can give you the tools to reach for the stars with your own creations! Enjoy!

Posted in game.development, iphone, life, software.development, writing | 5 Comments

Obligatory WordPress upgrade post #10101010 and other rumblings at Chez PJ

So today I updated WordPress to 2.6.5. And like every other time, it was a cinch, all over and done in less than five minutes. Thanks, WordPress guys!

In other news, I have been geeking out with both the iPhone SDK and the Android SDK, and I believe I have a little something special going here. I hope to have it ready for release, on both platforms, sometime in January. Development continues.

I will need beta testers soon. Any T-Mobile G1 users interested in helping out, you can email me at dreadpiratepj [at] gmail [dot] com

Speaking of Android, I started playing with it now that the source code to the whole thing has been released. I managed to get Android booting on a Palm TX, but it still needs a lot of work. It boots, but it doesn’t do crap once it boots. :-)

I get all the way to the “Press the MENU key to unlock” screen, but none of the keys do anything. Neither does touching the screen. It’s an issue with the Linux kernel drivers and device configuration. It just wasn’t made to run on a Palm TX without proper tweaking of the source. I just don’t know what the proper tweaking is.

I need to look in my bag of loot for a Palm serial cable (I’m sure I have one somewhere) and hopefully I can get a serial console from which to poke around inside Android.

I do have Android running successfully on my Sprint Touch (my parents, my sister and I have a family plan on Sprint.) Credit for that goes to Dr. Martin Johnson in New Zeland. I just use his release on my phone (before you ask, no, his release doesn’t work on the Palm TX. It’s the first thing I tried. :-)

Posted in android, gadgets, iphone, linux, open.source,, software.development, upgrades, wordpress | Tagged , , , , , , , | Comments Off on Obligatory WordPress upgrade post #10101010 and other rumblings at Chez PJ

Can You Hear The Wind Blow

Photo by liferfe.

The mobile software market is becoming very exciting, and I’ve been watching with interest. I’ve been learning iPhone development for the last ten months, first with the jailbreak toolchain, and in the last six months with the official SDK. Likewise, I’ve been dabbling with the Android SDK.

Many people have compared the growth of mobile software in the last year to the amazing growth of the early PC era.

One difference from those years, is that mobile software is already mainstream. The “personal computer” took about 20 years to “catch on,” from the introduction of the Apple I in 1977, to the Windows boom of the mid-90s. In contrast, Apple has sold over 10 million iPhones in the last 11 months alone. There are few consumers that aren’t at least aware of the iPhone’s existence. T-Mobile sold about a million Android-powered G1 phones in only one month of pre-sale orders from existing T-Mobile customers. The device can now be ordered online for new and existing accounts, although demand is expected to be very high, causing possible shortages. They claim they can sell another million G1 phones between now and the end of the year.

Another difference is the barrier to entry. Computers cost thousands of dollars in the 1980s, and were not as easy to use and develop for at the beginning. To be a developer back then, you had to be a computer engineer or someone with previous software development experience on mainframes or minicomputers, which at the time was not as widespread knowledge as in these dime-a-dozen-MCSD days. The barrier to entry was very high, economically and educationally. The barrier to entry for iPhone and Android development is very low, with devices available for less than $200 USD. If you already develop software, be it for the web, intranets, or desktops, you already have most of the skills, and a computer with which to develop. So the cost of development tools and training for these platforms is very low, especially for Android. How come it is lower for Android development, you ask?

To develop for the iPhone App Store, you need to already own a Mac with Leopard 10.5.4. So if you don’t have a Mac, that’s an extra expense. With Android, you can use the computer you already have. To put your application on the iPhone App Store, you need to pay $99 USD + tax to Apple and submit your application and say please and cross your eyes and dot your tease (double pun intended, if perhaps lame.) You can sell Android apps from the trunk of your car at a flea market if you want, but to sell them on the Android Market you need to pay $25 USD, although there is no validation or approval process. For either iPhone or Android, you need to buy a device to test on real hardware and make sure things run well.

Of course, you can always develop iPhone software for the iPhone jailbreak community, using the computer you already own, without having to pay anyone a cent, nor having to seek permission. You will still need a device on which to test on, which brings you up to par with Android in terms of barrier to entry. But then you’d be limiting your market to the 20 to 30 % of iPhone users who jailbreak their device. 200,000 – 300,000 and growing is not a bad number of potential users, though. Many of today’s software giants were founded when PC user numbers were much lower.

Anyhow, I digress. My point is that just like I heard the call of the wild and left full-time employment in a Java consulting shop for freelance web work in Rails nearly three years ago, I hear the winds of change and opportunity roaring by. And I want to get my kite out and test the wind.

As you can see, I’ve researched the market. I’m going to cut back on freelance web projects, to start dedicating time to developing a growing stable of ad-supported and for pay mobile apps, for both iPhone and Android. I can bootstrap this effort and support myself for two years on only a small portion of my savings. I believe there is enough growth in the mobile apps market to make back my investment and grow it a little bit. The monetary barrier to entry is so low, the only risk is time and effort lost if things don’t work out. If that happens, I can always go back to what I did before. But I’m not going to forgive myself if I don’t try this.

There will be other related news soon. :-) Meanwhile, enjoy the breeeeezeeeee. Ha ha!

Song “Can You Hear The Wind Blow”, by Whitesnake

Posted in gadgets, hacks, life, open.source, software.development, technology | Tagged , , , , , | 1 Comment

My beach, where I grew up

(This post was inspired by Evil Genius Chronicles, Lunches at the Beach.)

I grew up in this very town, 37 miles west of San Juan on the north shore of Puerto Rico. This very house where I live now was my grandfather’s house when I was eight years old. It later became my home, from ages 11 to 17. After graduating from high school, I went to Pennsylvania, PA to study Computer Science and got a job straight out of college. I moved here again almost seven years ago, when the dot com bust left me looking for a job.

I live 5 minutes from the beach, a beautiful bay, in my not so humble opinion.

I loved the beach growing up. I visited the beach every chance I got, even though I didn’t learn to swim properly till I was 16 years old. I just liked to walk the beach, sink my toes in the warm sand, or chill my feet in the water. And my beach has these great hulks of stone nearly three stories high (eolianite according to this page .) I loved climbing them and sitting at the very top and just stare out over the endless stretch of the north Atlantic on the horizon. At different times of the week, you can see the cruise ships heading for the Bahamas or Florida, just a half mile or so from the rocks.

As mentioned at the beginning, after I graduated high school I studied and worked in southeastern Pennsylvania and the North Carolina piedmont for 13 years, several hundred miles from the nearest beach. You can’t imagine the joy I felt every time I returned home on vacation to visit family during those years and stopped to visit this beach. I’m sorry, eastern USA residents, but your beaches are lame. And don’t even get me started about Lake Erie and Lake Michigan. Psh!

For the last two years, I’ve been working from home as a freelance software developer and tech writer. I pretty much can keep my own hours and so I make a point of taking an hour break at least twice in my work week, to head to my beach, just 5 short miles away. There are times I just take the whole weekend away from computers, work, everything (except my iPod and my fiction reading stash.) Sometimes I feel so burned out I just sleep all day on a hammock, less than twenty yards from the breaking waves. The sound of the waves and the steady cool breeze lulls me to sleep every time.

Every year since I moved back here, I ask myself if I want to move back to the USA mainland. And this beach is one of the few reasons I’ve stayed as long as I have.

Posted in life | Tagged , , | 2 Comments

Hades on Ice, coming to a city near you SOON!

Yes, it’s a little colder in hell as I write this. If you look out your nearest window, you’re likely to see monkeys flying on the backs of pigs. Which means Armaggedon is starting any day now.

I’m talking about this:

Microsoft has recently released a public beta of IE8. Standards and security are of top importance in this release. To that end, the IE team is planning on releasing IE8 in full standards mode. Releasing in Full Standards Mode offers many benefits in the long term, but short term, could cause some end-user and developer issues. We would love to understand your thoughts around the impact of this specific issue and invite your suggestions on how we can best communicate it.

If you have thoughts and feedback on IE 8 releasing in full standards mode, please respond to the questions below and send your reply to with “[IE8 Community Feedback]” in the subject line by this Friday, April 11th at Noon, PDT.

1) IE8 releasing in expected to release in “standards mode”.

(a) What do people in your communities space think about this decision?

(b) What do you predict the impact to be on the customer and/or Developer experience?

(c) Do you have a recommendations on how best to share this information?

2) Our current plan is to communicate this heavily with web site owners and developers. We will be contacting top sites directly, distributing developer FAQs, and writing Knowledge Base articles on authoring to these standards.

(a) Do you think that will be effective at improving the customer experience?

(b) Are there other suggestions do you could offer to transition web sites to be standards-based or to improve the experience for users?

and this:

Adobe is removing restrictions about how the specifications on the FLV [Flash Video] and SWF [Flash Application] files can be used, and we’re removing royalties on using Flash Player on mobile devices. We’re also publishing the FlashCast protocol as well as the device porting layer APIs for Flash Player. That will allow people to port Flash Player to a wider range of mobile devices, and also to create a Flash player from scratch, based on the Adobe specifications for the file formats.

Adobe will continue to try to not let the market fragment by providing the best Flash Player there is. We will continue to provide Flash Player across all the major operating systems, and try to make that the best player on each platform so people continue to adopt that one. But now anyone is free to build their own Flash Player.

I don’t know about you, but I’m buying my tickets to Ice Cap Hades today!

Posted in Uncategorized | Comments Off on Hades on Ice, coming to a city near you SOON!

WordPress upgraded; loot awarded

When WordPress 2.5 was announced, I decided to stay on 2.3.x for a while. I finally upgraded to 2.5.1, and I’m glad. My Bad Behavior plugin was outdated, and WP offered to upgrade for me. It happened without a glitch. From reading the upgrade information, it seems that when 2.5.2 comes out, I’ll be able to update by just clicking a self-update button on the administrative interface.

The new WordPress administrative interface is a lot less cluttered, and more useful information is shown on the main page. The look is cleaner while remaining usable. It looks like a lot of time and effort was spent improving it.

Rather than tip my hat at the WordPress folks one more time (it’s getting old to do that every few months) I’m just going to give them Dread Pirate PJ’s Hoard of Loot lifetime award.

The image is from playrough’s photostream on Flickr.

Posted in upgrades, wordpress | Tagged , | Comments Off on WordPress upgraded; loot awarded