Development Diaries

SpindleyQ's picture

Reverse-engineering Klik & Play .IMG files

Inspired by qrleon's painstaking hand-capture of some of Klik & Play's most glorious sprites, I decided to look into how hard it would be to crack the Klik & Play file format.

As it turns out, it wasn't really that hard at all! Reverse engineering is kind of fun. And I discovered 010 Editor in the process, which is all kinds of badass.

I'm pretty sure I now have enough information to batch extract raw bitmap data, if I just knew exactly what KNP's colour palette was. I think the simplest way to find out is just to take a screen grab of the sprite editor and slurp up the colours from that.

The on-screen colour palette maps onto colour indexes like so:

0 16 32 ... 240
1 17 33 ... 241
2 18 34 ... 242
... ... ... ... ...
15 31 48 ... 255

except for one cute trick. The first colour, 0, doesn't actually map to 0, it maps to some other black elsewhere in the palette (207, IIRC). 0 is the transparent colour.

I'm not sure yet if there's any way to tell, just given the .img file, which images correspond to which objects, animations, etc. I'm guessing that there probably isn't, which is unfortunate, as .gam files are a lot more complicated. (There's all kinds of friggin' garbage data in them.)

I've attached the 010 Binary Template that I whipped up while I was figuring out the Klik & Play .img file format, to help future generations of people who want to reverse-engineer the Klik & Play file format. I also loaded that last sentence up with keywords so that Klik & Play hackers might find this page via Google.

snapman's picture

Community Chainwreck


This is my first attempt at a community project, so let me know which parts are good, which are bad, etc...

Presenting the first Community Chainwreck! A chainwreck is a game built by multiple members using the same template. Each level (or should I say "railway car") of the chainwreck is linked in a consistent way to the preceding and proceeding screen. The objective of the participant is to create a fun and challenging obstacle to the player's progress from the current screen to the other screens.

For this specific chainwreck, participants need to position two objects in their level: The goal and the exit. Everything is set up so that the goals will show up in 5 randomly chosen levels. Once the 5 goals are collected, the exit will appear in one of the levels. To make your level difficult, obstruct the player's path, or reset the level (death). The template consists of the existing counters and objects, and the first 10 events. These shouldn't be deleted. Don't use player values (score and lives) as these values are used extensively by the template.

The file has two copies of the template, so you can see how the game transitions between levels. One template is using a platform movement for the player avatar, while the other is using the 8-directional movement. You are not limited to these two movements! BE CREATIVE! PM your completed levels to me, and I'll assemble them all together in a chaotic manner. The current deadline for submissions is the day before the next KOTM. Feel free to submit more than one level, but remember you're not limited to 2 hours or anything.

"Eddie the Engineer's traingame is off the tracks! Track down the 5 missing gears, before Eddie loses his mind completely!"

kirkjerk's picture


If there's one thing I learned from the MIT Mystery Hunt it's that I like Game James a lot better. A HELL of a lot better.

Actually this extends to like board games. I'm not very competitive, I'd rather not play and stay safely in my ego cocoon than risk proving my freinds smarter than me, but I love creativity based games like Pictionary and/or Scattegories and all that lightweight stuff.

Six's picture

day two: despair; willie nelson


agrgrggag need clipart

i'm capping myself at two hours each day, including design time and finding/creating resources like sound and graphics, etc. if i don't come up with anything even remotely interesting at the end of that period, i still have to compile it and put it up here to shame myself into doing better next time. which is what happened today. and yesterday. i think tomorrow i'll try to scrape the slate clean, somehow.

not worth the sizeable download
(i should also really start resizing images instead of just importing them in there wholesale)

Six's picture

i am making some games in 2009, part one.


hi! how are you? myself, i just moved to a new place -- nice enough, but it has a few problems -- and thanks to a misunderstanding with the previous tenant, am stuck without internet for a while. but come hell or high water, i'm still going to follow through on my new year's challenge, which is to make and post a game every day this month.

i'm also trying to expand my game-makin' horizons a bit, especially now that i no longer have a computer that can run klik'n'play.

so, having said all that, here's my first game of the year, entitled: "I Don't Know How To Use Construct, Or, My Fridge Is A Deafening Power Glutton And A Breeding Ground For Spreads Of Ill Repute."

happy new year, glorious trainwrecks!

