About Warboys


Ludum Dare 34
Ludum Dare 33
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29

Warboys's Trophies

Warboys's Archive

Slum Runner/LD 2015 Post Mortem

Posted by
Sunday, January 3rd, 2016 5:54 am

This is going to be a pretty dull post mortem because very little went wrong. Nonetheless, I did learn some stuff and I’ve not done a self-promo post that actually contributed anything yet so here goes!


Play Slum Runner here


I’ll rate you back and provide delicious feedback btw, so make sure to leave a comment!


Now, onto the post-mortem…


What was my mission?

I’ve had a pretty tough year in 2015 for LD. The last game I felt that was reasonably successful was Silian Rail for the Entire Game on One Screen theme (last December). I really felt I did a good job on that game, and it was easily the most complete and polished product I’ve made myself from start to finish. With that setting my standards much higher, I had raised the stakes impossibly high for the next few LDs. I was all like “I need to break the top 100!” and “I need to get a 4-star rating for fun!”.

For Unconventional Weapon and You Are The Monster I was too ambitious, poor at planning, and making some pretty bad conceptual decisions that resulted in so much wasted time. Unconventional Weapon I didn’t submit. It wasn’t done. You Are The Monster I submitted, but it was critically buggy and I didn’t bother promoting it.

This time my mission was to finish the core gameplay programming in 8 hours. Of course, as a solo dev I wanted to enter the Compo, but these were my only two missions.


What went poorly?

I’ll start with the bad stuff because I think it’s clear that I failed my two mission requirements!

My 8-hour programming limit was more around 12 hours. Those 4 hours really mattered, as I could have probably made the Compo deadline using that time to craft all the levels I needed (I have 8 missions at the moment) or build the music. There aren’t really many lessons to learn here though. I worked flat out with no breaks at a breakneck pace (for me) and it just took longer than expected… so c’est la vie!

I wanted to submit to the Compo but I needed an extra 72 hours for the Jam. Technically I could have released a much worse game for the Compo,  especially if I had those 4 extra hours, but I really enjoyed the concept and felt I had to do it justice and polish it up. The compo version would have had placeholder art, no music, and only 5 levels (with the first 2 basically being an easy tutorial). You can see it below as I made a ‘I failed’ video about an hour before the Compo deadline.


My hacky game jam code was really pushed to the limits in this one. Each level took about an hour to build rather than the 10 minutes it should have.

How I usually build levels is by using Adobe Fireworks (sort of like Photoshop) to place all the buildings, characters, and UI with a lovely drag and drop experience. Then I can go to GameMaker and use the X/Y coordinates from Fireworks to accurately place objects in the room using instance_create and all the draw calls. This was my first game using view ports and I just fucked something up. I’m not sure what it was, but basically there was a small, seemingly random, offset between the Fireworks XY locations and the GameMaker XY locations. This meant that every level I had to input the data for, then play through multiple times and manually adjust +/- xy values one at a time to get things to line up. ARGH!



What went well?

What I found really interesting about this project was that I had zero hurdles. For the first time ever there were no critical bugs that wasted hours of my time, there was nothing I had to really learn to do during the jam, so I had zero resistance to content with.

Using the extra 24 hours from the Jam was also surprisingly satisfying. I was bitterly disappointed that I couldn’t submit to the compo.. I mean, that’s the REAL Ludum Dare and I’m still a solo guy making all the assets so I feel I’m at a big disadvantage compared to jamming teams without all the rule limitations. Nonetheless, the final product is so much better because of that extra 24 hours. Those 24 hours were pure polish and content creation. They were relaxing, they were stress free, and therefore I could be much more creative. The quality of my final levels, the quality of the writing, as well as the quality of the music, is much higher because I wasn’t super stressed about hitting the deadline. Also I don’t hate my own game, which is what always happens to me when I try to power out a compo submission!

I can’t be very creative under massive pressure, so this was probably the key to Slum Runner’s success.




