Do You Need To Know Programming To Make A Game?

Many of us want to create a game but wonder to ourselves, do I need to know programming to start? Do I have to be good at math, go to university, get a Computer Science degree just to start making a game? Where do I begin? In this article, I go over all the common questions you make have related to if you should know programming to make a game.

You do not need to know any programming to start creating a game. Game engines, like Game Maker, offer a drag and drop solution to create a game. Other engines, like Unity, offer a large assets store where you can find pre-programmed objects/features to use in your game. Learning to program will speed up your game development and give you the ability to learn how to troubleshoot errors and implement your own unique assets. Furthermore, most tutorials use programming to teach new skills.

Learning a programming language will take you further in game development than drag and drop programming, but learning drag and drop can act as a gateway to understanding how logic, events, and fundamentals in game development.

It’s better to start somewhere than to never start because something seems too daunting.

What Is Drag And Drop Programming?

Drag and drop programming is pre-programmed logic and features that you can use to create game logic. Game logic allows you to move players, collide with walls, press buttons, any interaction that can occur in a game. Ex: If the “W” key is pressed move the player forward.

Drag and drop programming allows the user to select a conditional statement, drag it into a coding space, and then drag an action to occur if that statement is met. Whereas coding would require you to write out the condition statement and code the action. The action in drag and drop is pre-programmed for you, wherein programming you would have to code the action too.

Drag and drop programming is how I first got into programming, in the StarCraft map editor. It is a great way to start to understand how logic works in a game. If/Else condition statements being to come clear: If a player goes to the door, open the door: else, don’t open the door.

Game Maker Drag and Drop example.

Above is a screenshot of Game Maker, there are two red boxes. The smaller one shows events, inside there you can see Key Down and Key Released.

Inside the Key Down I have, “if up arrow pressed, set speed to 1”. In the Key Released I have, “if key up released, set speed to 0”, as seen in the larger red box.

The boxes to the right of the large red box are the drag and drop options I have to use for programming my game. From movement to collisions, particles, and more.

An example of similar logic programmed in C# in Unity could look like this to move the player:

void FixedUpdate() {
  float moveHorizontal = Input.GetAxis ("Horizontal");
  float moveVertical = Input.GetAxis ("Vertical");

  Vector2 movement = new Vector2 (moveHorizontal, moveVertical);

  rb2d.AddForce (movement * speed);
}

What Is A Programming Language?

A programming language is a set of instructions that a compile translates to a set of machine-language instructions that are understood by the internals of the computer.  The most common programming languages are C, C#, C++, Java, and JavaScript.

Some programmers may see that I’ve included scripting languages on that list. A scripting language is similar to a programming language except they require an interpreter to understand the instructions and are compiled line by line instead of the entire file at once. JavaScript has to be incorporated within HTML which will then be interpreted by the Internet browser.

What Programming Language Should I Learn For Game Development?

The most common languages used in game development are C++ and C#. C++ is the standard in most companies as it can be used to create game engines and is used in the Unreal Game Engine. C# is a scripting language; however, it is the primary one used in the Unity Game Engine – one of the most popular engines used in indie game development.

The language you should learn should be the one you’re going to use the most. If you learn one, you will have an abstract idea of how all programming languages work. A conditional statement in C++ will be identical to the one used in C#, Java, and C for instance.

Learning C# and using Unity to create games is one of the best approaches for learning programming for game development. The Unity community is huge which means there is a lot of information out there and a majority of Unity developers use C#. Additionally, the Unity site and YouTube offer many tutorials and resources to help you learn to program and set up a project within a day.

Game Maker is a great resource to allow you to get a grasp on game logic using drag and drop programming. Then when you are familiar with how logic works you can use Game Maker’s internal language GML. Once you understand how GML works it might be easier to transition into the more widely used programming languages, like C++.

Mobile development can be created using game engines, like Unity and C#; however, the two most popular languages used in mobile development are Swift and Java. These are used for mobile development because of how the internals of the phone interprets the software created.

Should You Build Your Own Game Engine?

Building a game engine is not building a game, but building a game engine can give you a deeper understanding of the internals of what’s happening behind the scenes in game engines and allows for flexibility.

In Unity, what does the function AddForce() actually do? Well, your player object has a position associated with it, typically a variable structure named Vector is used to describe that position in terms of x, y, z coordinates. Now I need to increment one of those coordinates over some time to move the object in a certain direction. This isn’t a full example, but something you’ll have to learn when making a game engine. It can be fun but might not be what you’re looking to do.

If you’re deciding if you should make a game engine for your first game, I recommend that you do not. The reason being is that creating a game engine is complex and not necessary for creating a game given the number of great engines out there now.

Additionally, using a 3rd party engine will give you an idea of features you wish you had within the 3rd game engine you’re using. When it come times that you wish to make your own you’ll have a better idea of tools you want to build to help your development.

One method you could use if you’re set on creating a game engine is to prototype your game in an existing engine to ensure it is worth creating an engine for it. Prototyping games in pre-existing engines can be a fast task to give you an idea of what you’ll need once you begin your engine.

Below is a video of the new game development studio Frost Giant. I have it shared at the time mark that goes over their take on if they are going to create their own engine or use a pre-existing engine.

Drag and Drop EnginesPopular Engines with Asset StoreAPI’s To Assist You In Creating Your Own Engine
Game Maker StudioUnitySDL (Simple DirectMedia Layer)
ConstructUnrealOpen GL
StencylGodotGLEW
RPG MakerCryEngineGLFW
GDevelopAmazon LumberyardENet

Conclusion

You do not need to know programming to create a game. Game engines like Game Maker and Construct make it easy for people that do not have programming experience to create a game using drag and drop methods to create interactions. Drag and drop options are pre-programmed features that can be connected to create game logic to cause something to happen, like moving the player.

Learning programming will excel you further into game development allowing you to do more complex features inside of your game. Programming will open up the possibility to customize any feature in the game you are creating instead of being limited to the features offered in the drag and drop option.

Building a game engine is not required to create a game. Creating a game engine allows you to have the ultimate flexibility in what happens in your game but is a task of its own outside of creating the game. Knowing how to program is essential to create your own game engine and learning how to set up a development environment is required to compile and run your game.