I like easy.

Development of software doesn’t have to be difficult.

I recall plenty of times when the platform I was working on didn’t know that.

In particular, the time I was dabbling in Objective-C for the iPhone.

At the time Xcode was hard to use.

I’ve heard it has gotten better, but there is just a bad taste in my mouth from it.

So, as one of the first steps towards my goals (stated yesterday), I came across JarSplice.

JarSplice is a really easy way to package the various pieces of a Java application as a single runnable JAR file, complete with natives.

This doesn’t help with the running in a browser part, but it does help with the running on a person’s desktop without having a huge tree of items to unpack. Just download the single JAR and go.

The applet part will be more complicated to set up (for me), but at the same site as JarSplice there are tutorials on it.

So basically, I will stand on the shoulders of Mr. Ninjacave, and be able to progress further in the quest.


Next on the docket: the fate of PlayDeez.com.

Naturally, I want to keep it, but its current state (hopelessly broken) is no good, and I don’t want to be paying even the $4/month for the hosting.

So, I think I’m going to sign up for dyn.org’s service, get rid of the shared hosting on brinkster, and point playdeez.com to my little router at home and though that router to the little mac mini currently running MAMP.

My router is one of those that supports talking to dyn.org whenever its IP address changes, so we’re good to go there. I just have to set that and be done.




While I like that I’m working on a new Dungeon Delver in Java, it has occurred to me that I don’t have a single clue about how to deploy a Java app.

I know how to CONSUME Java apps, and I’d like for DD to be able to be consumed in each of the following ways:

  1. In the browser
  2. Downloadable exe for windows
  3. Downloadable JAR for not-windows

More importantly, I want to be able to base my games on LWJGL and Slick2D.

LWJGL has native binaries, and those are particular for each of the three OSs I’m targeting: Windows, Mac, and Linux.

So, an interim step for me is to make a small proof of concept game that is distributed in the three ways desired.

The choice of prototype game is pretty simple.  Usually I would go for JetLag, but this time I’m going to go with Click the Yellow Rhombus.

My game has to do three things:

  1. Read from an XML resource.
  2. Load an image and display it.
  3. Load and play a sound effect.

But before anything happens at all, I’m just going to have an app that does those three things.

In the end, I hope to have them work on all of the machines in my office: the Win7 x64 box, the Mac Mini, and the old laptop running Ubuntu.

Wish me luck.


Click the Yellow Rhombus in Silverlight

You can play it here.

First question: Why?

CTYR is about as good of a sandbox project as JetLag is.

Actually, it’s a little better because it requires mouse clicks and a slightly more refined UI, whereas JetLag only need text and blocks of color.

Also, since I made the video journal today about CTYR, it was on my mind, and I happened to have a few hours.

Its about 200 lines of code, many of them blank or containing only a { or a }.

In fact, if you really want, you can look at the source at http://code.google.com/p/pdg-hamquest-silverlight/source/browse/#svn/trunk/ClickTheYellowRhombus. (Yes, it is currently in the HamQuest repository until I find a better home).


$_SESSION Looks like a winner!

So, I’ve been looking into $_SESSION as the way of perpetuation data across web pages, now that I’ve got the site into PHP.  Very likely there will be session data flying around when moving between pages on PlayDeez.com.

Of course, there will be no content associated with having a session. Its the plumbing for future expansion, and I think a reasonable first target is the Silverlight Jetlag, since it is a smallish code base, and it is relatively easy to get my PHP session data into the object via a <PARAM>.

I’ve also been reading into getting a Silverlight application to call another webpage silently. After reading the documentation on it, I must say that it is a whole lot easier doing this from Flash or even simply JavaScript.

I also need to start investigating getting information from a FlashVars param into Haxe. I’m going with a lower flash version(7) because I want compatibility with the Wii browser and potentially other flash lite devices.

The first Haxe target is CTYR. I’m going to take the art assets from the Yahoo! Widget I made of this game.


HamQuest: Server Side

So I’m now getting to a point with HamQuest where I can start to look at the server side stuff. For the most part, the server side portions are merely those of statistics tracking. For example, the game will have a record of how many lovely hams have been picked up, how many skeletons have been killed, and how many potions quaffed.

But as is usual with this sort of idea, I want to check it out on a smaller scale game with fewer statistics. Something more along the lines of Click The Yellow Rhombus. I’m also not interested in using my old user system, nor in creating a new user system to use with these games, and so I’m probably going to go with Facebook, who will nicely deliver me a userid depending on who is logged in, and I don’t have to worry about that stuff.

In CTYR, there are only a few values to track: Hits, Misses, Score, Number of Games Played. I would track these on a daily basis per player, and keep only the last thirty days of information. I can then show reports depending on the last 24 hours, the last 7 days, and the last 30 days, and have rankings for each category.

But beyond rankings, which are good for a game, but people will lose interest after a short time, there needs to be some sort of incentive system, and the incentives need to be rule bending.

So, if I go with an experience point system, one game of CTYR earns the player 1 XP.  After a certain threshhold, he reaches a new level, and gets a number of cheater points he can use to buy advantages, like 10 free hits in his final score of CTYR, or eliminating 10 misses, or whatever, but some sort of advantage that he can purchase with his cheater points.

The XP based system is all cool and stuff, but there needs to be another way to earn cheat points. Each day must have a high scorer, and whoever gets that high score gets a cheat point.

So, two ways to incentivize: play a lot, and earn new experience levels, or do really well compared to others, and bypass the grind.

Which always leads to the third manner of getting cheat points, which is paying for them. I don’t have any current plans, but that’s how these systems ultimately work, and I’m not forgetting that.

In order to make this work, I will need a Facebook enabled, MochiAds enabled, Server side talking version of CTYR in Flash written in Haxe and interfacing with PHP and MySQL, with this simply being a straw man test for its eventual incorporation in HamQuest.

Does this mean that HamQuest will need to be written in Haxe? Maybe.