What did I learn?

For the hacky jam code level creation, I feel that if I’d have been a bit bolder and had taken a risk refactoring the way the level content was input, I could have saved a ton of time creating levels. This might have allowed me to polish up the art and add some sound to submit for the compo. However, I think it might have been a make-or-break decision. If I spent an hour or two trying to figure out the problem I might have lost all motivation to finish the game at all. This leads to my next lesson…

Avoiding all possible stress was really nice. I’ve never had a jam go so smoothly. I think because I was rushing as fast as I could, with crappy hacky code, and a relatively simple game… I never hit a hurdle that would typically demotivate me and reduce my productivity. Playing it safe was probably a very productive idea, despite each level taking me 6x as long to input.

I’m really finding out what my limits are for Ludum Dare, which is great. I know I’m a terrible programmer and artist, I worked as hard as I could for the entire 72 hour period. I know that for this particular concept, there’s nothing more I could have done personally to make it better. Any improvements 100% required more time or more skill. I think that’s a really nice thing to think about. For the next Ludum Dare I can now focus on one of two things; improving my skill level, or finding a concept with more potential.

I suppose the high level behaviour I’ve learned from the final LD of 2015 is that I really shouldn’t care so much. I put way too much pressure on myself and the final result. It’s a competition with no prize that’s supposed to be about a final product you can be proud of. I learnt this time that when I just give up caring about where I place in the rankings, whether I hit the compo deadline over the jam, and whether I create something super revolutionary… I can work much better, much faster, and have a much higher quality end result.


The Future

What I like about Slum Runner is that it feels pretty much complete. I have a feature already built that I just didn’t have time to build levels for, so I could go back and do that… but overall it does what it says on the tin and it’s a nice little holistic experience. I usually feel super guilty about not going back to Game Jam games and improving/building on them, but I’m ok with that here.

If I get a ton of good feedback then maybe I’ll reconsider, but for now I’ll see what the results are tomorrow (or is it the day after?) and probably work on my larger side-project that I’ve been putting off for the whole holiday period 😉


Thanks for reading and lemme know what you think about the game!

Back from Xmas, time for LD rating!

Posted by
Sunday, December 27th, 2015 12:26 pm

Christmas has come and gone so I’m back rating games, yippee! Almost at 100 coolness, but I’ll be going as high as I can manage.

As always, I rate everyone who comments me so give Slum Runner a play and let me know what you think! All feedback is useful!


Now to play and rate the names on my comments list :)

Happy new year all!

Give Slum Runner a spin!

Posted by
Thursday, December 17th, 2015 6:18 pm

Hey guys,

Just a shameless plug here, as I’ve been super busy since the jam and haven’t had time to do a sexy post-mortem yet. It’s coming! Really hoping to get some more feedback as this is my best LD entry by far, and I want to get as many eyes on it as possible!

Go go go: http://ludumdare.com/compo/ludum-dare-34/?action=preview&uid=33962

SR Logo


I rate back btw, so just leave a comment and I’ll get to your game tomorrow (planning to hit the 100 mark and need more games!)

Day 1 Progress – Beastial Beats Tour

Posted by
Saturday, August 22nd, 2015 11:37 am

So I did the classic Ludum Dare trick of calling a character “The Monster” to get past the theme. Yay!

In Beastial Beats Tour you’re The Monster, the world’s greatest DJ, and must wow the crowd with your epic rhythm action performance skills. Learn the moves that score you the most points and discover combos to maximize your fame by creating face-button combinations in time to the beat.

Be careful though, as your DJ skills are truly monstrous. Too many sequences aimed at the same audience members will result in face-melting carnage.

Beastial Beats Tour - Day 1

Beastial Beats Tour – Day 1

