To be honest, I never had to face this question while starting to make games. I was heavily inspired by ConcernedApe's Stardew Valley and wanted to make a game of my own. That was almost a year ago. In this blog, I'll share my experience on how I got started with game dev.
Programming & Art knowledge
Yes, if you want to make games then you must know how to code. Well, for the most part. Since a big part of game dev is actually art. I personally had no trouble with programming since I've been coding for almost 5 years now. But, as a beginner, this might haunt you in your dreams.
When I first started to code, I gave up almost immediately because I couldn't figure out how multi-line comments worked in PHP. There was no way I was going to learn how to ACTUALLY code if I couldn't even figure out how comments worked. Then, a few days later, I tried again and this time, I actually understood what comments really meant. Well, that is how I started my programming journey. And since then, I've been writing different programs and systems. That is how I learned how to code. Being a self-taught is a good thing, but if that's not the thing for you, go ahead, join a course. I wish you best of luck. But, as always, don't force yourself to learn how to code just because others are doing it.
And, in terms of art, I don't know really. I'm not that good at art. But I'm definitely better than I was 1 year ago. So, I guess practice helps.
Choosing a game engine
This is actually very confusing for most beginners, as it was for me too. I tried several engines like GameMaker & GDevelop before I crossed roads with the Godot Game Engine. And to this day, I'm still using it.
I like Godot a lot because it's completely free and open source. The UI is kinda nice and Godot's default scripting language (aka GDScript) is very easy to use and learn. It's very similar to Python. Though, you can use C# or other languages if you want to through GDNative bindings. I would recommend to use GDScript if you're just starting out.
Here are a few game engines that you might like:
- Godot : 2D, 3D, VR, AR. Free and open source. Website
- Unity : 2D, 3D, VR, AR. Free license is available. Website
- GameMaker Studio 2 : 2D, 3D is possible but it's not made for it. Yearly subscription based on exports. Website
- Construct 3 : 2D, 3D support was recently added though. Monthly and yearly subscriptions are available.
Now that you've decided which engine to use, look up some tutorials for that engine. Don't just blindly follow them, try to make sense of what is happening. And actually follow the tutorial instead of just sitting and watching. Practice, practice and practice. Join communities, ask for help, enjoy the journey.