There’s only a few hours left before voting ends and since I’ve put it off for so long, here’s a post mortem for my Ludum Dare 37 jam entry BreakAround (Also Happy New Year Guys!!)
The theme this time was “One Room”. Whilst it wasn’t exactly a good theme in a creative/innovative sense (plus there were quite a lot of comparisions to a similar theme back in Ludum Dare 31), it was a slightly easier theme for me to work around after struggling and failing to create something for Ludum Dare 36.
Initially I had trouble thinking of a good game idea for the theme (I didn’t really want to do some sort of one level closed wall arena shooter type game) but then I decided the reinterpret the “Room” part of “One Room” as maybe a three dimensional space as opposed to a two dimensional one which got me thinking: How about recreating a classic 2D game to work in 3D instead?
One example I looked at was CurveBall (An old flash game many will probably remember) which essentially was a 3D version of Pong but rather than doing a 3D Pong clone, I decided to take on another classic game instead, one with similar mechanics to Pong but an entirely different game design: Breakout. I also thought about reinterpreting other old games such as Snake and the Light Cycles minigame (where you would move in the XYZ plane instead) but I decided to go for Breakout as it was slightly easier to implement in terms of time and complexity.
Another idea I had was to make some sort of VR game which I thought would work well with my interpretation of the “Room” part of the “One Room” theme as instead of being displayed on a screen, the entire game level would be projected around the player. Whilst I don’t really have an Oculus or a Vive (my PC can’t actually handle them), I did have a Google Cardboard headset so it was a possibility. In the end I decided to build my game for desktop/web first (so more people could play it without needing extra peripherals) but build it in a way so that it can be ported to VR at a later point.
Eventually I ended up with what I like to refer to as a “first person 360 view Breakout clone”
Ended up wasting most of the first day not only from trying to come up with my game idea but also from difficulties trying to get a relatively simple camera viewer script to work as intended (I originally tried using Unity’s first person controller prefab as a base before deciding to roll my own as I only needed to control the camera view, not the player). After 4 hours of struggling, I managed to get my viewer script to work as intended.
Before heading off to sleep at 2am (which to be honest, is pretty much standard for someone doing a game jam :V), I also managed to construct the level walls as well as write up a simple ball shooting script.
The next thing that I added to the game was a paddle (as after all, it wouldn’t be Breakout without one). For my interpretation, I constructed my paddle out of a cube object that was scaled to resemble a rectangular shape and then added it as a child of my camera object so it would move whenever the camera moves (which was controlled by the script I made yesterday).
I had my ball and paddle ready but I also needed a way to destroy balls that were “off play”. This was a bit of an interesting issue as compared to Breakout (where the bottom of the screen is the off play area), the paddle in my game was surrounded by four walls (since I was going have it so the player would be breaking bricks around them) so it was hard to figure out when the ball would be out of play. In the end I decided to create a trigger area object as tall as the game level, placed in the centre, repositioned my paddle so that it would be partially surrounding the object I created and then added a script to destroy the ball whenever it would enter the trigger area.
The final element I added for my Breakout-style game after the ball and paddle were the breakable bricks which I made by creating a simple cube object and then added a script to have it change colours whenever the ball collided with it before disappearing completely after taking 3 hits.
At the end of the day I had finally come up with a basic prototype of what I wanted to create in the first place.
During the last day of the jam, I worked on fixing the bugs that popped up last night (There was a notable one where the ball would bounce out of reach from the player between two points so I ended up coding an option to destroy the ball while it’s still in play) as well as getting started on creating the UI and main menu. Since I didn’t have a lot of time, I decided to go for a very simple UI.
As for the main menu, instead of going for a traditional 2D style I decided to go for a three dimensional approach instead where the player would be navigating around the menu.
Before submission, I originally planned on submitting the WebGL version first (in order to reach more players) but problems with the final build that couldn’t be checked within the Unity editor (particularly with mouse controls) meant that I ended up initially submitting the Windows build first instead.
Immediately the day after the jam ended (and after porting the game to Mac and Linux), I added keyboard controls to the WebGL version of the game (in order to alleviate the mouse issues with that build during submission). Then for the next few day, after initially struggling to get the Google VR SDK to work properly, I worked on porting the game to Android/Google Cardboard as a test to see whether it work well as a VR game.
Time: As mentioned during the first day, I felt like I wasted a lot of time during the jam struggling to do certain tasks although motivation issues sort of factor in as well since I was trying to come back from the slump I suffered from after failing to create an entry for Ludum Dare 36.
Bugs: Despite the fact that the game mechanics worked mostly as intended, there were a number of bugs I wasn’t able to fix on time before submission (such as the ball bouncing out of reach between two points).
Admittedly, during the first week of judging I had doubts about whether the game would be very good to the point where I didn’t want anything to do with it but after seeing some of the positive feedback I received, I realised I might have been too harsh on my own game and that with a few improvements I could turn it into something great. Now, I’m slightly more proud of what I’ve managed to achieve with this entry and in the future I would like to try and develop it into a fully polished VR title (once I’m able to afford the equipment).
To sign off, here’s a few clips of my game being played by others:
Subscribe to this blog via RSS.
Ludum dare 10
Ludum dare 10
The ball 2
Academic (2) Personal (5) Demos (2) Downloads (2) Ludumdare (10) Commercial (3) Updates (2) Events (2) Ngf2015 (1) Norwich gaming festival (1) Beacons (2) Gamejams (4) Ldjam (10) Ludum dare (10) Ludum dare (10) Postmortem (2) Unconventional weapon (1) Unity (5) Development (8) Development (5) Development log (10) Development logs (10) Devlog (9) Indie (6) Indie (7) Indie game (6) Indiegame (7) Mobile (4) Balls (7) Ld33 (2) The ball (2) Ld34 (2) Global game jam (1) Ld35 (2) Press (1) Ld37 (1) Post mortem (1)