So you want to get started with Unity Game Development?

unity-logo

With the release of Unity 5, developers using the game engine have more power handed to them than ever. With an overhaul of the lighting pipeline with realtime Global Illumination and the audio pipeline with advanced audio mixers, and perhaps the most important new change, the Personal Licence, providing all engine features for free, now is the perfect time to start developing a game with Unity. But how does one get started? Here are a few tips if you’re making your first ever game.

Aim low for your first product

It doesn’t matter how ambitious you want to be; you need experience first. We all have that ‘great idea’, and the time will come when you’re ready to give it a go, but for now, you’ll need to take a step back to work on the basics. First of all, go grab Unity (this post will focus on Unity, but most of the stuff I’m talking about should be applicable to most game development tools), and make something, anything, with it. Make a primitive sphere roll around on a plane, add textures drawn in Paint, do anything you wish; just playing around and getting to grips with whichever editor you’re using will be an invaluable experience. This ‘trial’ stage can last as long as you want, but make sure you’re comfortable before moving on – my Unity trial stage lasted about two months (although you can see a definite increase in proficiency from start to finish). unity_platformer_17

Just make something, even a fundamentally broken game like my first attempt.

Use online resources

I can’t begin to tell you how useful the Internet is when it comes to tutorials, questions and answers, cheat sheets, podcasts, you name it. If you get stuck on something, odds are someone else in the world once fell into the same pitfall as you; seek out how they fixed the problem. Unity in particular has some of the best forums for help, especially their Answers section. Of course, you may also find it helpful to have a few books to hand, although these can sometimes be pricey. I’ll include a full list of resources that helped me at the end of this post, but as a general rule of thumb, give questions a quick Google before you ask them online.

The guys at Extra Credits are phenomenal – this video is all about getting started.

If it all falls apart, don’t worry!

It happens to the best of us. We slave over a project, we polish it to hell, we release it into the world and… and it just doesn’t work. We show it to a friend, and they produce a list of errors rather than the compliments and . Your game, for whatever reason, just doesn’t feel right to everyone who isn’t you. This is an extremely easy time to just give up on your project, but rather than sulking into a corner and throwing away the progress you’ve made, listen to the comments you’re getting and take them as constructive criticism. It’s much better for you if these fatal errors are found early on, so every time you implement something big in your game, go find a heavily critical friend and see what they think. And never, ever reply to someone’s criticism with a list of why they’re wrong – you need to listen to your target audience and market your game towards them. And besides, you’ve got this far already, so just give your game that extra push it needs and it’ll turn into the vision you had in your head when you began the project. spikes-75

Oh God what was I thinking.

My old game, Project Spikes, went through several iterations and confused players about 99% of the time. But I kept going with the project and attempted to fix as many of the problems with the game as I could, because it was a valuable learning experience for me. In the end, the project ended up down the toilet, but that doesn’t mean it was a waste. Many of the techniques and assets I developed are still useful now, so the game was a huge lesson in level design, asset creation and how to script with Unity.

Other tips

  • Make lots of small games. There’s no better way to increase your creativity and hone your skills than setting a small timeframe and aiming for a game that focuses around only one mechanic.
  • Use assets online. There are tons of resources and content-generating programs available, some with a free-to-use licence.

Resources I found useful

Unity-specific:

General Game Design:

Awesome Tools:

  • Bfxr – a sound generator. Great for sound effects and other little snippets of audio you need for your game, and easy to use, usable in your browser or as a standalone download.
  • Pyxel Edit – Very simple program, nice for pixel art, and cheap. There’s a trial version too.
  • Chronolapse – For anyone who wants to document their game’s development, this is a cool tool that takes screenshots every few seconds, then stitches up a video at the end. Great for 48-hour jams.

If you have any other great resources or tips you think I’ve missed out, feel free to comment below!

Game Development Software: Unity Free

I’ve decided to do more in-depth reviews of the software I use. I’ll start by detailing the various features in one of my favourite pieces of software I’ve used so far, Unity 4 Free.

unity-logo

What is Unity?

I’d be surprised if you haven’t heard of this already – just a quick Google search for “free game engine” will return it as the top result. Unity is a 3D game engine that’s designed to speed up and streamline the development process, while providing all the powerful features you’ll find in similar products. While some features are restricted to Pro (such as realtime lighting and post-processing effects, I’ll be talking about these later), the free package contains most of the features you’ll need. So don’t be put off by the fact that a Pro licence costs $1500 in one payment or $75 a month, just go download the free version to see if you like it.

