Postmortem: Beneath The Surface

Posted by
May 1st, 2014 2:42 pm

This was my first Ludum Dare and I’m pretty happy with the outcome, my game!

Click to play!

Click to play!





Development Process

I started off with an idea to burn away at a layered sphere. Not sure why, or what would happen.

I made a geosphere in Max, added a Shell moodier to give it some thickness and then used Explode to break it into around 320 chunks which would all have their pivot point at the centre of the sphere.

Once that was done I imported it to Unity and added a bunch of mesh colliders to the chunks and got a camera rotating around it.

I still didn’t know what the game was going to be at this point as I didn’t go in with a plan :)

At one point I considered doing some kind of 3D Minesweeper game based on the surface chunks and the layers below, but then I realised I didn’t actually like Minesweeper and I’ve never managed to complete a level of it, so that idea was out the window!

Instead, I got Raycasting working and decided whatever you clicked would get destroyed!

One thing I’ve learned about action/arcade games it that MORE IS BETTER! So I duplicated the sphere layer twice and nested them within each other and make them all rotate separately and at different speeds.

At this point I started thinking about colours. I noticed I’d used a pastel kinda colour already, so I googled “pastel colours” and found this:

And there was my colour scheme! From here on I started just colour-picking from this image and based all the colours on this.

Next I added the enemies, ‘cus every arcade game needs stuff to shoot at! I added pulsing rings to the enemies so that they were easier to find amongst all the rotating stuff!

Now I had some enemies, I made them shoot at the player. How do you make them hit the player form anywhere on a sphere? Make the player another sphere! So i added the purple shield sphere which the whole game takes place inside and made this the player, with health.

Next, I added the “shoot everything on a layer to blow it up” mechanic and finally I was starting to have a game coming together!

And there you go! I had a game!

Finally I added a menu/level loading system and made four more levels.

Job done. My first Ludum Dare was over and I had a completed, totally playable game. And I’d had the most fucking fun I’d ever had making games! :)


  • Fun game!
  • Easy to pick up (I think this helps when people are playing loads of games to rate and they probably don’t always give each game much time)
  • Straight into the gameplay. No intros, no tutorials, no novels to read before shooting stuff (I have a short attention span!)
  • Cool, low-tech visuals – I’m a programmer not an artist. If I had to draw or model anything beyond a sphere, it would have been crap. Stumbling on the low poly/shading visual style helped me out a lot here!
  • Really nice explosion effect (total accident!). I think this helped get peoples attention in the animated gifs and it looks cool in-game. I got a lot of comments about this. It was another accident too :) I was going for a different explosion effect but messed up and got this one instead, which looked way cooler :)
  • No plan! I don’t really do planning. I always dive in by throwing a bunch of objects into a scene and just playing around. There’s only 48 hours, why waste some of them planning to make a game that you have no idea if it’ll be fun or not anyway?
  • Clear and simple instructions on screen at-all time. Again, when people are playing through a bunch of LD games, I think making it as easy as possible for everyone to get up and playing ASAP is super important.
  • A menu! This sounds obvious but it was the one thing I made a conscious effort to get in. About 4 hours from the end I made a menu scene and handled all the level loading from the menu and in-level too. It’s the kind of thing that’s easily forgot until it’s too late :)


  • Audio – Simple sound effects and no music! I have no idea how to make music on a computer, so there’s no music. This is something I plan to start working on for the next LD 😉 Like 99% of everyone else, I used the awesome SFXR for the sound effects.
  • Not enough levels. This was down to time, I made the first level during the development of the game and the last 4 levels in the last 10 mins before I submitted 😉 I wanted it to be quite easy initial but the last level be pretty tough as there were only gonna be 5 levels in the LD version. Not sure how this worked out. Some people commented it was a bit too hard, but it seemed fine for others. I think this is pretty usual though. It’s one of the hardest things I find bout games dev though, balancing a game you’ve spent way more time with/playing than anyone else yet still trying to see the game through “fresh eyes”.
  • Naming my game after the theme. I didn’t even think about this until afterwards, but calling it “Beneath The Surface” was pretty stupid as it doesn’t stand out and makes finding any references to my game pretty tough!


  • (Done!) Controller support.
  • (Done!) Change the firing mechanic. A few people commented that it seemed pointless having to hold down the fire button all the time. They’re right. I’m gonna try adding an energy bar that drains as you fire so you have to balance killing enemies with burning surfaces to discover them… and ties in with the next point…
  • (Done!) Boost! I’ll be adding a boost ability which will let you orbit around the planet faster to get to the other side etc. This will tie in tie in with the new energy bar. Boosting will also drain your energy, so you’ll need to balance firing with boosting and watching your energy.
  • More levels, more mechanics. I’m still not sure yet if the game can have enough depth to warrant becoming a full game, so I’ll need to think of some new gameplay mechanics!
  • (Kinda done!) Optimise for mobile. If it does become a full game, I’ll need to optimise it for Mobile as 600+ colliders in a scene doesn’t cut it on older devices. I already started this and came up with the following: Instead of rotating all the objects and their colliders (can be around 6-900) I split each surface into three separate layers and gave each one a separate camera which only renders that layer. I then composite the three camera images which results in the same view as the original one camera system, BUT: I can then move the CAMERAS around instead of the objects so that there’s no overhead from moving the physics colliders. This is ace and did the trick, I got a stable framerate on an older, low spec iPhone which wasn’t possible with the one camera way.

Here’s a sceenshot that hopefully explains better how it works.

Now I’ve proved this works, I’ve put it all back to how it was (it makes level design etc more difficult) so I can just get on with developing the game further now and worry about converting it if I have a good game at the end!

  •  Sexyness: bloom/glow, effects, camera shake. All the stuff that’s awesome at making games seem and feel way more fun than they are!! :)

Next LD

Same approach: Dive in, no plan, have fun and make something I think is cool!

Hopefully I’ll have learned some music-making basics by then so I can have a good at making a naff music track!



Click to Play my Game!



2 Responses to “Postmortem: Beneath The Surface”

  1. terraco says:

    You really did a great job, man. I like the development path you took as it’s EXACTLY the same thing I did with Box Simulator!

  2. SteveSalmond says:

    Thanks for the massive (awesome) write-up dude! I will have to give this postmortem thing a go.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]