How to Make a Game – A Guide to Making Video Games

How does one make a game? 

Perhaps this is a sentiment you’ve thought of before as you daydreamed about your video game project that could be amazing if only you could make it reality.  Of course, you could hire a small studio to make it for you, but most people don’t have a spare $1,000+ laying around to afford even a few days of programmer and artist labor.  Instead, many opt for the route of building computer games themselves, since that only costs your own time.  That still begs the same question though: how do you even get started making games?

BUILD YOUR OWN GAMES

Get 250+ coding courses for

$1

AVAILABLE FOR A LIMITED TIME ONLY

This question comes with a bunch of other questions as well.  What game engine should you use?  Where is the best place to publish your game?  How much programming do you need to learn before you start making your games?  Do you even need to know how to code to make a game?  How do you design a game?

Unity playground platformer demo

In this guide, we will aim to provide a baseline understanding of as many questions as possible, both in terms of how to plan out your video game, what engines you can use, and so forth.  While this guide won’t specifically cover creating your first game from scratch, it will lead you in the right direction so that you will be able to do that via the resources provided.

So, if you’re ready to learn how to make a game, let’s dive in.

What is the Cycle of Game Development?

In game development, there is a general cycle that many game projects follow, whether we’re talking about a huge 200-person studio or a solo indie project.  We will delve into each section in-depth, but as a brief overview, the cycle is as follows when it comes to making a game:

  1. Thinking of an idea: Developing an idea in your head of what you want the game to be.
  2. Designing the game: Developing that idea further, creating documents, and formulating each of the systems, levels, art style, etc.
  3. Making the game: This is where you begin to create the game. Many people like to develop a very simple version of their game with basic graphics to quickly get a feel for how it will play before polishing everything.
  4. Testing the game: Showing the game to other people. As the developer, you already know everything about the game, so in order to know if the game works, is fun to play, easy to understand, etc., you need people testing it out. This process should also be done regularly as new changes to the game might change how people play it.
  5. Finalizing the game: In a sense, no game is ever finished. You either run out of time or money. Eventually, you need to, or feel you need to, finish up on the game and get it out there.
  6. Publishing the game: This is when you publish your game for everyone in the world to see.

5 Steps in the Cycle of Game Development

Thinking of a Game Idea

Everyone has an idea of what their dream video game would be, but not many people can actually make that a reality. If you’re wanting to learn to make video games, it may seem tempting to just jump in and create your game with all the amazing technology that’s available. But I don’t recommend you do that. When creating a game, you need to think about scope. Ask yourself: how long will this take to make? Do I have all the skills required to make this game? Do I have an understanding of the game and how I might make it?

Understanding your game is the most vital part. You may have the story in your head, the setting, or some of the mechanics – but to understand your game, you need to know every aspect. How each of the systems interact, what the player can/can’t do, the goal, etc. This may seem like a lot of stuff to keep track of, but do remember that large games are created by large companies.

As a solo game developer, I’ve found the best way of creating a manageable game with an appropriate scope, is this method:

  1. Think of a core mechanic.  Mario’s jumping or the grappling hook in Just Cause are but a few examples of core mechanics.
  2. Develop the game around that core mechanic. Every feature of the game should encourage players to use the core mechanic.

Puzzle platformer example

Let’s take Mario for example. Mario’s core mechanic is jumping. Pretty much every aspect of the game required the player to jump.

  • Jumping on enemies
  • Jumping up to punch blocks
  • Jumping over gaps
  • Jumping on the flag at the end of the level

This is part of the reason why the Mario games (especially the earlier ones) were so successful. The developers focused on building the game around one core mechanic to make it as fun, polished and versatile as possible. Here’s a list of resources to help you develop a game idea and figure out a core mechanic:

Designing your Game

So you’ve got an idea and need to develop it further. If you’ve got a small game with one or two mechanics then you could probably just keep that in your head, but if it’s any larger or especially if you’re working in a team, you need to document it. A game design document is what you can use in order to layout: the idea of the game, how it works, the goal, the player, interactions, art style, theme, etc. You should be able to give a GDD (game design document) to two people and have them both develop a fairly similar game. If you’re working in a team, then this is necessary to communicate how you want to make your game. Here’s some helpful resources to do with GDDs:

Now in terms of actually designing the game – that’s up to you. Game design is one of those fields where there’s no 100% way to do something. There’s no formula for creating a unique and fun game. This doesn’t mean there are no good practices or guidelines you should follow. Knowing game design can help you develop a game that’s engaging and easy for the player to understand. Here are some online resources which can help you in game design:

Game Designer planning out game

What Type of Game Do You Want to Create?

When thinking of a game to make, you probably also know what type it’s going to be. Here’s a list of different types of games and platforms you can develop for.

  • 2D is what most game engines provide and is generally the best step for beginner game developers.
  • 3D is what many of the most popular game engines provide and is also a great first step for beginners.
  • Mobile can open you up to an entirely new market and user interface with touch controls.
  • Virtual Reality is a rapidly growing sector of the gaming industry and allows for immersive experiences.
  • Augmented Reality is a technology that has uses both in and out of the games industry – so there are lots of applications for it.