The Unity Editor

unity-editor

The Unity editor, your window to making the games of your dreams.

The editor itself was designed with customisation and workflow in mind. You can see a load of windows in this screenshot, each of which can be freely docked on any side of the screen, or even pulled into a separate window if need be. Each window has a specific function:

-On the left is the hierarchy pane, which lists all the GameObjects (this is what Unity calls any old object you lob into the level, which are called scenes). GameObjects can be stacked (or ‘parented’) onto other GameObjects, in a hierarchical manner, hence the name of this window.

-On the right is the Inspector view, which frees up all of the variables and components attached to the active GameObject so they can be changed easily without having to delve into the source code and change variables directly.

-On the bottom is the Project pane, which lists all the assets available for your game, which can be dragged and dropped straight into the level.

-Most importantly, in the centre is the Scene view, where all the action happens – this is where you’ll be moving around all the GameObjects in the scene to build up your level. Here you can see the currently selected object, my player, and the gizmos that represent some of the components on the player, for example the blue sphere is an audio component, and the white cone is the main camera’s field of view. Once you’ve finished building the level the way you want, you’ll want to test the level –  in Unity, this is a breeze, as all you have to do is click the play button at the top-middle of the screen, no waiting screens, no lengthy compiling required, just an instant transition from the Scene view to Game view, where you’ll play the game as if it were a proper build of your game.

Scripting with Unity

Unity provides the functionality to program with your choice of three programming languages, C#, Javascript and Boo, and a script in one of these languages can communicate seamlessly with a script written in either of the other two. A plethora of classes are available for manipulation from the start, giving you complete control over any GameObject and all the components attached to it, the physics engine, the inputs used in your game, everything. Unity provides comprehensive documentation on all aspects of scripting with Unity, just take a look at the Unity manual and look at all the classes along the left-hand side to see just how much of the engine is under your control. And if you’re completely stumped at how to start programming with Unity, there’s a whole playlist of tutorials on Unity’s official YouTube channel, plus Unity provides Live Training on its website every so often, the archive of which can be found on their YouTube page too. Unity ships with MonoDevelop, an IDE (Integrated Development Environment), which is very handy as it’ll error-check and auto-fill everything that’s specific to development with Unity. Also, it’s important to note that the Javascript used in Unity is a slightly modified version called Unityscript, although it functions much the same as conventional Javascript.

unity-mono-develop

This is MonoDevelop, the IDE that’s provided with Unity.

If you don’t like MonoDevelop, or just prefer another IDE, then you can set another default program by going to Edit->Preferences->External Tools, then change the external scripting editor by browsing for its location on your computer.

The Asset Store

Having trouble modelling a character? Need a few more ambient sounds for a dark alley in your level? Completely stuck and need a completed level to use as a starting point? Then someone’s bound to have done it already on the Asset Store, an online marketplace foe everything you’ll ever need in Unity. From editor extensions to particle effects, models, animations, textures and even complete projects available on the store, you’ll be hard-pressed to find something that’s not on here.

unity-asset-store

The Asset Store will be your go-to place if you’re looking for something to use with Unity.

There’s plenty of stuff that’s completely free, plus there’s occasional sales, giving you a lot for a reasonable price. If you’re going to be developing with Unity, then a good free package to start with is the Sample Assets package provided by Unity Technologies themselves, which gives you a fully rigged and animated character controller called Ethan, multiple vehicles, and many other assets to help you out at the start.

In-game lighting and lightmapping with Beast

Unity has built-in support for the Beast lightmapper, a powerful tool that will bake static shadows onto your level, cutting down on the realtime impact of calculating shadows every frame. You can set how detailed and how strong the shadows are, which lights will be casting shadows and which objects will receive these static shadows, then click bake and Beast will automatically create very detailed lightmaps for you in a relatively speedy process. Back in the editor, there are four different types of light – point lights are like light bulbs and provide light emanating from a point in space which falls off with distance, directional lights act like the Sun and provide uniform light in one direction across the whole level, spotlights are self-explanatory and provide a cone of light from a point which falls off with distance like the point light, and area lights which are Pro-only, so I have no idea how they work. One massive drawback to Unity Free is the lack of realtime shadows – only one directional light is allowed to produce realtime shadows in Free, but no point lights or spotlights will cast realtime shadows, a truly disappointing omission, but not one that’s so huge as to prevent you making a good game with Unity Free.

unity-lightmapping

