I wanted to become a game developer for some time, and even tried following some tutorials for making video games, but i quit it due to not understanding the coding part, i did not really understand what i was doing.
Now i know a lot more about programming, but mostly just in java, however, i dont think it will be very difficult to learn new language, as now i understand many concepts of programming in general.
I want to learn to make games on godot, which i chose because it is quite popular and has a lot of documentation, tutorials, guides and community, which should be very helpful, especially for newbies.
As for a newbie in game development, what advice would you recommend me follow, to easily get in the gamedev? Maybe its some guides, some example or test projects, or something else, which i dont know about yet, everything will be helpful.
Personally, I am an experienced beginner, I in no way have expertise in specifics but I’d like to think I have some learning experiences that can be shared.
TL; DR
Make stuff, if stuck change approach, continue learning.
What to make when starting - make teeny tiny simple games
Doing one full game from tutorial is great way to learn how to solve regular problems in game projects.
The simpler the better. Make tiny games. Some random examples
- 2D Cookie clicker without upgrades ( just click, number go up )
- 2D Enemies run for mouse cursor, you need to dodge enemies
- (bonus) 3D FPS where is Waldo, walk around level, click with crosshair when person is found
For example from official documentation “Dodge the creeps” https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html
Of course there are many more tutorials like that
Pitfalls while learning
At least in my experience, there are some areas that are easy to pick up and start implementing in the game but can get you stuck on details when you’re just beginning. For any of points below, I would recommend to attempt, but also recognize when you’re stuck and better to move on, and return to this topic later in your learning journey:
- Physics - if you have very specific behavior in mind and default physics don’t behave as you expected, it might create some problems, and solving them will make all of the development get stuck. For example, it’s quite easy to make 3D vehicle using in-built nodes like VehicleBody3D ( https://docs.godotengine.org/en/latest/classes/class_vehiclebody3d.html ). But it’s relatively hard to make car to drift and in some cases can become too complex problem while you’re learning.
- 3D camera + mouse pointer - while working with mouse clicks in 2D Godot project, you’ll learn it’s very easy to get mouse position, object mouse is clicking on. But when moving to 3D you’ll see that you have to account for more things and 3D Vectors are involved. There are many examples that give you code to solve this, just be ready for relative spike in complexity
Useful stuff to learn about early
There are some topics I would recommend learning about early as it can help you to solve basic problems. Give at least cursory glance about these topics, so you know what’s available. None of these are required, but in certain situations can be a game-changer: Signals, groups, Collision layers and masks, Globals/Autoload, Shaders, Tweens
Learning resources
- Godot Recipes (https://kidscancode.org/godot_recipes/4.x/) - there you’ll find bite-sized solutions and instructions for popular problems, like “Top-down movement”, “Shooting projectiles” and so on.
- Official documentation - it have helped me many times. Remember you can also open it within Editor with
F1
then search for Node or method you want to read up on
Assets
Personally I like to use pre-made assets while I am prototyping and checking out the idea. For me, it helps greatly if you can see your game concept coming together. Much better than using default Godot icon everywhere or plain shapes.
There are many places to get assets
- Itch (https://itch.io/game-assets/free) - this is the simplest way to get your initial assets. Eventually I got tired trying to find assets for every idea, and I bought (paid asset pack) https://kenney.itch.io/kenney-game-assets. Now even if I am not planning to leave the aesthetic in finished project, while I am prototyping, with this pack I can be sure that I will find something for every type of idea that comes to mind
- Polyhaven (https://polyhaven.com/) - Textures, Materials, HDRIs
- AmbientCG (https://ambientcg.com/) - HDRIs, Materials
- The Base Mesh (https://www.thebasemesh.com/model-library) - assortment of random meshes
- Gamedev Nexus (https://gamedevnexus.com/resources/assets/) - filterable list of various asset stores/lists
- Godot Shaders (https://godotshaders.com/) - Shader gallery for your Copy+Paste pleasure
Extra
When your very first game is ready, you can use itch.io to publish it either publicly or only for certain people. Makes easy to provide game for testing and share with friends
I want to add another post giving you the same advice to drive the importance of it home. Make shit.
I got interested in gamedev 20 years ago and never released anything despite still tinkering sometimes. The old saying is “fail early, fail often,” because that’s what learning is. Make shit.
Roughly the same as for any type of software: make shit.
If you’ve already got experience with general programming, that helps a lot, you can probably just go straight into a super simple game. My go-to recommendation for programming in general is “make simple something that already exists”. That gives you goals that are very clear, and reasonably achievable, so you can start getting some of that satisfaction feedback quickly. For a game, I’d say do something like Tic-Tac-Toe, Battleship, Solitaire… something that isn’t gonna require a whole lot of art, just to get going, and isn’t gonna take weeks to get a working prototype.
Godot definitely sounds like a good bet to get going. Even if you end up moving to another engine for projects in the future, that doesn’t invalidate your time spent on this one.
I would advise using a game engine and trying to make very simple game with it ( like chess ). Once you start to get it think about trying some gamejam with people ( be sure to tell them you are a newbie ).
If you are looking to try specific tools, godot is often use in gamejam and has a lot of tutorials.
I used godot to make Hangman, then Tik Tak Toe, then Breakout, then Pong.
Absolutely recommended.
Music. Sound. Visual effects. AI. It’s worthwhile.
+1 for Godot. Learn GDScript from ZERO is an excellent interactive resource for beginners: https://gdquest.github.io/learn-gdscript/
I’d recommend starting with modding. It gives you a huge shortcut to many aspects of it, letting you get something playable faster, which is the rewarding part. As you get more experience, you can try more challenging mods, and eventually you’ll reach a point where you want the greater freedom of making a game from scratch.
If you don’t have that much programming experience I would start with basic game dev tutorial for example: https://www.youtube.com/watch?v=ulgh_neTJG8&list=PL6SABXRSlpH8CD71L7zye311cp9R4JazJ
After going over the tutorial I would continue either by starting your own project or cloning some existing game.
Edit: And game jams. Game jams are best way to force you to create something and finish it. This would be ideally after completing some tutorial that gives you understanding of how to create games with engine.
Just make stuff, doesn’t matter how shitty, just make something.
Look for basic tutorials that explain to you what you’re doing and why, not the ones where they just have you repeat a bunch of steps like it’s a list without any explanation. Also choose projects that you have at least some interest in, not just for learning, it’ll help with motivation when things get hard.
As for which engine it depends on your goals… If you want to be an indie dev then I’d recommend to go with Godot and GDScript. It has the option to use C# but it’s not made for it and you’ll find many more resources if you use GDscript, plus it’s easy to learn, especially if the coding mentality already clicked for you.
Avoid Unity.
If you want to focus more on design or levels or non-programming stuff to eventually work at a studio and be part of a bigger team then I’d recommend Unreal and using Blueprints. Unreal also has an amazing catalogue of free resources to learn.