Here's what I wish I knew before I started developing games. You're welcome.
Learn the Lingo
If you're building a video game, believe me when I tell you there were be googling. Lots of googling. Half of the battle to solving problems is knowing how to search for them.
Do you want to build a game that's like the original Zelda? While that can search alone get you far, what'll get you farther is knowing that it's a top-down 2D RPG.
Stardew Valley: Top-down 2D farming simulation
Super Mario Bros: 2D side scroller platformer
Breath of the Wild: 3D open-world action-adventure
Doom Eternal: 3D FPS
Returnal: 3D Rogue-like TPS
2D vs. 3D
Alternate headline: 2D or not 2D
In my experience, 3D is 1000% easier than 2D, and I'll tell you why. Most new developers assume that 2D is easier because all early games started out as 2D games. Galaga, Space Invaders, Super Mario Bros. Some arcade games have existed for over 50 years now.
How hard could it be right? Well, very.
However, it really depends on your style. I've heard the exact opposite sentiment from other developers.
In general, I've found that there's more support for 3D games. Unity has test projects built out, there's plenty of free 3D assets that you can modify, and lots of Templates to choose from if you decide to invest some real-world dollars. Since most 3D games mimic the real world, it's a lot easier to understand.
2D things that make me want to rage quit:
Tilemaps, sprites, 2D animation
What I'm really trying to say, is whatever you're interested in, don't be afraid to try. Don't listen to me, I'm just a jaded developer whose seen too many tilemaps.
There's something about
Mary Linear Gameplay
While there's a certain appeal about open-world design, as an indie developer it can present a lot of problems.
Going through my new game, I've found that a lot of problems are solved by having a linear game vs. an open(ish) world exploratory game. You get a lot more control over the environment.
If you know the exact path it takes to progress the story, you can set up all kinds of goodies for the player to experience. You can control the weather in a particular area without having to create an entire weather system. You can control the number of enemies in a given area without having to create a spawn system. You can control dialogue, animations, and sound all based on player location and not have to deal with a bunch of dependencies.
That's all I have for now folks. Hope you enjoyed the read!