This is the sort of result you’ll get after creating lightmaps. These are the plastered on top of your game geometry to simulate lighting.

Nvidia’s PhysX Physics Engine

Unity uses the PhysX physics engine developed by Nvidia. It’s a very comprehensively constructed engine, handling collisions between objects, applying forces and gravity to them, and moving objects realistically due to the acceleration produced by these forces, all while allowing complete realtime modification through scripting. I use this functionality a lot while developing with Unity, so having so many functions available is helpful. Not only can forces be applied to objects in one direction, but explosion forces can be applied from a point in space to all nearby rigidbodies (physics-affected objects have a Rigidbody component applied), object’s masses or drag can be modified directly to affect motion, and collisions can be used to initiate events in-game. The physics engine supports the use of joints too, such as hinges or springs, and it works in both 2D and 3D, with dedicated components and functions available for both.

unity-physics-explosions

Explosions, just one of the effects you can achieve with the physics engine. And yes, this is my game, which you should be following by now.

Shuriken Particle Systems

Particles are important for applying a final touch to a game. Whether the particle effects are just debris from a gunshot or something much larger like a collapsing bridge, they add a lot to any game. Unity uses its own particle system, Shuriken, to handle particle effects. This is completely customisable as with everything else in Unity, allowing you to modify the speed, direction, rotation and size of individual particles, and change these over time too. Then you can change the force applied over time, the colour, transparency and lifetime too, as well as the particle texture which can be a spritesheet as opposed to a single texture, allowing a lot of room for creating the effect you desire. The particle themselves can simply be billboard textures, so they always face the camera, or a mesh, so physical 3D objects are emitted by the system, and they can even handle collisions, with different levels of quality to preserve performance if needed and the option for collision callback messages to be sent to scripts, so you can make events occur when a particle hits a surface. If you don’t have the time or resources for this, there’s plenty of particle systems on the Asset Store.

unity-shuriken

These are some of the many variables you can choose from when making a particle system. The grey bars can be expanded to give even more variables and many can be disabled if not needed.

Terrains

Unity also has a terrain generation feature. A terrain is simply a large mesh that will make up the majority of the ground of your level, with a terrain collider attached to it and the ability to add multiple textures to the surface to represent realistic ground. To create a terrain, you can go to GameObject->Create other->Terrain, then you’ll need to select its size and height. If you select something a little too big then that’s not a problem, you’ll just have to improvise and construct your world so some areas are blocked off, but make sure it’s not too small or you’ll have problems, because it’s a bad idea to resize a terrain you’ve already shaped and textured (something I’ve found out the hard way multiple times in the past). Initially, you can carve out the shape of your terrain using the raise, lower and smooth terrain brushes, which have options for the opacity and size of the brush, then you can paint the terrain with multiple, blend-able textures. It’s an easy-to-use but powerful feature, and is highly optimised so it should even work well for mobile projects. You then have the ability to add static meshes to the environment, such as trees, rocks or grass, which will be ‘batched together’ for increased performance. If that wasn’t enough, Unity has a very detailed tree editor, allowing for the randomisation of trees so a variety of shapes and sizes will be distributed across the environment.

unity-terrain

This terrain is from an old, abandoned project of mine. The trees are very slightly different from one another to mimic natural deviations in tree shapes and sizes.

Speed of development

Unity really shines when it comes down to speed. The instant playtesting feature is so useful when you’re prototyping and squashing bugs, or when you’re trying to find the best amount for, say, an enemy’s attack stat – just tweak the variable in the editor using the Inspector view, instantly play the game, then tweak it a bit more, even while the game is still running, so you can see the result straight away. Unity also has a genius Prefab system, whereby you can create one item for your game with a load of components and variables associated with it, or even child objects too, then you can turn this item into a prefab, which can then be dragged and dropped into the game as a perfect copy of the first item. Plus any changes to the source prefab will then affect any GameObject that’s associated with it, so it saves having to edit tens or hundreds of individual objects in your scene. This makes creating your game world easy and efficient.

Exporting to many platforms, plus your toaster

Unity supports publishing to so many platforms with little to no tweaks needed to your code it’s ridiculous – the same project cam be published to, hold your breath – PC, Mac, Linux, iOS, Android, Windows Phone 8, Blackberry 10, all major web browsers, and even Xbox 360, all recent PlayStation consoles and both Wii and Wii U. Of course, the consoles require licences from the respective companies, and publishing to iOS requires an add-on (which costs $1500, but a hit game on iOS is well worth the initial cost), but this is still a massive array of publishing options. The Unity Web Player itself is a fantastic platform, as you can deliver your game on all major web browsers with a few clicks, while the game itself will be so highly compressed that the user won’t need to download gigabytes of data to play it, allowing for instantaneous streaming of your game. The number of available platforms grows over time too, so you’ll never be short of a prospective audience.

