So I knew I wanted my game to be top down on the style of Zelda (possibly my favorite series) so I started my new obsessive research on YouTube looking for tutorials on implementing this style in Unity.
I have plenty of application development experience, and a solid grasp of core graphics concepts from college in the before time long ago, but every framework is different and I fully expected Unity to have its own opinions on how to make a game.
I was not wrong. As opposed to other apps and frameworks I’ve used in the past, Unity dictates how to make a game in their tools for the most part. For this reason, there will be idiomatic ways of doing things I will simply be unaware of. Learning from others via tutorials and examples will be the only way to know how to solve some issues without ripping any hair out.
This annoyed me in principle for all of 30 seconds. Their workflow is prescriptive, yes, but I can’t argue down results. Making a game in Unity is easy. Way easy. Too easy.
It hurts me a little inside every time I implement a change in an hour that I know would have taken me weeks in the not so distant past.
This is a double edged sword to both game developers and game players.
You can make basic games without a line of code. The barrier to entry to make and publish a game today is incredibly low. Since the bar is so low, anyone can make a game. You can make a game. Your mom can make a game. My cat can make a game, but one would play it because it would be about Fancy Feast with gravy.
It is no wonder the market is flooded. Steam has 50 bazillion games on it, and that’s without Greenlight. It is incredibly difficult to make a splash when the competition is so vast. The games aren’t necessarily any good, it is just very easy to suffocate.
So who stands out? People with creative ideas and the will to get their hands dirty, but next to no coding experience in many cases. This leads to an very bizarre community among game designers (not developers). There is a very supportive but frustrating community with an awful knowledge base filled with stackoverflow questions like this:
Hey everyone, I trying to get my character to <VERB> in my game, but I don’t know how to code. Show me the thing I have to drag and drop to make everything good again.
Hey people, I’m building the next great voxel adventure puzzle fps jrpg and the camera keeps flipping upside down. Please copy and paste me the code that makes it work.
I have found a handful of YouTube tutorials that are good, but they are a minority. The rest record horrible bad practices, proudly displayed anti-patterns, and admit openly to copying code into their games that they do not understand, but know it ‘just makes it work’. And worst of all, they are proliferating toxic information to the masses.
Part of my motivation for this dev blog is to combat this. I won’t claim to be an expert, and graphics coding is often an arena that majorly benefits from the perfect hack in the perfect place, but every decision made should be defendable. And that I can promise to myself at the very least.
TLDR; Just because you can, doesn’t mean you should.
There’s a fair amount of chaff to separate from the wheat in terms of finding the answers I need. However, the speed at which I can produce is still stellar, so I can live with it. It can be wacky at times, but Unity is an extremely powerful tool, and so far, using it to build a new game has been almost as fun as playing one.