5 Small theives jumping around a cavern. Chaos all around!

Once you pass 3 players it’s like someone blew up the national mint or something.

–> Thieves’ Honor <–

Deciding to learn Node.js and Phaser simultaneously while in a hectic game jam situation? Probably not one of my best decisions. But implementing my first ever multiplayer game was an amazing experience – I’ve learned so much and had great fun testing out the infrastructure with friends! It may not be flashy, but I’m actually pretty happy with the core gameplay mechanics for my game this dare.

Timelapse

What went right?

  • Phaser – Most of the time, Phaser is a wonderfully intuitive engine! Everything (mostly) just works, and I had a great time learning it on the fly. It was a wonderful change not writing my engine code from scratch this LD, it meant I could get straight in to mechanic and level design! Its audio system is also fantastic and easy to use, no need to manage channels etc.
  • Node.js – Using Node.js+WebSockets was a fantastic idea, it’s an extremely easy method of setting up server communication! Having to try/catch everything just in case though was not one of the most fun experiences of my life, though…
  • Multiplayer – My favourite part! Multiplayer really made this game fun to develop and test, and deciding to make a game based around it was the best idea I’d had for the design! Although it makes it harder for people to rate my game and it means I have to constantly watch my default score, I think I made the right choice – it wouldn’t have been fun at all without. Still, I have to stay eagle-eyed for when some poor player connects to my server. :I
  • Designing the Mechanics First – I think this approach was best for my game this time around; usually I focus on the art first, but here I deliberately chose to fine-tune movement etc. Having the game feel fluid is a wonderful factor in the enjoyability, and I hope players feel the same way!
Finding weird moments like this really helped make the game feel more lively while I was coding it. Thanks, assorted internet friends! :')

Finding weird moments like this really helped make the game feel more lively while I was coding it. Thanks, assorted internet friends! :’)

What went wrong?

  • Phaser – It seriously felt like I was fighting the engine at points when my  idea of how a thing should work differed from the implementation. I spent like an hour trying to move text and groups to the front before I learned the right way to handle them (Hint: completely different from sprites). That’s really not the kinda thing you want to happen when time is a major issue!
  • Art – Although the graphics look completely inoffensive, they’re so bland that they may as well not be there. Being majorly out of practice, I got hit with the reality of my situation – so much polish had to be cut, tiles ended up looking nice close-up but so generic from a distance, character art and UI design was rushed… This wasn’t helped in the slightest by the extra time eaten up by learning Phaser. RIP beautiful particle effects everywhere… :'(
  • Scope Changes – I’d initially planned a game where you play against NPCs and monsters, while going further into the screen and occasionally fighting another player 1v1. As you can tell, the game as it is is completely different! I also intended to have only 4 players to a game as well, but this had to be cut due to the actual amount of players I expected as well as the time it would have taken to set up such a system. I also really wanted different game modes in the original version, like racing the other player to the goal, or fighting monsters together… but I’m happy that I got the gameplay as pure as I did.
  • Server and Client Bugs – This was a crazy issue for me at the end, where I found out after submission that my server was refusing to generate new instances after a game ended. I had to keep my game offline while the rescue rangers stumbled across it one by one while I tried to get coursework done so I could patch my Node.js server to do what it was meant to. It’s incredibly frustrating to see people find your game and then just walk away with a “Server down” or “Couldn’t connect” comment scrawled on your page. I managed to get it done, but I feel that if I had more experience in writing server-side code then I never would have been in that situation.
  • Music and Sound – There was none, I’m afraid! D: I had to hastily make some sounds in sfxr in the last hour or so of the compo to try and add to the game, but some of the sounds are totally wacky and out of place as a result… I feel music would have really given the game a lot more “oomph” if I’d written some, but alas.
  • Controls – They kinda suck, judging from all the feedback so far!
We're rich! Messing around with friends made this dare feel so much more exciting.

We’re rich! Messing around with friends made this dare feel so much more exciting.

Favourites so far

  • Snowman’s Land: SNOVERCHILL by RHY3756547. A fantastic multiplayer snowman snowboarding snowball fighting game by a friend of mine, super polished and amazing fun. If you haven’t played it yet, then go play it ASAP! He’s on the server pretty much constantly, give it a shot!
  • Tightrope Theatre by AdventureIslands. Very unique mechanics, and an interesting take on the theme. I have no idea how AdventureIslands pulls it off every dare! Great set of levels to play through.
  • An Adventure on my Screen by Erhune. Impressive TPP styled RPG which takes the “One Screen” part of the theme VERY LITERALLY. Great fun to mess around with, probably one of my favourite ideas so far!
Having Zalgo rate my game was a great, if frightening experience,

Having Zalgo rate my game was a great, if somewhat frightening experience,

Thoughts for the Future

I’d really like to revise and have another design pass at this game – I feel the core concepts are strong enough to get an enjoyable post compo entry! To do that, I’d need to:

  1. Completely gut and rework the art.
  2. Write some music.
  3. Limit servers to 4 people per instance.
  4. Clean up my code.
  5. Refine the mechanics and controls.

All of this would need done before adding any new features, but I’m very excited for the future of this game! If I choose to keep at it, I’ll keep my blog updated with progress here.

For future dares, I need to have way more practice with my engines and the appropriate programming paradigms so that I have time to get sweet graphics and music into the game. I also need to work way faster, I type so slowly right now!

Thanks for reading folks, keep on rating those games!


One Response to ““Why don’t I use a new library? Hell, why not two?” – 48H Compo Post-Mortem”

  1. cxsquared says:

    I’m glad I got to be part of your chaotic gif. The game was actually quite fun and really impressive to have networked multiplayer.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]