unity-multiplatform

All. These. Platforms.

What’s missing in Unity Free?

A few major features are missing from Free but present in Pro. Firstly, as mentioned before, there’s only one realtime shadow in Free from one directional light, but in Pro you can have as many realtime shadows as you want, which can sometimes be the difference between an alright game and a fully immersive experience. Plus Pro gives you area lights, but I still have no idea what they are. Pro also utilises occlusion culling to increase performance, whereby objects that are obscured by another won’t be rendered at all. This isn’t to be confused with ambient occlusion. Think of a wall, with a small cube behind it. In both versions of Unity, the back face of the cube and wall, and perhaps some side faces depending on what angle you’re looking at them from, won’t be rendered as they’re facing the other way, but with Pro’s occlusion culling, the cube won’t be rendered at all because it’s obscured (or, occluded) by the wall. This saves your GPU lots of work with minimal CPU overhead.

Pro also gives you the ‘render to texture’ feature, which allows you to take a camera’s view and make it into a texture for use in, say, a TV screen, or to take screenshots. It can also be used for mirrors, or reflective water surfaces, so it’s a very powerful feature when put to good use. Pro also has a profiler bundles with it, which shows you where resources are being used in your game, for the detection of bottlenecks. It’s a helpful tool for increasing the performance of your game.

While Unity Free has a pathfinding tool built-in, Pro expands upon it massively, allowing more control over where characters using the pathfinder can move, and how they transition from area to area.

Another large feature missing from Free is post-processing effects. The ability to take a frame then add effects such as anti-aliasing, glow, bloom, motion blur and colour correction enhances your game graphically. This sort of feature is present in the free versions of other game engines, so it’s a feature I’d like to see in Unity Free. Also, games published with Unity Pro don’t have the Unity watermark when started up.

Summary

Unity Free is a very powerful, giving you a feature-set that will allow you to make very complex games. The sheer amount of help online from Unity is astounding, plus the comprehensive Unity manual, which can be viewed offline, explains every part of Unity very clearly. The community is extremely helpful too, with forums accessible for those with questions on any part of Unity, and for people to show off their work, completed or in-progress. The speed of development of games with Unity is above that of most other engines, and the sheer number of platforms you can export to means that your possible audience is as big as possible. There are many built-in features provided to aid you in making all genres of game, such as terrains, particles, physics, lighting and lightmapping, and even pathfinding. With Unity 5 just around the corner, now is an exciting time to be a game developer with Unity. However, the free version suffers from some missing features, such as realtime shadows, post-processing effects, the profiler tool and render-to-texture, some of which are found for free in similar game engines such as Unreal Development Kit or Source. If you’re an indie developer and you’re looking for a fast but powerful tool to fuel your game, then this is a brilliant place to start. Unity is a game engine you won’t regret downloading.

If you have any opinions on Unity, then I’d quite like to hear them. Maybe you also have some other great engines you’ve used that you’d like to suggest to people starting out with game development too? I hope you’ve had fun reading, and have fun with Unity if you choose to have a go at it!

More Lasers, Explosions and Better Options – 22/04/14 Update

I’ve been working on something I’ve wanted to add to the game for a long while now – lasers that reflect off certain surfaces. In proper levels, these surfaces will have proper textures so that they can be distinguished from other walls and floors, but I’ve had tons of work to do lately so I’ve only been able to implement the lasers themselves, in the form of an improved Laser Gun, as well as new player-operated laser turrets.

spikes-86

Just walk upto these turrets and press “e”, and it will face the direction you’re looking in. When the beam collides with a reflective surface (in this update, the walls and floors of the room with the laser turret in act reflective), the beam will rebound off the surface. These surfaces will be used in levels to direct laser rays around obstacles and into laser receivers. This can produce loads of hectic-looking scenes, such as the one in the header image above, and could also lead to alternative objects that simply fire a laser in a fixed direction, as obstacles the player needs to avoid. The laser itself is a little bit wavy now, and collision points light up with a small particle effect.