Day 1 was surprisingly good. I have never built anything like this before, so I was expecting it to be really tough… but I’ve finished all core gameplay features in my first 13-14 hours! For the first time ever I actually have an entire Sunday to polish and tweak. Wasn’t expecting that with a new genre and a musical focus (something I’ve been terrible at since the dawn of time).

Still, trying not to get ahead of myself. I’ve got a lot of explaining to do, which you can probably tell from the nonsensical GIF above, so tutorials and a short ‘campaign’ will be top priorities after I get my simple DJ and Audience art in.

Can’t wait for this one… I’m in

Posted by
Monday, March 30th, 2015 8:22 pm

After I failed Global Game Jam, I decided that I was all jammed out and needed to take a break. The only jam I plan to do is Ludum Dare, at least in the first half of 2015, and it feels like forever since the last one!



    That was my goal last time but I went overboard, yet again. Polish, polish, polish is the name of the game. I’ll probably ignore this one again.
  • Hex Grids
    If possible I’d like to use a Hex Grid in the game somewhere. Outside LD I’m planning to work on a 4X prototype, so learning Hex Grids will be useful knowledge
  • Rating of 4+ in a category
    I was close last time (3.85 Innovation), so I’d really like to get something over 4 stars. It’s a sign of quality I haven’t been able to reach yet.
  • Top 100 Overall
    The hardest goal… especially since I put all my blood, sweat, and tears into Silian Rail and could only reach top 200! Gotta put more bodily fluids into it this time!


My usual tools;

  • Engine: GameMaker Studio (I might play around with the HTML compiler to try and get a web version)
  • GraphicsAdobe Fireworks + Pyxel Edit
  • Sound: Reason 7


Overall Thoughts

Bugs hurt me last time… another reason I want to keep things simple. Learning new things in a Game Jam doesn’t work very well for me because I’m under too much pressure to research and implement tricky solutions (I’m not a programmer by trade). Although Hex Grids is new, and something I want to try, I will practice a little with it beforehand and will drop it like it’s hot if there’s a hint of bugginess!

Finally, I know everyone complains about the theme but last time it was really uninspiring. ‘Entire Game on One Screen’ is basically what I do every single time I make a game already (I’m still pretty amateur!). It doesn’t inspire me to do anything interesting, and while I tried to create a mechanic that really exploited the nature of the game’s lifecycle in one screen… I got a crap theme score so no-one seemed to ‘get it’.

As a disclaimer, I liked Beneath the Surface and Connected Worlds. They were good themes. Interestingly enough, the last LD was my best product so maybe I’m making too much of a meal of it.

Silian Rail Post-Mortem

Posted by
Sunday, December 14th, 2014 6:45 pm

Silian Rail Post-Mortem or: How I learned to finally motivate myself to learn real collision and not Gamemaker’s built-in crap

A little backstory, this is my 3rd Ludum Dare and about my 5th game jam in general (my first awful entry to Bacon Game Jam, plus a wildly successful 2014 Asylum Jam). I came in with a mission. Tiny scope, maximum polish. I failed in a number of ways so here’s what went right and wrong about the process and the game.


If you want to play, click the image below to give it a spin!





Process – What went wrong?

  • Limited Scope
    I kind of ignored the scope thing. Avoid Rage is the sort of scope I was planning to go for, but I ended up with something that required map design, NPC pathing, level design and a shit ton of art! My problem was that I fell in love with an idea before really scoping it out. Funnily enough, I spent an hour on one idea before canning it for those very same reasons… so while this game was smaller in scope than the original one, it was still too big for my mission.

  • Polish is boring.
    This is my biggest lesson from this game jam. My god it’s boring polishing things. If you’re as bad at art as me, you can’t take a huge amount of joy in it. I found joy in getting my tiles to work, I found joy in replacing boxes and circles with tables and chairs… but the creation of the assets was mind-numbingly dull for me. I’ve decided to pick up Pixel Art before my next LD, because that’s an art style I can enjoy the sight of and perhaps value putting the effort into it.
  • Trying to be creative at 4am on a Sunday
    There was a point at 4am on the Sunday night (in Beijing the compo ended at 11am on Monday) where I went into DESPAIR MODE. I had almost everything done. Everything but the audio. Last LD, Gamemaker had a bug that broke all my sound integration. That bug was fixed the day after submission. This time my audio woes were all my fault.

    At 2am I decided it was time to make music. Remember, my goal was polish.. I wanted everything to be perfect. Shit just wasn’t working. I tried 3 attempts at using office sounds to generate music, which were failing miserably mainly due to the tempo being so slow that I couldn’t create anything that would fit the mood. My brain was just finished. Thankfully…


