The Quest of Shapeless Island

In this epic story you star as Shapecules - a small hero set out to collect the shapes that escaped into the dungeons of the wild island.

Controls: Move with WASD or Arrow Keys. Shoot with X, J or Space. Make the Colored Shapes Collect Other Shapes. Bump into Colored Shapes to Change Shooter.

Source code and assets

In the zip file you will find the source code and art assets (gfx). You will need the latest Phaser.JS and Microsoft Visual Studio to create a project and compile the TypeScript source code.

Download .zip (256 kB) 2016-04-17 (Competition Version)

Ludum Dare Theme

Shapeshift - finally a theme that was not worthless! Perhaps the new voting system for Ludum Dare has been a blessing? Or is it the fact that I didn't bother at all with the voting/slaughter!?

From my previous competitions I've learned that I am absolutely useless at predicting the winning theme. So even if brainstorming ideas for the different final themes can be fun, I've had enough of bouts with announcement-disappointment-syndrome that I've just given up. Also I found out by now that I usually have to cut down on so much just to get anything out within 48 hours that getting pumped up on over the top ideas is just uneccessary. Making a few One hour Game Jams have also made me a bit more blunt regarding theme-orthodoxy, so I might take the themes a lot less literally than previously.

Themewise this submission is much more inspired than grounded. Shapes are moving (shifting?) and the hero's shooter changes shooting pattern depending on the shape the hero bumps into - but that's about it :) I had obviously wanted to create more content and a better overworld. Also the dungeons could have needed a bit more scrolling and more shape/shifting gadgets. The hero could have needed some more shapeshifting mechanics ... but 48 hours only allows you to do so much if you want to keep your sanity. With only three hours left, and a busy work day coming up, I had to stop with what I had and wrap it up.


TypeScript and Javascript is indeed a powerful combination. The type safety, inheritance and "compilation" of TS is a blessing and makes working with Javascript a bit more easier. Also having Intellisense and the debugger in Visual Studio working is soo nice. Javascript is what it is, but since it is so supported I feel that HTML5 is becoming the more obvious choice for game jams, mostly because of the easy accessability and availability since the competition hosting is already web browser-based anyway.

The worst part of using Typescript and Phaser is that it works so different to what I normally use. As soon as I need to do anything "advanced" I have to search for tutorial/examples and forums posts, hoping that they are relevant to my version of Typescript and Phaser library (also, since the JS-Phaser examples have their own quirks of doing things, just copying the example Javascript code into the TypeScript world doesn't always work).

I find I'm still a bit locked in thinking about the entire structure as class based (typical C# and HaXe-approach), so I keep running in to dead ends where the event based and more functional programming style of Typescript/Phaser makes me loose the "context" almost all the time. It feels a bit weird working inside a context-less function with arguments of unknown/"any" objects, when I'm so used to working with pointers and references. Very liquid and hard to debug!


I spent the first day creating all the art, mostly messing about in FilterForge with various ideas. I had sketched out on paper what I wanted to create and just had to execute it 'good enough'. Making sprite art is still such time sink and every time I furiously curse and blame myself for not writing a few automatic art-generators just to get the most common elements out.

I skipped audio this time entirely, mostly because Phaser.JS is a bit of a new platform for me and I haven't looked into the audio system yet. Also I was a bit burned out creatively and felt I couldn't justify 2+ hours inside FL Studio just to out some background music when I had about 4 hours left of wrapping up. Recording and creating sound effecs had been really fun, but there was a bit too much 'new stuff' going on this time. I need to do a few more audio tests with Phaser to see how it works so I don't run into any major problems.


Looking at the other games in the LD#35 compo I've seen a lot of ideas based on a hero 'of some shape' that will shift 'into another shape' to get through the course obstacles. But if I've learnt anything from the previous competitions: LD-games usually have a HUGE range of execution and theme interpretations. Most of the games are like small universes with good and bad parts. But usually you can steal a lot ideas from them all combined. So like before I hope to play about 100 games again to feed my brain for the next competition and get some new stuff to reflect upon. It will take a bit of time but I will probably see you in the comments on the LD site. Have fun!