Another thing I’ve been working on, as promised, is the new version of the Destruction Gun (which sucked), which will eventually become a shotgun/grenade launcher combo. It’s in a prototype phase so far, as in the actual mechanisms for the gun are there, but it’s using a recycled older model for guns right now, and on the whole, it lacks visual effects or sound, but the base mechanics work. To shoot the shotgun, left-click, and to shoot a ‘grenade’, right-click. The shotgun can destroy windows, and will blast away cubes and other physics objects, while the grenade will do the same, with a fairly large explosion radius, but this can hurt you too if you’re standing too close.

I’ve been working on a newer options menu too. The old system had presets for the visual quality of the game, which gives the player some choice but also restricts it in other ways. Now, you can change individual settings.

spikes-88

One of the options – aniso level – doesn’t really do anything right now; it stands for anisotropic filtering level and is redundant as it doesn’t work for pixel-y tectures like the ones in my game. If you raise the shadow distance too much, then you’ll see visible dark banding on some surfaces. But the rest of the options are pretty cool, and allow for a greater level of customisation, plus the colour scheme works much better now.

The “advance cubes”, as I’ve called them in previous updates, have been replaced with teleporters, complete with a smoother transition between levels (plus the darkening of the screen while pausing is smoother, too). The teleporters have cool particle effects too. They work much better than the old cubes, and eventually I’ll change the backwards cubes to new teleporters too.

spikes-89

Future Updates

Now, I have most of the gameplay features in place that I wish to be in the final game. I will add more and improve old ones as time goes on, but the current features are largely the ones that will stay in the game. Much of the work from now on will probably be on the game’s story, which I’m in the process of writing, and modelling new levels, as well as eventually trying to implement voice acting for proper characters in-game, which I’ve mentioned before.

From now, on, I’ll be releasing the game updates in a different kind of way. As the game’s going to be getting a proper storyline, which I don’t want to spoil too much by releasing updates every week or two, I will be releasing a separate build when a new game feature’s been added to see how you, my loyal players, react to it. That won’t be limited to just a gameplay feature, it could also be a layout for a level or a test level, or maybe even new textures. Then, when the time comes, the actual game, plot and all, will be released in a really really large update, although at this point I have no idea how much it will cost (if anything) or what the final product will take shape as. For now, you can play it here like always, and I look forward to hearing any feedback you may have. Have fun playing!

Saving, Loading, Texturing, Awesomeness – Project Spikes 08/04

spikes-84

Saving and Loading

The big feature for this week’s update is saving and loading. Along with this comes a standalone version of the game, as the Web Player doesn’t allow for files to be saved to disk on the user’s system. The standalone versions for Windows, Mac and Linux can be found on my IndieDB page dedicated to the game, and as always you can play the Web Player version in the usual place, however this won’t be able to save your progress and might be phased out in later updates. It’ll stay here for a while, as it’s a quick and easy way to test the game. Right now, the levels you’ve completed and the secret cubes you’ve collected will be saved, but as I make progress with the game, more stuff will inevitably need to be saved. The .dat file is saved in what Unity calls the ‘persistent data path’ – on Windows, that’s “Users/[user]/AppData/LocalLow/danielthenerdyguy/Project Spikes”. To save, there’s a button on the pause menu, it’s as easy as that. Plus on the standalone version’s start menu, there’s now a quit button that shuts down the game window. I watched a Unity live tutorial for the saving and loading stuff, and if you’re looking for a way to save stuff to disk on your game, I strongly recommend you watch it too.

spikes-81

New Textures and models

Also, this update I’ve added many new textures, just to make the game feel a bit fresher.

spikes-82

Not all of them are really in the game fully yet, but they will be added at some point. All except the top-left and top-center are present somewhere in the hub world, so look around for them. I used the two with loads of lines crossed all over it in a section of the hub ship to look like parts of the wall have been torn off, and you can pick up the tiles on the floor next to it in the same way as you’d pick up a cube. Which brings me to another point: you can now rotate stuff you’re holding with the force gun. I struggled to find a nice control scheme for this, but I settled on ijkl in the end, so in a similar fashion to wasd, i/k will rotate the cube up/down, and j/l will rotate it left/right. The particle effect for activating a powerup is much better now too – it’s basically the same thing, but more in-your-face. And there’s now a new triangular type of wall that solves some issues I was having with stairs, which I’ll be rolling out to other levels soon.

spikes-83

General other stuff

