The million-dollar question: is 2D game development easier than 3D game development?
This is a long-debated argument between developers, equally split on either side. Well, let's break it down.
For context, the first game I built was a 2D mobile game. After this, I explored making a first-person slasher and was very surprised to find out that 3D game development...was, well, a breeze. Maybe this is because I expected 2D to be a lot simpler since I associated it with older games, and then was already primed when I moved over to 3D? Who knows, but let's look at the case for both:
Is 2D Game Development Hard?
Some of the first games were 2D. Gallega, Super Mario Bros, Tetris. If those guys could do it 50 years ago, it can't be that hard in 2022 right? Well, not exactly. To understand 2D, we have to first understand that everything 2D is trying to simulate 3D. Pong is just 2D table tennis.
With very limited processing power for games, classic games couldn't handle advanced graphics. Thus, sprites and tilesets were born. Repeatable, small sets of data that could be used over and over again.
As they say, limitations create art. With only 16x16 pixels to work with for each character (and the occasional 24x32 for enemies), developers and artists had to get creative. These design limitations bred some of our favorite characters. In the world of Nintendo, a paratrooper is just a Koopa Troopa with wings. This wasn't by mistake, but by design.
Sidenote: Did you know that a Goomba is just a Shiitake mushroom?
Is 3D Game Development Hard?
I have long since been very critical of my 3D abilities. I need a map to get from the living room to the bathroom, and I have zero depth perception. I thought this would make 3D very difficult for me, however, we do live in the 3rd dimension which made 3D development feel very familiar.
The pain points I struggled with in 2D seemed intuitive in 3D. No more creating tilesets, pixel art, and sprite sheets riddled with hundreds of sprites to create animation. Even 3D modeling seemed to come easier to me than 2D art. Instead of creating landscapes in Photoshop, I was painting terrain with a brush in Unity. Instead of creating new sprites to have animation, I was rigging a skeleton in Blender.
Artist vs. Programmer
Depending on where your natural skillset lies really determines the answer to this question. As a programmer, while there are unique challenges to each medium, there isn't a huge discrepancy. You'll still be dealing with the same building blocks of game design, level design, and overall experience. 2D can seem simpler because it's associated with simpler games, but the fundamentals truly are the same.
If you are naturally gifted at 2D art and that's your bread and butter, 2D will be intuitive to you already. On the other end of the spectrum, if you aren't well-versed in creating 2D art, this will be a massive learning curve. That is, if you're planning on creating your own art for your game. This brings me to my next point.
What's your Development Style?
Are you someone who wants a hand in every single piece of your game? Or, are you more likely to find a base reference that someone has already created and put your own spin on it?
In my experience, there are a ton of building blocks available to you for 3D games. If you're comfortable modifying existing artwork and models, you may find that 3D has more support than 2D. While I'm obsessed with pixel art and would gladly pay an artist to create some high-quality assets—I struggled even finding artists that I could commission specifically for game art.
With 3D art, there are tons of base models and textures that you can modify and make your own. While there's a huge skillset to learning 3D modeling as well, if you're comfortable using existing assets it can give you a huge edge and jumpstart your game process.
2D or not 2D
In summary, don't let preconceived notions change your trajectory. Both styles have unique challenges that will take time to learn, but that shouldn't stop you from learning the style that you're interested in.
Now go forth and game dev!