Gold Plate Games

A few colleagues and I have started Gold Plate Games together. The aim of the company is to produce low scope mobile games, following the motto: “Pick up and play, everyday.”

I’m programming alongside Jonathon Anslow. Our solo artist is Aedan Chaseling.

Our debut game is a social mobile game called ‘Say What?‘. I won’t go into it here, but it has to do with sending people voice morphed recordings to each other. It’s funny and unique, we’re hoping that will allow it will stand out in the market.

GPGlogo

2016

I have another exciting year to enjoy, mostly due to the fact that I’m releasing my first commercial product to the mobile app market. It’s also scary because if it doesn’t get anywhere on the app market, we’re going to have to make the next game on another small budget and probably making something not that great, just to put something out to make money – that’s not what you get into game development for (well, I didn’t). Not to mention sacrificing your lifestyle to fund it.

Anyway, less negativity and more happy thoughts, please!

I have been doing some freelance work on and off while I’ve been working on the company’s game, that’s been alright. We might refocus the company to do freelance work after this game as well if we feel the need.

I’m thinking of putting together some projects in my spare time, either continuing the RTS, or making a Tower Defence, or some physics mechanics for a hover car like in Wipeout and Star Wars: Podracer. Work on the companies game is only going to get busier so I may not even find the time till after its release. We’ll see.

My 2015

My year in a nutshell:

  • Quit my IT job.
  • Started and finished a post-grad course in management.
  • Started a games studio/company with fellow graduates.
  • Almost released our first product to the world.

The post-grad course I graduated from was run by AIE. It was called Incubator. We were in a semi-formal office, with other groups and companies that were making their own products. In our time there we did a Vocation Graduate Diploma of Management (Learning). It took us through researching market/industry trends, prototyping, pitching, production, business automation – a whole lot of very useful stuff. All the while, we were producing our very own product. A huge bonus being in the Incubator was grant money, given by the college. We used this to pay for an accountant to set up our company and for traveling to PAX, in Melbourne (where we showed our game). We also used it for renting our Google cloud server.

It was a great year, nothing really seemed to go bad for me now that I’m looking back on it. I met so many awesome people and made loads of business contacts in Melbourne, attending GCAP and PAX. A representative from a publisher showed great interest in the game, if we have a good soft launch we may be working out a deal with them to really push it in the market.

I haven’t posted here for a while, not about the game or even the company, so expect to see more posts very soon about that. According to the stat tracker, I had over 700 views for the year… that’s a lot more than I expected. Now I’m definitely going to post more often this year!

So, here’s to an even better year!

Agile Software Development

A quick snap of our 2nd Agile Sprint - and organised desk space

A quick snap of our 2nd Agile Sprint

Our mentor has been teaching us how to use Agile to its fullest so we can make the most of our time in the office.
We’ve been using the poker cards to number each ‘story’ (the descriptions on the white cards) and break up the stories into smaller tasks.
When we complete all of the sub-tasks of a story, in the next mornings meeting we can move it to the finished section and reflect this update on the ‘burndown’ chart.
Right now we have an impediment with Unity and Perforce (the Version Control software that we are using). There is a plugin that we used to use with Unity 4, it would allow us to make updates/commits within Unity and have no issues merging scenes. The plugin only recently became available for Unity 5, but it’s buggy. We’re in the middle of working through this with their support so we’re using their visual client for the time being, which is great but less time efficient than the plugin.
Back to Agile – it’s great. When you have those days of being unfocused, all you need to do is take a look at the wall to see where you’re up to and keep going. No one wants to reach the end of a sprint with nothing to show!

New Art, Clouds and Rocket Testing!

Happy New Year! This is my first post for 2015. Exciting.

Jess has been updating the art of our game Jump High, Don’t Die! I’ve added a rocket that can be picked up. It will send you sky high! I’m still in the process of tweaking it but it works very well. We’ve also added clouds to spice things up a bit, don’t they look great? They tend to make things a bit harder…

New art and rocket pickup.

New art and rocket pickup.

Traverse the clouds to get higher!

Traverse the clouds to get higher!

