Join us on Twitter and IRC (#ludumdare on Afternet.org) for the Theme Announcement!

Thanks everyone for coming out! For the next 3 weeks, we’ll be Playing and Rating the games you created.You NEED ratings to get a score at the end. Play and Rate games to help others find your game.We’ll be announcing Ludum Dare 36’s August date alongside the results.

New Server: Welcome to the New (less expensive) Server! Find any problems? Report them here.

ippa's Trophies

ippa's Archive

I used the <canvas>-tag since I wanted to make a freeform level with pixelperfect collisions, basically I made the whole thing in graphics gale, could as well have done it in paintbrush.

The new HTML5 <canvas> tag makes it easy to get the data in raw format, basically an array with RGBA values. From there on it’s to check collisions.. 1 pixel at the feet is a decent start.

The most annoying thing is probably the audio-formats that’s supported for the new <audio>-tag.

Safari doesn’t play OGGs for some lame reason, and Firefox doesn’t do MP3s. So all audio has to be provided in 2 formats.. also you wan’t detection at asset-loading time etc. I could have lived without that cruft.

Otherwise Javascript has become amazingly fast, I think V8 is faster then ruby and python. All browsers come with good debugging possibilites.

Javascript doesn’t have the traditional classes and inheritence, but rather prototypical inheritence.. which can be confusing at first.

What I love is the dynamic nature of objects in Javascript.. basically all objects are big key-value storages (hashes).

So you can whenever you want just set a new flag/property on whatever object.

if(player.dead) { … do something .. } // played.dead is now true and code will be executed

The biggest upside with javascript is ofcourse ppl not having to download anything. No virus-scan etc etc. Just instant gaming. And the big players are making the javascript engines faster on a daily basis.

Been working a lot on a Javascript game engine called JawsJS ( http://www.jawsjs.com/ ) for the last months. Aiming to make a game with it this LD.

So why make a game in Javascript?

– ppl don’t have to download/install/unzip anything

– no securityworries where ppl have to scan your files and/or switch to their “game user”

– The new popular HTML5 comes with tons of new power, canvas tag for freeform painting, audio tags, local storage, websockets for multiplayer.

– Builds on years of experience of my Ruby game engine Chingu

– instant deployment across all operating systems, hell even for tabs/phones if done right.

Now the last point isn’t 100% true. There’s a lot of browserquirks to take into account. But if the gamer has a decently recent Chrome of Firefox there shouldn’t be a problem. IE9 works well too (8 is kinda flaky in certain areas though).

Most GFX and game logic done, quite some glue and polish left. The last 20% really takes 80% of the effort. Which makes sense as no mather how well you organize your good you’ll still end up with growing complexity to look after.

I’m doing Ruby this LD and I feel extatic. First off my ruby game framework Chingu [ http://github.com/ippa/chingu ] has been making strides the last months. Tons of details have been polished and a lot of bugs fixed. Chingu now comes with a general editor in form of a game state.

From inside your game, just:

push_game_state(Chingu::GameStates::Edit.new)

And your current game will be paused and the editor toolbar become visible. You can now move, rotate, delete, scale, modify zorder and fade any instance of class GameObject you have on the screen. Or put out new GameObjects of your choice from the icon toolbar.

Phew. Voting is a lot of work :). Downloading everything, unpack them into folders that include the author name (makes things easier afterwords), fixing broken entries, maybe even installing extra stuff, playing the game, thinking up fair votes and commenting.

Playing the game

I feel you have to give the game a chance. Even if it looks really boring in the beginning. Sometimes it turns out to be really boring, but I feel more often it stuff can grow on you if you open your mind, try to ignore any irritating bits and concentrate on the mood the developer try to create. I found myself really trying to finish several games (and succeeding) and steering a little grey dot over a paintbrush map for at least 10 minutes (and enjoying it) :).

Voting

Voting is hard. You want to be fair (naturally). After I’ve played about 5+ entries I get a feel for what I consider a music 3.. or a humor 4. I can only decide on ratings by comparing the games. Is this how everyone does it?

Commeting

Getting positive feedback and comments is probably the most fun, and could be a big part of the motivation to make a game for LD. Since I enjoy it so much I feel I should write something (sometimes more, sometimes less) to 99% of the entries I try. I doesn’t need to be much work commenting, just say what’s on your mind and focus on what’s good in the game, or how something could be made even better. If you “force” yourself to comment on every game you get good at it after a while

Maybe I’ll make a sequel too since the original game was so tiny. Actually I already started hacking on it. Some ideas/goals:

The collision detection wasn’t perfect (for example you couldn’t jump while running into an obstacle)

I’m thinking level-building from One big image instead of several small, but there’s quite some things to work out before that’s possible.

More interaction with the world, could be levels to pull, buttons to push, doors, modification of terrain or living enemies, not just acid pools/drops. Preferable additions that don’t complicate the level building to much, now it’s basically drawing a new image and creating one class — liberating easy.

I used my favorite language of all time, Ruby. With 1.9 Ruby has picked up speed and with Ocra you easily make a ~1-2 meg exe-file out of it. Also the excellent (and german precision engineered) Gosu enables OpenGL accelerated 2D. On top of that I used my own Ruby/Gosu-specific framework Chingu to get game states, re-usable game logic and a boiler plate “game object”. To get a speedy get_pixel() I used the awesome Texplay by John Mair.

I have a pixel fetish. I love retro-looks in games, and I love pixel-perfect-collisions, a fetish that probably came into existence playing hours and hours of Lemmings 2-player mode on the classic Amiga 500.

So, the most time was spent up building a good pixel-perfect-collision algo, and it came out very playable, but not perfect. I ranted about it in my last blogpost.

With Ruby and Chingu my level-building got very clean, I think even ppl not into Ruby could understand what’s happening here: