So you wanna make games
Making games is very fun, and not as difficult as it seems.
If you're interested in trying game dev out, I (GDYU President Jayden) have tried to make a list of actionable steps, taking advice from people I've seen learn game development as well as my own personal experiences.
Step 1: Learn to code.
That is, assuming you're working by yourself. Video games are computer software, and somebody at some point needs to write the code that the software is made of (although depending on the tools you use to make the game, more or less programming will be required). This isn't a required step, some people have learned to code though making games, but depending on what you want to make and what you want to use, taking the time to set up a programming concepts outside of game development could be useful.
You can drop by one of our Game Dev workshops (or look at one of our old workshops) if you want to try out game dev for the first time.
Step 2: Pick something to make games with
The software you'll use to develop your game.
Pick Godot. If you're a Digital Media student, then you probably have Unity experience already and can stick with that (but should give godot a try). If you want to be a free thinker instead, you can read the rest of this section.
Should you use a Game Engine or a Game Library
Game Libraries are usually like other libraries/packages that can be installed or maintained on your programming language of choice. They're usually minimal and focus on the fundamental things you'd need to make a game in that programming language, like rendering sprites/models onto a screen, inputs, collisions and Data structures for managing your game.
They're simpler, in the sense that you need to understand a lot less of someone else's code, but they take longer to do things, because you need to write a lot more of your own code. It's kind of like driving a manual car. If you aren't into cars (developing game systems, in this simile) then you'd think driving manual is a lot of extra work you don't want to do, and would rather focus on where you're driving (the design/content of the game you're making)
You should use a game library if:
- You really like the language the library is built with.
- You don't want to learn a completely original system, and enjoy building out systems yourself.
- You're looking to make small or very lean games.
- You're interested in learning the fundamentals of game programming and want to know how things work.
Game Engines, on the other hand, are large, bespoke software applications designed to make games within. These are what most commercial games are made within, and what most people these days use. They come with large sets of common tools, built-in GUI editors,interfaces for all aspects of your game, and plugins to extend functionality.
You should use a game engine if:
- You want to make games as fast as possible.
- Want to focus on building things specific to your game, not common tools that lots of games would use.
- You want to make 3d games (you can make 3d games with a library but... that's rough).
- You don't mind learning a new system that extends your existing programming skills.
A list of our engine and library recommendations is available here
And if you still can't decide, then pick godot!
Step 3: Learn how to use it
You're going to need to find learning resources for whatever engine or library you've picked (tutorial recommendations can be found in the tools section). Beware of Tutorial Hell, when you've followed enough tutorials to feel like you should be able to make something on your own, but feel lost when it comes to making anything. Those tutorial projects were pretty impressive, but it feels like you haven't learned a thing. Maybe... another tutorial will give you the knowledge you need...
And people get stuck here forever.
How to avoid tutorial hell
Tutorial hell isn't unique to game development, you can be in tutorial hell for all sorts of things. The issue is that tutorials hold your hand down a pre-determined path, all the decisions were made for you, you're just following them. But a blank project is so vast with potential decisions to make, you're overcome by decision paralysis and don't know how to proceed. It's the difference between being given a LEGO set for a Porsche 911, and giving someone a bin of assorted LEGOs and asking someone to make a car.
The solution is to give yourself the opportunity to practice making your own decisions in a comfortable environment.
Expand off your tutorial projects. Add a new enemy or projectile or collectable or level or mechanic. Take what you had made and modify it, add to it, break it, practice solving things on your own.
Anyway you should have a good enough foundation in whatever engine you chose to move onto making your own stuff. Time to make your dream game right?
Step 4: Learn how to finish your projects
Most beginners start with lofty ambitions of a "dream game", the one that motivated them to learn how to make games in the first place. However most of the time these projects are generally out of scope for a beginner like yourself. If you'd like to get to that dream game at some point, that's great, but you're going to have to learn the hardest part of game development first, finishing your projects.
The simplest way to get good at finishing projects is to make projects and finish them. Start with very small games, the smallest possible game you can think of. a start screen -> one level -> end screen. Try to make it as fast as possible. Repeat this while slowly expanding on scope and complexity.
If you need some game ideas there's a list over at the 20 games challenge that ranks a large list of games based on scope and complexity. You can use that list for inspiration if you're looking for some.
Game Jams are also great at practicing finishing your projects. They're timed game development competitions, where you make a game in a certain time span (usually 48 hours or 1-2 weeks). They can be stressful, but also fun! try one out and see if it's for you.
Now about that dream game of yours. I have no idea what it is so I can't really tell you if you'll ever be able to make it or not, but after following the above exercise you should be much better equipped to assess the feasibility of your project, and what it'll take to make it. Your dream game can also be split into separate parts and each piece can be learned in it's own project. If you'd like to make a farming simulator, you'd need to learn about crop growing, simulating markets, inventory management, building out a farm, things that can all be their own separate little games.
So get to making games!!!