How Game Engines Like Unity Help You Get Into Game Development
If you like to play video games or are in the orbit of technical jargon, you’ve probably heard about game engines like Unity and Unreal. These industry leaders power a massive chunk of the modern gaming industry.
At their core, game engines are software applications that allow you to create real-time experiences. That’s it! These experiences might happen to be 2D with beautifully crafted sprites, or they might be 3D and utilize impressive shaders and effects. They might be deployed to the web, gaming consoles, mobile devices, or VR and AR headsets. And while it’s no coincidence that many of these real-time experiences happen to be video games – that was, after all, the original purpose of game engines – it often surprises people to learn that game engines are used for so much more.
It’s natural to assume that game engines are just for games; it’s right there in the name! However, the role of a game engine has evolved so much that I think the term has become a misnomer. Today, game engines are used in Hollywood filmmaking, architectural visualization, theme park attractions, and web development. Nearly every business vertical needs real-time software, whether in the form of WebGL-based data visualizations, AR product tours, or immersive simulations. Learning how to use a game engine might seem like a big departure from web development, and in some ways, it is, but it can also be a natural extension to existing skills that expand your ability to create impactful experiences that resonate with people. And the really great thing about modern game engines is that you can write your core application once, and with just a bit more work, you can deploy it to a wide variety of devices.
When I first started making websites 20 years ago, I gravitated toward the web because it felt like the ultimate creative medium. It was an interactive wonderland with “read and write” capabilities, which set it apart from books, TV, and film. However, when 3D-driven technologies like WebGL and VR started coming online about 10 years ago, there was a shift in my subconscious thinking. I didn’t want just to create interactive experiences; I wanted to create immersive experiences that could captivate hearts and minds. Luckily, all the necessary tools were rapidly becoming democratized and commercialized.
Until then, the “professional” (and worthwhile) game engines were proprietary and behind the closed doors of titans like EA and Ubisoft, but that started to change with the advent of mobile app stores. Small independent developers needed a way to prototype and deploy mobile games rapidly, so they turned to off-the-shelf tools like Unity and Unreal. By the early 2010s, one person could create a hit game with their laptop and spare time, and a new landscape of game development came into focus.
Unity vs Unreal vs Everything Else: Where Should You Start?
There are lots of game engines available, and you could even build a game engine yourself, but there’s no correct choice; only the choice that’s right for you, your project, your team, or your company.
If you’re an ambitious and creative person, you might be tempted to build your own game engine from scratch, but unless it’s purely for fun or academic purposes, I advise sticking to the established choices. Making real-time experiences is hard enough, and you’ll need to apply all the tooling and leverage available to make it happen. Building a modern engine that powers your creativity is a monumental task, not for the faint of heart. I commend people with that drive and focus, but I am not one of them.
While many free game engines are available, the two de facto leaders are Unity and Unreal.
Unity is made by a company of the same name (Unity Technologies) and Epic Games make Unreal. In the right hands, both are perfectly capable of producing world-class results, and their similarities are greater than their differences. So which should you choose?
This is a very hotly debated and opinionated topic, so I would recommend trying both engines for a bit and seeing which suits you better, but here’s my take.
Unreal tends to have the edge in graphics, especially out-of-the-box. The default tools in Unreal Engine V are incredibly powerful and can create dazzling experiences targeting higher-end hardware like consoles and PCs. When client expectations call for the best-looking real-time graphics available, Unreal is usually the choice. It’s no surprise that Unreal has found its way into Hollywood productions like The Mandalorian, where it’s used to fill real-time LED-lit backgrounds that cast natural light onto the actors on set.
That said, Unity can still create world-class imagery and most of the time, that discussion point comes down to the capabilities of the artists using the tool. In my opinion, Unity has the advantage overall because it’s much easier to start with and use on a day-to-day basis, even in professional settings or on large teams. While Unreal does have “visual scripting” (called Blueprints), you’ll often still need to write C++ code, which has a steep learning curve. Unity scripts are written in the C# programming language, which tends to be much more beginner-friendly, especially if you’re coming from another “C-like” web language such as JavaScript.
Unity also encourages smart code reuse through its component-based architecture. When you write a C# script in Unity, most of the time, you’re creating a component that gets attached to a GameObject, which you can think of as a “thing” in your game world, like the player character, an enemy, or even just a rock sitting on some terrain. GameObjects don’t really do anything by themselves, but when you add components, you can intelligently construct their behavior through composition. Let’s say you wanted to create a spinning coin that the player can collect, similar to what you might find in a popular platforming franchise. You could do this all in one script component, but often, a better approach is to create one component that does the spinning and another that allows the player to collect the object. This way, you can reuse the spinning script on a spinning obstacle and use the collection script on other collectible objects, like power-ups.
Over the years, I’ve also found that Unity’s community makes it the stronger choice. Forums, blogs, and sites like Stack Overflow tend to have a lot more answers when it comes to Unity. Additionally, the Unity Asset Store has an overwhelming abundance of paid and free resources that can jump-start your project, whether you just need a few 3D models or a whole role-playing game system.
Again, and I cannot stress this enough, make the choice that’s right for you. Both Unity and Unreal are free to download, so whether you’re embarking on a big expansion of your skills or an entirely new career, it’s worth familiarizing yourself with both options to make informed choices.
How to Get Started with Development in Game Engines
The moment you download a game engine for the first time can be pretty exciting. You might open the default test scenes included with the engine and click around a bit, thinking that you’re just mere moments from getting started on the next Fortnite or Minecraft! Your very own money-making franchise! That might be true for one out of every several million of you. Remember Flappy Bird?
For the rest of us, preparation and education need to meet an opportunity. It can feel daunting trying to figure out how to approach your dream idea, and that’s because it is daunting. Lots of new game devs seem to think they’re going to rock the scene with their “super original” metaverse MMORPG, and they end up getting burnt out and frustrated when they can’t seem to get beyond the starting line. Don’t be one of those people. Instead, embrace the creative limitations of being an independent risk taker and use them to your advantage!
Focus on something smaller that you can accomplish. Much smaller. In fact, I challenge you to try and come up with the smallest idea you can think of that you’d still call a game and start with that because you’ll be amazed at how much labor it takes to create quality, even with powerful tools like Unity and Unreal at your disposal. You could also start by making your own versions of classic games like Pong, Breakout, Space Invaders, Pacman, or Tetris. In my course on Frontend Masters, “Unity for Web Developers”, I teach students how to create a simple physics-based marble game and deploy it to WebGL so that anyone with a web browser can play. You can try it out in your browser using WebGL.
Once you’ve created your first few tiny games, there are a couple of ways you can proceed. You might try engaging with the community on the Unity forums, Reddit, or Twitter. It’s also worth checking out Meetup.com to see if there are any game development groups in your local area. When you engage with the community in these ways, you might find job opportunities or contract gigs that you never imagined were there. Conversely, you may find that while these communities are technically minded, they need someone like you who has web development skills. When I first plugged into my local community, I joined a meetup group, and I helped them out by updating and maintaining their website for a while. This ended up being a great way to immerse me in the local scene and give back to the same community that was helping me launch my first indie games.
If you’re very passionate about game dev, you might decide that you want to turn it into a career. Most game development studios will expect at least one shipped console title (as in PlayStation, Xbox, or Switch) on your resume, which is tricky. How can you ship a video game if you’ve never worked at a game company before? If working for a studio is your goal, you can…
- Try to ship a game by yourself. This is a brutally difficult path that I took, and it took me several years, but I did end up with a game on PS4 and PSVR by the end of it, and I am now happily making games professionally.
- Find an indie team in the community or a smaller company and work your way up. There are lots of small and medium-sized companies that won’t have high expectations of an established studio.
- Get an internship somewhere. This may not be practical for many people, but it is an option if you’re willing and able to do it.
- Find a company that isn’t making games but is using the same technologies and skills that will carry over. Many companies are looking for talented Unity and Unreal developers, and it’s not just game studios, so be sure to search broadly.
There are no easy answers when it comes to making gaming a career. It’s tough! However, if you’re looking to expand your existing web development skills or offer more to your clients, a game engine is a fine choice for your toolbox!
Next, check out Nick’s Unity for Web Developers course, and learn the Unity game engine from a web developer who transitioned into full-time game development and is now a lead Unity dev!
~ Frontend Masters Team