(in 7zip form to meet size constraints, sorry if that's a problem. uses this newfangled 'mpeg layer-3' technology, is why.)

qrleon's picture



Babelfish wrote:

This or was a warships carnivore mashup.

*Extreme bicycle activity!
*Beautifully the parallax background which is detailed -- That moving!
In check point *Continue!
*An of facing each other all of a sudden does to make surprise the set! which
*Withheld ends! The mystery endures.
*Happy new year!

snapman's picture

Kristmas RUN


Merry Kristmas, everybody! This is my Christmas game for you.

Original game idea, and line-art for the title screen by StorybookWeaver, coming-soon game box version by WordRescue (two good friends of mine). I'm pretty proud of this game. It was a really fun exercise in simplified game design, and pixel-art. Personally, I think the main title screen turned out beautifully.

WordRescue will be by in a bit with the "commercial box" for the game. Consider this the shareware version.

SpindleyQ's picture


I really need a snappy name for this project, so I can register a domain (or at least a Sourceforge project). InfraBaby isn't really doing it for me.

SpindleyQ's picture

V.Smile Update

So, since my last update, I've managed to completely decode the V.Smile Baby's IR format. Those last three bits that were so confusing to me were actually a combination of a very simple "repeat" bit, and two checksum bits! Once I figured out how the checksum worked, everything became clear. I've attached a small document containing the complete decoding scheme, which is actually much smaller now since I can take the raw data out for repeat codes and so forth.

The next step is to write a little script to generate the Lirc configuration file.

The step after that is to package everything up into a user-friendly bundle. Even if I don't have a nice menu or configuration method to start, it'd be good to bundle WinLIRC and automatically start it when you boot up. Not to mention building an EXE instead of requiring the end-user to install Python and the various random libraries that I'm using.

As an aside, my son enjoys AlphaBoogie, but so far he still hasn't really made the connection between pressing buttons on the controller and things happening on the TV.

kirkjerk's picture

idea backlog

I'm reading Tracy Fullerton's "Game Design Workshop" book. One idea she puts forth is don't worry about playtesters stealing your ideas, your game will be just about as hard for someone else to make as it will be for you, and you obviously have a head start...

Those economics don't quite apply to quick and dirty KotMK-able games, but I'm still a little nervous about sharing because A. i guess i'm "paranoid" about some stealing, but would that be such a bad thing? B. I'm worried I might disappoint people who see this list and what I'm NOT working on

So here is the list from my iPhone "glorious trainwrecks" memo, with explanations, roughly in reverse chronological order

  • space war with rotational inertia - I heard Space War originally had rotational inertia, which is an element usually left out. I'd like to find out what it feels like
  • space war boxing - thinking of the old 2600 boxing, overhead view, along w/ playing Little Big Planet. What would it feel like to swing big fists?
  • like unfinished swan game demo, but 2d... use paint gun to see otherwise invisible area and monsters - most likely next Trainwreck - but in 3D. I'd almost like to try it KnP, but I'm not sure I know how it handles "invisible" objects. Also I'm total pants at KnP
  • katmatari damacy using sprites - I did this a bit with cosmicarkatamari for the Pirate Kart, I think I would want it with more colorful sprites (maybe Atari?) and having the mass of cuaght things rotate a bit...
  • like sperm game but you have to lure sperm into contact with something - Preggers was another Pirate Kart game... just my general love of simple smooth motion physics games
  • javascript game library - just thinking about what a generalized javascript game library would look like...
  • slingshot - I kind of this OLPC Physics Game Jam - which reminds me, I really should use the Java wrapper for Box2D stuff, one of the maintainers of that port was that the game jam, and it would probably be much more solid than my half-assed "engine"
  • pick up the phonebooth and die 2600 - if I ever get around to using Batari BASIC, this would be my first game that about 8 people would find conceptually amusing
  • atari basic simulator - Atari BASIC Programming is classically weird and wonky, but I admire the effort a few people have made to make playable games in it-- unfortunately i haven't been able to really see the games, because the emulator support is so-so for the keypads, and the keypads used such a weird ass way of entering commands. But an emulator that could let you type in the code might work...
  • cellular automata system CAoleslaw - SpindlyQ would love love love to see this.
  • life war, majority wins - maybe glider gunner? - a bit like Conway West, but more Life- centric. I was thinking the player could fight the ghost (or, heh, a 2 player network version... dreaming...) in painting life blobs. Normal life rules, but every live square has a team color, and for birth, the new cell gets the color if the majority of its 3 neighbors. It might turn out painting isn't a good enough game, so another variant would be firing off glider guns...
  • atari rips..... - I think this is shorthand for "smash bros w/ atari characters", grabbing the sprites from the game... though the motion and attack forms would be tricky.
  • heatseeker via repositioning? - heatseeker is this old C=64 game I might still do a Java processing or maybe even Batari Basic 2600 port of -- here I'm wondering if KnP could do it.
  • game where firing is done when you collide with object, like a cannon - if/when I do a KnP game, this is a mechanic I might like to try. Typical "run from the monsters" but with cannons that are constantly rotating (or maybe not) and the player running into them fires... just exploring the indirection
  • assemble little robots to do fighting for you -another study in indirection. I love the idea of having to craft an army... one idea I've had for a while, but w/o the right interface or gesture recognition, is rock paper scissors, where you draw circle, square, or x, and then fling what you draw at your opponent who is doing the same. Or the way ASCII bots has 1000 robots based on head, torso, feet, having to put together your minions to do your bidding might be an intereting game. Or snowmen from 3 diff sized snowballs? All of this might be tough to implement, but still, not my worst idea

UPDATE Half asleep, I had some more ideas for some of gamebuttons, games where the display and input is all a "normal" HTML pushbutton.

  • "Birth control", target little ~o as they come swimming by
  • Olympics - archery, hurdles
  • slot machine
  • Rock Scissors Paper
  • some kind of hungry hungry hippo
  • sideways lunar lander
  • Some kind of RTS gaiden, where your the local commander of a base and just have to press a single button when told to to make a unit.

Most of these ideas are pretty bad

Syndicate content