Process – What went right?

  • Not Solo Jamming Alone
    My jam site had 4 LD participators for the weekend. We all did solo jams. Compared to being at home alone, this was a godsend. When I was just about to pack it all in and just give up on music (which would really have worsened the mood of the game), my fellow participants motivated me!Here are their games if you fancy helping them out with ratings; Alex Takes a TestOi! Menu!?, and CUBE Clicker
  • Game Maker proficiency
    I sometimes hate on Gamemaker but it’s so good for Game Jams. While my friends were cursing Unity to high heaven and struggling with the most minor sounding issues, I had my core game ready in about 2 hours and was just building content from then on in (they’re all professional programmers, I’m a Game Designer). I’ve got so much better at GameMaker Language over all these game jams and I’m really amazed at how much I could get done. I even have a tutorial of sorts!





The Game – What went right?

  • People seem to really like the mechanic!
    As a designer by trade, I really just care about how many people enjoy the game and the core mechanic. From the comments on the page, I’ve achieved that. So I’m extremely happy about that.
  • Despite disliking the theme, I think I managed to integrate it in the mechanic well
    Entire Game on One Screen was probably my last choice for a theme, because all the games I make are on one screen anyway! It wasn’t a limiter, it didn’t give me any ideas at first.

    When I sat down, I decided to focus on the one screen part… the persistence of a single screen. That influenced the core mechanic of every ‘bullet’ you fire is still in the room forever. As you play in the one screen, your actions affect the environment. In Silian Rail, they affect the environment by becoming dangers to you. It worked so much better than I thought it would, although the start is a little slow.

  • It’s complete
    Most times I finish a game jam I feel like there’s so much more I can add and fix (mainly fix!). For Silian Rail… it’s 100% done. Sure, the concept could go further and I could add more content and fix some niggling bugs… but overall it feels like the closest thing to a finished product that I’ve ever made independently.



The Game – What went wrong?

  • Game Maker built-in collision / Me not being that proficient
    I use the move_bounce_all() function in Game Maker to deal with physical collision. It’s probably an awful idea but it’s all I know without doing some deep dive learning. In a Game Jam, I don’t want to do that… so my game has issues.

    Sometimes you or the Rumors you fire get stuck in the wall for a short while. It’s annoying when the game goes full Bullet Hell mode and you’re trying to be nimble.Colliding and getting stuck in coworkers is intentional (basically the co-worker ties you up by chatting to you), but I decided I didn’t need to add in a collision animation  so players felt it was a bug. The walls were definitely a bug, but the employee collision was a bug that I left in as a feature. Totally not communicated though, so most negative comments were about that.

  • Action feel
    This is the first action game I’ve made in over 18 months (Bacon Game Jam was a bullet hell). My action game development capabilities basically come down to static movement speeds and shooting balls. Thankfully that’s what my game is about, so I played to my strengths, but it obviously could feel a lot better and more refined. If I do another action game for Ludum Dare, I will hopefully have the knowledge base to make it feel really juicy


This Blog Post – What went wrong?

Seriously, wtf is with WordPress formatting? It’s an absolute clusterfuck.


Thanks for reading and if you have any time, please rate my game! I rate back if I can get the damn executables to work 😉


– Warboys


Practical Creativity by Raph Koster – Very useful for this weekend!

