Game Development · Uncategorized

JetLag 2017 on GameJolt


Yes, that’s right. JetLag 2017. Like all the other JetLags, but in 2017.

Play it Here!

Naturally, when I make a new JetLag, it means I’m exploring a new platform for development, and 2017 is no different.

This years platform is Defold, a lua scripted scenegraph manager tool.

It touts itself as the “Ultimate Engine For 2D Games,” which is a lofty ambition.

Pedantically speaking, the world “ultimate” means the same thing as “final”, and non-pedantically, it means that there will never be a better one. Neither of these things are true, of course.

This version of the game sits up there on GameJolt, right next to JetLag 2016, made with a similar tool, Godot.

If you’ve followed my history at all, you will know that I’ve tried just about every tool there is, every platform there is, and most of the languages out there. You might ask the question, what am I looking for?

I’m not actually looking for anything. Certainly, I’m not looking for the “ultimate” anything. I learn things as an end unto itself.



How to just trust @cokeandcode, and thus not be an idiot

I mentioned something like this before:


After my various struggles with getting CTYR working on linux and mac, I did a brief pre-prototype of JetLag (which means: an application that has an ASCII grid that randomly changes once per frame)

And, just for a lark, went through the following procedure:

  1. export my common library (pdgcommon) into pdgcommon.jar
  2. export my game (jetlag) into jetlag.jar
  3. Fire up jarsplice
  4. add pdgcommon.jar and jetlag.jar
  5. also add slick.jar, lwjgl.jar, and the jogg and jorbis jar
  6. *IMPORTANT* add the natives-(operatingsystem).jar files
  8. Set the correct mainclass (in my case, com.pdg.jetlag.Program)
  9. make the fat jar
  10. Put it in my dropbox public folder
  11. download on linux and mac

What I had been doing before was adding the natives I downloaded from lwjgl. *FACEPALM*. I needed NOTHING outside of the slick/lib folder. IT WAS ALL JUST THERE ALL ALONG!

So now, a couple of links:

CTYR that works on windows, mac, and linux.

JetLag pre-prototype that also works on windows, mac, and linux.

And now some screenshots, in the spirit of the internet being the refrigerator upon which we affix all of our proud works with magnets.

Both working on the mac:

And CTYR working on ubuntu

And jetlag working on ubuntu

I have the fps counter working on the JetLag pre-prototype.

On my windows machine (not shown), I am getting 43 FPS.

On the mac machine, I am getting 44 FPS.

On the linux machine, I am getting 10 FPS, which isn’t bad for a Dell Inspiron B120.

In other events leading up to this iteration of JetLag:

I had a version I was doing last year in C#.

For this version, I decided to make a small PNG for each of the characters in each of the colors.

I generated these programmatically.

For the Java version, I decided to import them and make use of them.

4096 16x16px images are about 670K, which isn’t bad, but I don’t actually need them.

Slick2D has a nifty colorizing function that will take the white one and shade it whatever color I want.

It also has a way provided that I can use a single PNG and split it into a tilesest which I haven’t investigated.

For anyone’s perusal, I have the flash version of jetlag stripped down to its bare essentials (I was in a weird minimalist phase, and sucked most of the campy fun right out of jetlag) available.


Old Flash Version, for Comparison

I also put up my old flash version of CTYR. The high score stuff no longer works, naturally, but you can see the game itself, which is surprisingly almost identical to the new Java version.

Which of course brings up a good question: why in the world am I rewriting CTYR?  Does the world need another version? Are there new features?

As you will have surmised, CTYR is my sandbox game.

As a result of CTYR’s new version, I now have a nice little Java library of stuff I need in various games.

I even figured out how to put it in a separate project in Eclipse. Yay for me!

Next step, after figuring out how to get CTYR’s java version into an Applet, is another swell game: JetLag!


Silverlight, Looping MP3, Sadness, and Woe

So, I got to the part in JL2011 where I start to put the music and sound effects in.

I have another game where I did this (Object Ouster), so I just grabbed the classes I used to manage multiple sound effects, and went with it.

The sound effects worked flawlessly.

The music….

Not so much. There is an awkward silence while playback loops.

So, I head to the interwebnets, to find a solution.

Because this is JetLag, and if the stupid JetLag song doesn’t play, its just not JetLag.


$_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

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.