It’s been a week since the end of the challenge and I’ve had chance to think about how Peli turned out. Overall I’m pleased with what l ended up with, but still have plenty of ideas I didn’t manage to implement.
I wanted to make something traditionally rogue like – so increasingly difficult monsters in a clichéd dungeon setting. With permadeath, of course.
I didn’t want to spend an age tweaking levelling and monster characteristics so decided almost straight away to base everything off the Fibonacci sequence, or multiples of. Floor sizes, monster stats, XP and levels. Everything really!
My main side project is a web based pixel art editor so I wanted to use a minimal pixel art style and write the game for the browser.
What went right
- I concentrated on getting something live and working on a browser on the first day. It was only a blue square, but it scaled automatically to fit the window and (in my mind) looked great already. It also meant I could get feedback from others very quickly. Deploying was a simple one liner. Very satisfying.
- Smooth animation over a grid rather than ‘teleporting’ makes the experience feel quite smooth and, hopefully, professional.
- Using the Fibonacci sequence removed a lot of decisions and tweaking, as hoped. I’d probably try a refined version of this again.
- The technology used really upped my productivity. I wrote Peli in CoffeeScript with Yeoman providing the server. This showed my work as I typed which was a lovely fast feedback loop. I used rot.js for the dungeon generation, the pathfinding and the main scheduler. All the tricky bits 🙂 I’d use it again without hesitation – it doesn’t mandate many data structures and relies on callbacks for map generation and path finding so it fitted in really well.
- My focus on minimal pixel art meant I could crank out the animation and sprites very quickly, and not get too hung up about the art.
- The music from Edward Shallow and 8bit sound effects added at the last minute make Peli feel like a real game.
What didn’t go so well
- Leaving gameplay and balance to the last minute meant the game was pretty dull for the first 6 days, and is likely horribly unbalanced and unfair now. I think I could have kept the procedural generated monster stats, but have better visibility and understanding of how it affected balance earlier on.
- Similarly the setting is quite cliched and tired. I’d have liked to be a bit more original and innovative. The monsters and items aren’t as varied as I would have liked.
- Keyboard handling is a disaster. I should have switched out the event based keyup/keydown for a proper polling of key state from the outset. I lost an evening to kludging on this.
- Instead of creating some decent AI early on, I struggled creating a half-arsed finite state machine setup and then didn’t end up using it. I should have focussed on making something interesting and then factored out the states.
- The monster animations aren’t finished and don’t show their direction. it’s not the worst problem though!
- I wanted more variety in the room types – with different tiles and furniture. I had some plans on doing this procedurally which I’ll experiment with for another game.
- rot.js offers some impressive lighting effects. It wouldn’t have been much work to have added these and added a bit more atmosphere to the game.
- Spells, scrolls and projectiles were also on the cards – but never made it.
Hopefully Peli is still fun, despite its lack of variety and balance. It’s hard for me to tell now 🙂
I’m really pleased I managed to ‘finish’ Peli. It’s got me thinking about all the other games I can make if I actually Just F*ing Do It. I reckon it was somewhere around 25 hours of effort, and didn’t stop Real Life very much. Looking forward to the next challenge!