Posted by
Wednesday, December 3rd, 2014 12:52 am

I just watched this great GDC Next talk by Raph Koster. It’s got lots of great tips about coming up with innovative new game mechanics.

Thought it was worth sharing…


In I am

Posted by
Sunday, November 9th, 2014 9:58 pm

Everyone seems to be doing this, so here we go.


Art: I’ll be doing my ‘Art’ in Adobe Fireworks

Sound: Reason by Propellerhead

Gameplay: Game Maker Studio



The first LD I entered (Beneath the Surface) I did in a team. The game was great, very proud of what we came up with. The second LD (Connected Worlds) I did solo and enjoyed a lot. Unfortunately the scope was way too big… bugs with GameMaker also stopped me adding audio to the game so I kind of gave up in the last few hours.

This time my mission is polish! I want to make something extremely simple… like codeable, by ME, in 6 hours. Then I want to spend all the remaining time on making it feel gorgeous. I’ve never focused on polish at all, so this time I’m hoping I can make my game feel pretty professional by submission. It will be simple, but it will be pretty.

Shanghai Android Version ready!

Posted by
Sunday, May 4th, 2014 6:58 pm

Just a quick update. Chris has ported Shanghai to Android, so if you’ve got an Android phone please give it a spin. Here’s the link: http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=33962


If you’ve played the Web version of Shanghai, you probably would have noticed that the resolution is weird! Well the story behind it is that we realized early on we were making a puzzle game and we were having 2 parts to the action; The Bund and the Puzzle Grid.

Shanghai In-game

It helped emphasize the jam theme, since the grid was beneath the surface of the city… like your actions. But most of all, it just worked so much better as a mobile game. The dragging gameplay is a lot like Flow, a great puzzle game on mobile devices. Shanghai has similar line drawing on a grid, so we naturally designed for the smartphone.

Now we finally have our smartphone port available, so even if you’ve played Shanghai before… try again :) It also doesn’t seem to experience the city-not-loading bug which has plagued random players since submission.

Here’s another link for ya: http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=33962

Feedback is much appreciated, thanks!

– Sam

Shanghai – A game about corruption & treason in 1940s China

Posted by
Tuesday, April 29th, 2014 7:29 pm

Hey guys!

Thought we’d dodge the deadline rush and post about our first ever Ludum Dare entry today.

Introducing… Shanghai

title_screen   Shanghai In-game


How to Play 
1. Drag colored tickets into a spy slot at the top of the Grid 
2. Match the colors to Foreign Agents by drawing a path 
3. Making matches earns cash and pleases the embassies 
4. Don’t let the embassy flags hit the bottom or it’s game over 


Our take on Beneath the Surface
Honestly we were not thrilled with the theme at first, but after some brainstorming we got excited. Our primary goal was to avoid Underground and Underwater since that’s what we assumed most people would be doing… and we didn’t like the aesthetic of either for our own game ideas.



So we looked at ideas for things Beneath the Surface, and society/psychology came up quite a lot. The Wizard of Oz style of a mysterious man behind the scenes pulling the strings of a city was something we really liked the idea of, so we went further with that.

Living in China, we see and hear a lot about corruption. Both Chris and myself have both wanted to make a ‘China game’, going a little bit political in a place where political views are generally ignored or frowned upon. The theme of city corruption and China just felt perfect for that.



Chris reminded me of the Ang Lee movie ‘Lust, Caution‘ which showed a glamorous Shanghai aesthetic set in the 1940s. We felt this was exciting and the idea of undermining your city for monetary gain fit with the history of foreign powers in Shanghai taking advantage of weak local government. Read about the aftermath of the Opium Wars and the Boxer’s Rebellion for an exciting look at China’s past.

So that’s the backstory. Over the judging period we’ll do some post mortem and making-of style stuff to share our experience. For now, please let us know what you think of the game!



[cache: storing page]