How to Make a Game

How to Make a Game

So you want to learn game development and don’t necessarily know where to begin? With the games industry constantly evolving, it may be overwhelming on knowing where to start. This guide will hopefully give you a good understanding of your options in the industry. What game engine should I use? Where’s the best place to publish my game? How do I even begin to create a game? Well let’s find out…

In game development, there is a general cycle which many projects follow.

  1. Thinking of an idea
    1. Developing an idea in your head of what you want the game to be
  2. Designing the game
    1. Developing that idea further, creating documents and formulating each of the systems, levels, art style, etc.
  3. Creating a demo of the game
    1. 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.
  4. Testing the game
    1. 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
    1. 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
    1. This is when you publish your game for everyone in the world to see.

Thinking of an 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 game development, 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?

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 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.
    1. e.g. Mario’s jumping, grappling hook in Just Cause.
  2. Develop the game around that core mechanic.
    1. Every feature of the game should encourage use of the core mechanic.

Let’s take Mario for example. Mario’s core mechanic is jumping. Pretty 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 the 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. Here’s some helpful resources to do with game design documents:

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’s 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’s some online resources which can help you in game design:

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 games industry and allows for immersive experiences.
  • Augmented Reality is a technology that has uses both in and out of the games industry.

Beginning Development

Which game engine do I use? Which programming language should I learn? These are all questions you may 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 which 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 specialities.

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 of 2020 you can read here.


Unity

Unity, is the most popular game 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 engine, 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# programming language, although there are many visual scripting plugins available to purchase, along with an integrated solution coming soon to the engine.

Links

Tutorials


Unreal Engine

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 game 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


Godot

Godot, is an open source game 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


Phaser

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 engine 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

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 over-statement, 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’s some resources to help you get through the final step of finishing your game:

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 publish and market your game:

Conclusion

Developing a game is hard work and takes some time. Learning these skills won’t come to you overnight, but the best way to improve – is by making games. Learning the theory is one part, but understanding what it takes to make a game is another thing. 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. Good luck out there, and I wish you the best of luck with your game development journey!