Game Jam – November 2014

Start of the level

Start of the level

My college, AIE, was holding a game jam event for the weekend of Halloween. The theme was ‘I think I’ve been here before’. Jess and I had to decided to team up. We had been discussing designs to try and she wanted to try and recreate Icy Tower. After playing it I thought it would be achievable to do in the 48 hours we would be given.
When I say I thought it was achievable, I mean to say that the base design and features would be possible.

Those features are:

  • Randomly placed and sized platforms.
  • Level is constrained by 2 walls.
  • Moving the player sideways and bouncing/jumping off the walls, making you jump higher depending on the speed you’ve built up.
  • Score system.
  • Life System.
  • Ghost System – When you die/fail, you leave a ghost behind. If you can get back to the area you failed at, you can touch the ghost to reclaim your lost points. Similar to Dark Souls! We did this to correlate with the theme of being there before.

Icy towers features many different platforms such as platforms that drop when you jump on them and platforms are invisible. It also features a moving camera that the player has to keep up with, or they will fail when they go off screen. Our game has the one platform type: the branches. They are limited to being attached to the bases of the trees. We wanted to include clouds as the player got higher but time did not allow it. Our camera also only has one function, which is to follow the player, unless they fall down.
We also wanted to build it to our phones but we just left it with a PC build. I’m going to port it to the phones another time. I’ve since created a web build which you can play right here.

We were pretty happy with the resulting game, it had animations, sound and a never ending level. We finished comfortably with about an hour to go before the submission time, so no stress!

Procedurally Generated Terrain

This project was the assessment for our Complex Game Systems subject. We had a choice between AI, Procedural and UI (the procedural option included a little bit of UI as well).

I opted for the procedural option, which required texture layering, procedural terrain generation and 10 assets (models in this case) that were required to be randomly placed in the scene. I duplicated the models to make 2000 individual ones across the scene.

4 texture layers on one mesh, with mixing between them (mixing should not be confused with blending)

4 texture layers on the one mesh, with mixing between them (mixing should not be confused with blending)

Another requirement was that a user of the program needs to be able to change 4 settings in the scene. As you can see in the UI, I have included 4 inputs that manipulate the terrain.

Default settings

Default settings

As the Displace Height variable is running through the vertex shader, changing it instantly shows a result on the screen in realtime. The other 3 inputs are only seen when the Generate button is pressed.

Amplitude: Low Complexity: Low Size: Small Height Displacement: Low - Medium

Amplitude: Low
Complexity: Low
Size: Small
Height Displacement: Low – Medium

For the terrain to be changed so easily by the user, I had to create a height map out of code and not use one that was made by an artist. To do this, I used a noise algorithm known as Perlin Noise. The Amplitude, Complexity and Size inputs are used within the noise function. To achieve procedurally generated terrain, I put all of the values created in the Perlin Noise into a one dimensional array and extracted that information to create a texture. The texture stores the values in its RGB’s red channel, so all I had to do in my shader was assign one of the 4 textures (from my texture layering) to be at the point. That’s the simplest way I can explain it without diving into it.

Settings: Amplitude: Max Complexity: Max Size: Max Height Displacement: Low

Settings:
Amplitude: Max
Complexity: Max
Size: Max
Height Displacement: Low

The vegetation and rocks are randomly given a point on the terrain and they adjust their height to match the height of the terrain. They are only allowed to be placed in certain areas, as you can see: the rocks are only placed in the water or on the sand, the vegetation is only placed on the sand, grass or soft snow. Nothing is allowed on the thick snow.

I’m very satisfied with the program I’ve put together. It fulfilled the requirements but it also looks nice and works well, with only a few minor bugs at the end. I’m going to continue looking into procedural generation, I’ve already got my eye on maze generation.

My Computer

One of my hobbies is building computers. I don’t get to do it that often, so when I do I make the most of it.

I finished building my computer at the start of the year but I never took any pictures of it – until now!

Side shot in the day

Side shot during the day

Side shot at night

Side shot at night

I also put this together for my ex. She’ll probably call me some day saying it’s leaking. Ha!

Leak testing

Leak testing