Getting organised is a crucial part of making good progress in any kind of development. Following a mad dash to build a prototype I usually start a fresh new project in Unity and get organised. Once I’m set up, I can start porting and refactoring my prototype code into my new project and get on with making a real game.
The first thing I do is organise my windows. There’s no right way to do this, but this is how I have it set up.
In the top left, I have my Scene and underneath is the Game window. I also have my Project and Animation tabs in the bottom and Animator, Console, and for some reason, Asset Store keeps appearing there.
To the right, I have my scene Hierarchy and the Inspector to the right of that. I will generally run in full-screen mode and have MonoDevelop open at the same time.
Now that Unity is how I want, I can flesh out my folder structure.
Here’s how it looks now.
Everything goes inside Assets
Prefabs folder contains a folder for every prefab we have. Inside each folder will be the prefab and any animations associated with it.
Scenes are split between Levels and Menus for now. I may add more categories later.
The Scripts folder contains all of the code files. In my case, those are C# files.
The Textures folder contains all the image files.
Now I’m organised. Or at least on the right path to being so. I’m ready to start cranking out some code
Since my early days of playing Mario on the NES, I have always wanted to make a 2D game. Now with enough experience to know WTF I’m doing, I have embarked on making a 2D Platformer, primarily for the iPhone. In truth, I started this game about 2 years ago, and then again 2 weeks later, and again a month later. I eventually gave up.
I have decided to use Unity to build this game because in all my previous attempts at making a game, I’ve spent at least 75% of my time just working on the editor. One previous attempt at making this game produced some good results but it took me months to get to that point. In just 5 late nights of hardcore coding, I’ve managed to surpass where I was before and with more time to spend tweaking the engine values, rather than tweaking the engine code to make use of my values, I can make the game behave much closer to how I want it to.
Here’s a little video showing a snippet of the game so far. I’m still working hard on refinement of the physics and slowly introducing more features. I’ve also already built a lot of the game state so the player can go through levels and save their progress.
The more I squash bugs, the more usable the app becomes. This in itself is a problem.
I want to be able to use the app while I’m developing it to ensure I’m building an app I would actually want to use. As I begin to use the app more, in particular, to try and draw the icons to be used inside the app, I notice that there’s a distinct lack of shortcut keys. So that’s what I’m going to focus on next. I hope it will improve the workflow as much as I think it will.
I’m writing my own keyboard shortcut key system so that it’s more transportable if I ever manage to take it OSX. It’s a simple system whereby I load some shortcut keys from a file, call AddShortcut with each one and wait for the callback to fire. I hook this up to a global system of commands that can be actioned by the app, again, for portability.
The system was easy to set up, but there’s a bit of hackery over whether control/alt and alike buttons are pressed down. I’ll come back to tidy up that mess later.
We now have shortcut keys for:
* D – Draw
* E – Erase
* S – Square
* R – Rectangle
* Y – Eye Dropped
* L – Line
* B – Bucket
* Ctrl+Z – Undo
Next up. I need to do something about these damn crashes. I won’t rant on about that though. Too boring.
The project is well under way now and it’s reached a point beyond prototype so I figured I’d start recording my progress.
It doesn’t have a name. Still chewing over that one.
Here’s what the app looks like so far.
Up at the top, we have a menu. We can currently create a new project, open an existing one, and save the current project.
To the left is the toolbox. All of the icons(as terrible as they are) are being drawn with the pixel editor. The hope is to continue this until the tool is proficient enough to be able to produce something real.
The list of tools available at present are:
Lower down in the toolbox is an undo button and the current color selection.
On the right we have a preview of the whole image, then the color palette. Clicking add will allow you to choose a color from a color picker.
In the centre is the main drawing canvas. This is where you paint.
Above it is a zoom slider and a brush size slider.
That’s pretty much it for now. I’m going to go into detail on individual elements of the app as I begin tightening up the project ready to use in a real world scenario.