About Cosmologicon (twitter: @https://twitter.com/univfac)

Christopher Night
Universe Factory Games


Ludum Dare 35
Ludum Dare 33
Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29
Ludum Dare 27
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

Cosmologicon's Trophies

Archive for the ‘LD #23’ Category

Tondie and Zupe postmortem #2: back end

Thursday, April 26th, 2012 10:52 am

[ postmortem #1 | Play the game ]

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.

Tondie and Zupe postmortem #1: process

Wednesday, April 25th, 2012 11:52 am

[ postmortem #2 | Play the game ]

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 develop on my underpowered desktop (1.6GHz single-core EeeBox). This ensures I have great performance. Getting 15fps for my game is great, because I know that means most people will get 60.
  • Who needs sleep? A few power naps throughout the weekend keeps me going.
  • Focus on your strengths if you want the best game possible right now. For me, that’s math, procedural animation, and story.
  • Focus on your weaknesses if you want feedback that helps you improve long-term. For me, that’s sound, music, and menu systems.
  • Cutting features is not necessarily a bad thing. It’s like editing a novel. If a feature doesn’t contribute to the gameplay experience, it shouldn’t be there. Just try to recognize it before you spend time on it.
  • There’s a great moment about halfway through when, in the course of testing features, you find yourself actually playing your game for the first time. It’s really motivating.

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.

Hoping to use my incomplete HTML5 game library

Friday, April 20th, 2012 8:30 am

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!

[cache: storing page]