Making the Game – What is a Game Engine?

With an idea in your head and a plan down on paper (hopefully), it’s time to get to the “how” in our question of how to make a game.  However, there is a crucial step that will determine the entire process: which engine do you use and which coding language should you learn?

These are all questions you should ask yourself, but there is no one answer. What to learn will depend on the types of games you want to create, your current skills, and whether or not you even want to learn programming.

So what is a game engine? A game engine is a piece of software or a framework that allows you as a developer to create games. It provides a platform to structure your game, build levels, assign logic to objects and build it to your specified platform. There are a large number of game engines out there, with each of them providing different features and specialties.

Below is a list of some popular game engines, the type of games you can create with them, and the skills you’ll need to learn. We have a detailed blog post about the various different game engines you can read here as well in case you need a bit more time to decide. You may also want to delve into what the best coding languages are for game development too.


Unity

Unity logo

Unity is the most popular engine out there on the market right now, with many online learning resources to get you started. Unity prides itself on being very accessible, allowing almost any type of game to be created.

What types of games can I create? Unity is one of the most versatile engines, allowing you to create: 3D, 2D, VR, AR, and multiplayer games on a large number of platforms.

Do I need to learn a programming language? Unity uses the C# language, although there are many visual scripting plugins available to purchase, along with an integrated solution coming soon to the engine.

Links
Tutorials

Shader Graph demo example from Unity Engine


Unreal Engine

Unreal Engine logo

Unreal Engine, is developed by Epic Games and features powerful 3D graphics. Alongside Unity as one of the most popular game engines, Unreal is also used by many AAA game studios.

What types of games can I create? Unreal is primarily a 3D engine although it does support 2D. You can also develop VR, AR and multiplayer games.

Do I need to learn a programming language? Unreal Engine features a powerful integrated visual scripter, which is ideal for beginners. The engine can also be used with C++.

Links
Tutorials

Game demo as seen in Unreal Engine 4 Editor


Godot

Godot logo

Godot, is an open-source engine which can be used to create 2D and 3D games. Since the engine is open source, there is constant fixes and features being added, along with customized versions made by developers.

What types of games can I create? Godot can be used to create 2D and 3D games, with many new upcoming features to their 3D engine.

Do I need to learn a programming language? Godot primarily uses their GDScript language (similar to Python), but also has support for visual scripting, C# and C++.

Links
Tutorials

Godot game example in Godot Editor


Phaser

Phaser logo

Phaser, is an open-source, 2D framework for making HTML5 games. Unlike the previously mentioned engines, Phaser does not have a user interface. Instead, it provides you with a game programming library you can use while programming.

What types of games can I create? With Phaser, you can create 2D games for desktop and mobile.

Do I need to learn a programming language? Phaser uses JavaScript.

Links
Tutorials

Phaser concept example as seen in mobile phone

Testing Your Game

Testing your game is an important part of development. How do you know if something is going to be obvious to the player? Will they know where to go? What to do? For you it may seem obvious, but for someone who has never seen the game before – things might be very different. This is why it’s important to test your game all throughout development. Here’s some resources for learning more about testing your game:

Finalizing Your Game

Some game developers will say that the first 90% of your game will take 10% of the time, and the last 10% will take 90% of the time. This is a bit of an overstatement, but the idea is still the same. This is where you’re ironing out the bugs, adding in the final art style, polishing everything, and doing some final testing. Here are some resources to help you get through the final step of finishing your game:

Two programmers showcasing exhaustion and happiness

Publishing Your Game

With your game now complete, you probably want to show some people. Luckily, we live in a time where putting your game out there is easier than ever before. There are many online platforms to publish to. Some are free and some are paid. Here’s a list of those platforms, the requirements and how you can get started:

Desktop

  • Itch.io is a popular platform for indie developers. It’s free to publish your game here.
  • Game Jolt is another popular platform for indie developers, allowing you to publish your game there for free.
  • Steam is the largest distributor of PC and VR games. $100 through Steam Direct.
  • Epic Games Store is a relatively new and growing PC game distributor, similar to Steam. Complete a form for Epic to consider your game.

Mobile

Console

Virtual Reality

Here’s a list of resources which can help you deploy, publish, and market your game:

Conclusion

Game creation is hard work and takes some time.  Learning these skills also won’t come to you overnight.  Theory is one thing, but understanding what it takes to make a game is another thing entirely (let alone working with programming languages). Even if you are an expert programmer or artist, certain phases and skills in the cycle of game development can’t be skipped over no matter what you do.

But the best way to improve and learn how you make games is by making games.

So, start making games the first day you begin your learning journey, as I can guarantee it will excel your learning tremendously. There’s a lot of technology out there for you to use, so don’t hesitate to try different ones in order to find what serves you best.  However, the skills and resources provided here will give you a great stepping stone, and part of making is a game is how you plan to make that game.

Good luck out there, and I wish you the best of luck with your game maker journey!

BUILD GAMES

FINAL DAYS: Unlock 250+ coding courses, guided learning paths, help from expert mentors, and more.