GAME DEV LONDON.TransparentHex.png
Search

The Road To Programming



I am someone who has always loved computer games but only actually made a step into the game developer world five years ago.


All of my coding skills have mainly been from multiple online courses and little help from Uncle Google.


This will hopefully be a useful guide to the dos and MANY don'ts of learning code development. 

The actual learning of code:


I can give you a useful sentence that will hopefully be quite useful in summing up coding:


"You introduce a bunch of variables ( whole numbers (int), decimal numbers (float)  etc) and then do stuff with them." 


That's pretty much it. Well its a bit more than that, I don't think you will be able to get a job at the next 'triple-A' studio solely off the strength of that sentence but its a good start.


I would recommend starting by purely learning a programming language of some sort ('C' or 'C++' worked well for me) with the intention of basic code, the fun Game Making aspect will come later and when it does come you will have a decent knowledge of code under your belt. I also need to emphasis this, "Once you have got the basics of any one programming language, it is significantly easier to understand all the others".


The only difference is they use different syntax, "whats syntax, you ask?", I didn't know either but it basically means they do things slightly differently,  for example:


 'C', 'C++' and 'C#' use beautiful curly brackets to indicate that you are in the function.

public void GainHealth(){Health++;}

Python, on the other hand, uses Ungodly monstrous terrifying awful indents in the page like this

def GainHealth()

Health++


Disgusting I know, but at the same time, once you have learned a bit of code this will all make sense. (your right Pete, I hate using Indents instead of Curly brackets, Python Sucks)


 There are a lot of courses about that say things like, "learn to use Unity 3D without any coding knowledge" or "learn to make games without any code" etc...


As much as it seems tempting to jump straight ahead and make games straight from the get-go, you will find that you are learning more about how to make a specific pre-made game instead of the game that you really want to make. The online course that I used to learn the fundamentals of C programming is:


C Programming - Diploma Course | 2017 | Alison


Its got a bunch of adverts but its free and surprisingly rewarding once you get to the end of it. It also teaches you a bit about whats going on behind the scenes in the computer.

Which game engine should you use:


Before I answer that question it's probably useful to explain what a Game Engine is.


"It's a thing that you download that helps you make games", I know that probably came across as patronising, but I actually spent quite a lot of time hearing the word, "Game Engine" thinking that it was some sort of physical engine that made games, I mean the word engine just confuses things.


I think they should reword "Game Engine" to "A thing that you download that helps you make games", alright maybe that's a bad idea, its a bit wordy.


So there are many game engines about, but the two main big dogs are the "Unreal Engine" and "Unity3D". You will find that roughly 60% of games.... all games are made using those two.


I have only used two different game engines. These are Unity 3D and Game Maker Studio.

I would heavily recommend using Game Maker Studio first if your serious about coding as it is perfect for beginners.


Although Unity has a lot more potential in general, I wouldn't recommend it to begin with because it can be far too overwhelming for people starting out. 


Game Maker allows you to use logic bricks, instead of actual code, which is really useful. Although I still would recommend learning a programming language, to begin with, Game Maker Studio does allow you to make entire games off of logic bricks but here's the fun bit... using logic bricks is actually a form of code.


One of the first games I made, called GOTAR, (don't play it!, it's poorly constructed and the controls are very unintuitive)  I actually started with logic bricks until I realised that it would make a lot more sense to use the inbuilt language which is called Game Maker Language (GML), which is mostly the same as 'C', 'C++' and 'C#' but easier if anything.

Unity is the perfect step up, once you have played around with Game Maker for a while. 

Object Orientated Programming[OOP] :


Once you have learned a basic programming language, you will find that you could make an entire game using one very very long piece of code and a lot of the older games actually relied on this. But since we live in 2020, and games are a lot more complex than they used to be, it makes sense to make many small bits of code that you attach to each object, this method is called Object Orientated Programming.


When I first started, I actually worked on making a 3D platformer, which was entirely relient on one MASSIVE script that dealt with everything. It was about 10,000 lines of code and was one of the most awkward things I have ever done (in programming that is, I have done many awkward things in my life time that out rank this particular event). It was awful and whenever I needed to add more to it, I had to scroll for ages just to reach the bottom. In short, "Use many tiny little scripts that do something small and attach them to the relevant game objects instead of one massive goliath of a script that dictates everything", trust me on this. 

