software engineer, Cambridge MA
Previous Ludum Dare entries:
Deep Escape (LD15)
Good Ship Exploration (LD19)
Abigail's Descent (LD21)
Intro to Fixology (LD22 warmup)
The Last Adventurer (LD22)
Ludum Dare 26 — April 26-29th, 2013
[ Results: Top 100 Compo, Jam | Top 25 Categories | View My Entry ]
[ View All 2346 Games (Compo Only, Jam Only) | Warmup ]
[ 10 Sec Video Compilation (x3) | 260 Game Video Compilation | IndieCade Deal | Ludum Deals (Unity Deal Ends Soon!) ]
software engineer, Cambridge MA
Previous Ludum Dare entries:
Deep Escape (LD15)
Good Ship Exploration (LD19)
Abigail's Descent (LD21)
Intro to Fixology (LD22 warmup)
The Last Adventurer (LD22)
Ludum Dare 26 | Ludum Dare 25 | Ludum Dare 24 | MiniLD #34 |
Ludum Dare 23 | Ludum Dare 22 | Ludum Dare 22 Warmup | Ludum Dare 21 |
Ludum Dare 19 | Ludum Dare 15 |
My first Ludum Dare game required python plus a couple libraries. It got 9 ratings. That’s when I decided I had to learn to make web-based games if I ever wanted anyone to play them. So I tried hard to learn Flash, and didn’t like it. Then I heard about HTML5 and learned that instead. I looked around for an HTML5 game library I liked, and realized I’d learn best if I wrote my own. So a couple months ago I started making an HTML5 game library called UFX. Tondie and Zupe is the first game I’ve made using it, so that’s kind of cool. UFX is still pretty incomplete (the game locks up in Firefox, I suspect that’s due to a bug in UFX), but I hope that by next LD it’ll be good enough for people to use if they like.
UFX uses a component-based entity system. This is the first game I’ve made using such a system, and I’m hooked. If you’ve made a few games with a class hierarchy for your entities, I strongly recommend looking into component-based systems. It honestly felt liberating to write the code!
My code base stayed pretty sane this time around. If I continue development, I’ll be able to keep most of what I have. I do remember thinking to myself, as I was duplicating 10 lines of code, so this is when my camera module becomes an inelegant mess. Fortunately most of my modules didn’t suffer the same fate. JavaScript doesn’t really deserve its bad reputation, which only exists because tons of JavaScript was written by people who don’t know JavaScript.
Most people who comment on HTML5 as a game platform say it’s not ready. That may be true in certain ways, but I think people are still underestimating its potential. The best way to make that point, though, is just to make good games with it. With Tondie and Zupe, I was impressed at the performance I got. I never do any image caching or optimization. I just zoom, scale, and rotate, and draw the graphical primitives I need. Chrome does an excellent job keeping the framerate up, even with many enemies on the screen. It’s fun to see other people’s HTML5 entries too. I hope we can inspire each other to push the envelope and get HTML5 recognized as a contender.
The graphics in Tondie and Zupe are 100% hard-coded vector graphics. If you look at the source, you’ll see it doesn’t load any image or data files. Doing it this way seems like a pain at first, but it’s very powerful if you’re willing to try it. It makes animation very easy, which was important for achieving the right “bouncy” feel for this game.
Finally, I kind of lucked out with the theme. Cylindrical coordinate systems happen to be a specialty of mine. I’ve done similar things before (which I’ll write more about in the next postmortem), so this part was easy. I’ve gotten a lot of positive feedback about the controls and camera, so I think people appreciate it.
Many posts here give tips on how to succeed at Ludum Dare, but you know what? Lots of them contradict each other, and lots of them contradict my experience. Everyone’s ideal process is different. I know what works well for me, and that’s all any of us can know. The only way to learn how you can succeed at LD is to do it! But here’s what I know about my ideal process.
The shower is the best place to come up with ideas. I take a shower right after the theme is announced, and I have the gameplay figured out by the time I’m dry.I’ve gotten lots of positive feedback so far, thanks! I’m really happy with my entry. I’ve come a long way since my first Ludum Dare.
Over the past few months I’ve been working on a Javascript library for HTML5 games called UFX, which I plan to use for this competition.
It’s still woefully incomplete and underdocumented, but if anyone is interested in trying it, I’ll be happy to help in any way I can! It’s designed to be modular, so you can use one module without using the others if you like. Right now it only covers the very basics, like keyboard and mouse input, frame management, resource loading, and a component-based entity system. There’s also a RNG and a sweet Perlin noise generator. I’ve only been testing it on Firefox and Chrome.
So yeah, I don’t really recommend anyone try it this time around, but hopefully this will help me get it in better shape for next time!
All posts, images, and comments are owned by their creators.