The Hub World is pretty much complete on the whole, albeit without a new skybox, which I’m planning to make by next update to match the new space/sci-fi theme for the hub. There hasn’t been much progress with actual levels recently, but I’ll get back to properly doing them in the near future hopefully. I’ve also experimented with new types of cube – you’ll find a few new red cubes in the level selection corridor, to the right of the door. These cube spin on one axis, so in future puzzles, they can be used for swing bridges that spin when cubes fall on them.

spikes-85

The future!

I’ve been working on a brand new gun that fires explosive bullets, and it’s working so well right now. The actual concept is in place, and soon I’ll be making the actual model for the gun. Along with this, I’ll implement an animation system for the gravity gun. The new gun will be an enhancement and replacement for the vapourising/destruction gun, as it doesn’t really have many uses.

That’s it for the latest update. On IndieDB I’ve created a forum where you can post your ideas and feedback, as well as report bugs and ask for help. Have fun playing!

Awesome Free Programs for Game Development

So far, I’ve spent absolutely no money on my game, as I’ve been seeking out free options for everything that’s needed for game development. There are some wonderful options out there which emulate or even surpass more expensive options, so to help people out, I’m going to list some of the best pieces of software I’m using below.

Unity 3D Game Engine (Free Version) [link]

software-01

This one is pretty obvious – if you’ve played my game then you’ve noticed it uses the Unity Web Player. With the Web Player, you can easily deploy your game to your site so that your audience can play it straight from their browser. There are so many platforms ready to be deployed to: Windows, Mac, Linux, Android, iOS, Blackberry, Windows Phone 8, Windows Store Apps and, with special licences, even Xbox 360, PS3 and Wii. There are tons of features, the editor can be pretty much completely customised, and you can tweak stuff in your game then play-test it immediately, without the need to build the game every time you make a change. This is a great engine for speedy development, and while it looks pansy compared to the Pro version (or so I’m told, if anyone wants to fork out £1500 to buy it for me, I’ll love you forever), this is still a great place to start if you’re looking at starting out in game development. The community is very helpful too, and they’ll have an answer for any questions you have, plus their YouTube channel is full to bursting with videos on almost every aspect of Unity. Oh, and the red thing in the screenshot from my game is the player as viewed in Unity. I really need to get a player model done at some point.

GIMP – GNU Image Manipulation Program [link]

software-02

You may have heard of this, a free equivalent of Photoshop. It packs a variety of tools, brushes and wacky options I haven’t actually tried out yet, along with transparency and layering support and many different export formats. In short, there’s a lot here that you probably won’t use. However, it’s been great for me so far, and I’ve used it with every texture in my game. A good technique I use is to select one of the blotchy-looking brush shapes from the lower-right box, then on the left I turn the opacity down and the size up, then blitz over the image with a couple colours to give my image a more random look. Of course, if you have the funds, then get Photoshop, but if you’re on an extreme budget like me, this is perfect.

Bfxr [link]

software-03

This is great for making sound effects for your game. It is an improvement on another amazing program, Sfxr, and gives you a multitude of waveforms and variables to play around with. There are a few presets, seen on the left here, which generate a specific(ish) sound, or you can fiddle about with the sliders to get the sound you want. You can also mix sounds together, save and load sounds if you’ve found a good one, and export them to .wav format for use in your games. Oh, and this program can be used online, or with the standalone version you can download.

Blender [link]

software-04

This is a very powerful tool for modelling, texturing, animating, everything basically – it even has its own game engine. However, if you’re anything like me, you’ll only use the basics. The interface is a bit daunting at first, but once you’ve watched a handful of YouTube videos on it, you should be fine. As most modelling software packages cost an arm and a leg (heck, you’ll have to take out a mortgage for some of them), this is a lifesaver. The only problem (if you can call it that) is that there are too many features for most people’s general use, but ignore all of the fluff and it’s perfect.

Your own imagination!

Yup, I have to put a terrible cliche in here somewhere. However, this one is very true, as you can’t make something out of nothing, you need a good idea to begin with. If you can’t think of anything, maybe go seek out some kind of inspiration, like a game you really enjoyed playing. Think to yourself – what was it about the game that was fun? Which features were innovative? How well were the graphics done? I’m not telling you to completely rip someone off (lawsuits don’t really look too fun), but it is completely fine to take inspiration from your favourite game and put your own spin on things. Just make sure it’s your own work, don’t push yourself too hard and if things start to seem daunting, perhaps slow down a bit and go do something else for a while. Game development takes time to perfect, but you’ll get there eventually. When I find more great programs, I’ll share them with you, minus the cheesy cliches.