Artwork:


This is a bit of a difficult subject because I have absolutely no drawing talent what-so-ever so my immediate advice would be:

"Find someone who can draw".


Probably not the best advice, though. I actually use a bit of software called "Aseprite", which is on the Steam store and other places I'm sure. It doesn't cost that much, but I would describe it as "what you always wanted Windows Paint to be". It's actually really great for doing basic pixel art. If like me, you can't draw very well, Aseprite is useful for making little 8X8 or 16x16 pixel sprites. I often hide behind the "I am going for the Retro Look" excuse. 


OR .. there are a bunch of free to use sprites on the Unity Asset store. In all honesty, though, my strengths lie in coding and not artwork, and there are many other places where you could get better artwork advice. I’m sure Game Dev London has someone somewhere, feel free to ask...

Useful nuggets of information:


-Assess, Plan, Implement, Evaluate.


Four generic words that are so boring, that you probably decided to skip this part. But what this is basically saying, is you have to think of an idea before you even turn your computer on.


I personally have a notebook, that I can write the ideas, and put together a logical step by step path so I  know where I'm going. Actually those four words don't really correlate with this advice but it definitely makes it look more professional.


Most of the games that I have made, I have actually already built a picture in my head of how the game functions, so when I actually get around to making it, half of the work is already done.

-Keep Coding consistent.


I heard somewhere that a lot of coders waste far too much time deciding what each script and each variable is going to be called. Once you have a system built in your head, everything becomes simpler. An example of this is that I personally have every variable name starting with a capital letter and if its comprised of several words, make each new word a capital letter. Here are some examples:

int HitPoints; 

string NameOfTheCharacter;

you don't have to use this, system but create your own system that works for you.

-Start small.


Actually, on that note, start 2D as well, the third dimension, quite literally adds an entire dimension of confusion. 


Create a simple idea and don't try to add too much. You might come up with a really good idea halfway through making a game that will make it take twice as long to make.


Now that is fine, it's just it's better to make a very basic game that is playable and you can always add extra bits in after.


Even though you have probably heard this advice many times before, the reason I need to emphasis this point is because the first game that I tried to make, starting with a simple idea, but I added more and more to it that after about 7 months, I just wanted to finish it so I could work on another game.

So learn from my mistakes. Start small, start simple, start 2D. 

-Organisation.


Have a separate folder for your bits of code, a separate folder for your prefabs, a separate folder for everything.


And also have subfolders within your folders to separate everything making it easy to find things.


This can take a bit of time to do but it saves you loads of time in the future. It can be fun... it's not fun.

-Be passionate about the game that you are making.


Make sure that you are working on a game that YOU want to be working on. I quite often get people saying "Hey Peter, you should make a game that's like Mario Golf, except instead of it having Mario characters it has Pokemon, and instead of a regular golf ball, they use Pokeballs, and instead of golf clubs they have ......... pokeballs." alright that's a bad example, but make sure you want to make a game that YOU would enjoy playing.

-Genuinely be proud of every hurdle that you overcome.


Even when it's making your first "Hello World" script. I am obviously quite new-ish to the coding scene, but I always make sure that I do a miniature cheer every time I learn something new. And obviously don't compare yourself to other game developers. 



About the author:

Peter is both a solo developer and a programmer for a small (not so small) indie studio startup called Zap Pop Pow.


Peters Latest Projects:


“So I have recently finished a game that needs a bit of ironing out if you want to give it a try, I have it available for TestFlight on the Apps Store:”

Join the TheGreatShapeRunaway beta


“It is also on the Google Play Store, I couldn't work out how to do the equivalent of a TestFlight in Google Play Store, so I decided to just release it. “

TGSR – Apps on Google Play


“To give you the heads up, it starts with a long unskippable cutscene, that you have to sit through to get to the game. I will fix that. 

I'm also working on another project that plays similar to Tetris, except it involves making boxes stay tuned.”

4 views