bygr – Success!

Screen Shot 2016-03-14 at 01.38.39

bygr is a squad roguelike in an abstracted low polygon world. You can play over at – it’s all JavaScript in the browser and the code is available to tinker with at (I make no apologies for some of the hackery).

As always, I didn’t get as far as I wanted, and the game balance is way off without enough stuff to do, but, stuff that went right:

  • Characters behave differently and some strategy/skill involved
  • Generally nice looking and varied environments
  • Progression with XP and stat upgrades
  • Easy to tweak/change enemies and behaviour
  • Underlying ‘engine’ feels pretty good, with AI, animation and UI – I’ll hopefully extend this some more

Stuff that didn’t:

  • Not enough strategy from the environment. Was hoping to add abilities to create/remove/move obstacles
  • Not enough variety/smarts from the enemies
  • No obvious link between stats and how it plays (there is one, but it’s pretty hidden)
  • Not enough animations/shiny effects to give more obvious feedback
  • No loot or upgradable abilities

I’d be curious to hear how others work on game and combat balance. 7 days is pretty tight to do much playtesting and I end up guessing my way with a handful of spreadsheets. Yet to get it right in any of my 3 7DRL attempts!

bygr – half way point

My attempt this year is ‘bygr’ and is a turn based squad game with rogue-like influences.

I’m 3.5 days through, by my calculations. Time for a quick screenshot and some naive optimism.

Screen Shot 2016-03-10 at 16.30.01

It’s pretty hard to tell from that image – but the game ‘engine’ is pretty much done. There are players, enemies, animation, UI, (rudimentary) abilities and turns. The player has a set of ‘friends’ that have energy and abilities. When they’re all done, the bad guys get a shot.

Next up is adding the surrounding screens and level progression, then the actual real characters and abilities, then the level creation. Leaving user interface and polish to the bitter end!

Peli – post mortem

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!

Other ideas

  • 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!

Peli – Day 6.9 – AI, gameplay and polish


Play it now, or poke around the source code.

Took the day off work to blast through my wish list on Peli. It was a wise choice. Implemented AI, items and weapons, damage system, combat indicators, intro/death/exit screens, music and sound effects. Phew. There’s definitely strategy involved when you play now – do you go to attack the rat for its meat, or the goblin for its clothes? Regardless, don’t let the skeleton get you… not until you hit level 3 anyway.

Is this finished? Well, maybe. Game balance and levelling still needs plenty of tweaking, but it’s more than playable and feels, dare I say it, fun.

(and the music is amazing. I wish I could take credit for it, but it’s the fine work of Edward Shallow. Absolutely wonderful stuff that I’ve used for my own soundtrack as I made Peli, alongside Disasterpeace and Lifeformed).

(it would also be unfair to not mention the wonderful Morf – Peli doesn’t have the same brilliant gameplay, but I found a huge amount of inspiration in the look and feel of the game. Go play it, it’s lovely).

So I’ve still technically got 8 hours to go, but I need sleep. I’m still clinging onto hope that I get a few more hours tomorrow for some tweaking, but frankly it seems unlikely at this point. Today has been 14 hours of effort. I think that takes the total to something in the high twenties. I’ve surprised myself at how much seems to have been done – after years of game making procrastination.

Anyway, I want to do a full witter about the experience at some point over the weekend. I’m really chuffed that I managed to get a game out of this. I hope other people can get some enjoyment out of it 🙂

Peli – Day 6 – Nudity

A little bit of polish this evening – added directional animation for Peli as well as a clothing and weapon system. It’s not wired up to items yet, but here’s a sneak peak…


(do I need to warn people about a single pink pixel? I’m hoping not…)

Also added the start of some finite state machine gubbins for the enemy AI and made the enemy stats also based on the Fibonacci sequence – this is becoming a common thread.

The latest version is playable online. Lots of stuff planned for tomorrow, we’ll see how much I manage to get through. At the very least some more intelligent bad guys!