Creating a Game in Unity – Workflow issues…

One of the hardest things about creating a new game is figuring out how you are actually going to make it. I don’t mean the programming or the graphics, or even the level design – these things can be changed much later in the project without too much hassle. I’m talking about which pieces of software you will use to create the levels and how they will interact.

For example, my latest game is an offroad car racing game based on a series of islands. That was the basic idea at least. There will be different types of level – things like “get from point A to point B in a time limit”. And I am going to use Unity3D, because it is amazing. But once you have a basic idea and fire up the IDE of your choice, where do you go from there? I have spent the last 3 weeks designing different islands, laying things out and trying a number of Unity packages trying to establish how these islands will be created. Once I have that I can start working on actual game mechanics.

I have worked out that I need to use several packages from the excellent Unity Asset store. Number one on my list is GAIA – an amazing terrain generator that I really like. I have tried a few, but they all seem really complex. GAIA allows me to create a random terrain very quickly, then tweak it as I see fit. So that is step one of the island workflow sorted. But then I ran into performance issues – my PC has a Core i7 920 processor with 12GB RAM and a Radeon HD 7770 graphics card. But even with a blank terrain I was struggling to get 30fps. That is where most of the last 3 weeks has been spent – trying to get a decent frame rate! Finally I uninstalled / reinstalled the latest graphics card drivers – and instantly jumped to 60fps. So that’s 3 weeks wasted 🙁

Unity Plugins

Here is a breakdown of the sort of packages I need:

  • Water (AQUAS looking like the current favourite)
  • Mini-map
  • Terrain shader (the default Unity shader looks a bit rubbish at distances)
  • Car physics (a straight choice between Edy’s and Realistic Car Controller)
  • Loads of pre-built objects (because I am rubbish at graphics)
  • Dynamic time-of-day system (or just a plain skybox?)
  • Something to speed up Unity’s trees & grass
    • I have already bought TreesManagerSystem, hoping that the next version (uNature) will help with this

 

Hopefully I will be integrating these soon. Things like water and time-of-day systems won’t have too much of an effect on the workflow. I will probably build them as prefab object to be loaded at runtime anyway. Same goes for the terrain shader – just apply it to the terrain. The main impact I will need to be wary of is performance. The trees and grass are a bit more important though, as they form the basis of the island design. I have spent lots of time experimenting with Unity trees vs SpeedTrees – the SpeedTrees certainly look great, but I think they run slower (bit of a rubbish name then!). They also require a separate editor if you want to tweak them. So I’ll probably stick with Unity trees for now. With some more careful level design and tree placement I will try to minimize areas where the car can drive through dense trees as that really seems to slow things down.

In summary then – I’ve spent 3 weeks faffing about. Time to concentrate on some more important things, like level design and the UI.

 

Introducing… a game, probably…

Wow, it’s been a long time since I wrote a blog post. And I lost my last blog, so this is me starting again. Welcome!

And firstly some background – I’ve been writing stuff for mobile platforms for about the last 6 years or so. In that time the market has definitely changed. It’s so much harder to get your app noticed. I believe that without advertising you don’t really stand a chance. Unfortunately I am rubbish at social media stuff and can’t afford advertising, so pretty much every game I have written in the last 2 years has bombed. So instead of making no money out of mobile games, I am turning my hand to making no money out of desktop games 🙂

So, in steps Unity. I first downloaded Unity about 18 months ago. Loaded it up and just sat there not knowing what to do. I just didn’t get it. So I uninstalled it and carried on with Monkey-X programming. Then I decided it was time to make a Match-3 game (I’d had some ideas for a while, and it just seemed like the right time). I found an amazing template which looked great, but was written using Unity. Well, I bit the bullet and went for it. It was a great learning experience and now I have decided to run with Unity for a while.

The match-3 game (Baby Boomz, available from an App Store near you) was a 2D game, but I have decided to go 3D for the next game. And my favourite type of game has always been driving games, so that seems a natural choice. Yes, driving games rock. Fortunately the Unity asset store is chock full of great assets to help with this, and I will be introducing and reviewing these as I use them. When I told Austin (my 12 year old son) I was making a driving game the first thing he asked was “can you go off-road?”. And the answer (after a quick rethink) was a resounding YES! In fact, that’s the point of the game – it’s all off-road, and set on some random Islands. Mostly. Probably. Ah, this is all work in progress and will probably change soon anyway 🙂

And that’s about it for this blog post. I’ll leave you with a quick screenshot of where I’ve got to so far…

blog_header1