Blog articles

4 essential skills for Unity developers

By Joy Horvath

Not so long ago, Unity developer wasn’t so much a title as it was a skill set descriptor. Generally relegated to the world of indie development, Unity developers were devs that wore too many hats in production to be able to settle on just a singular job title. (It was far easier to say you were a Unity developer than a programmer/artist/animator/designer/QA tester!) Over the course of a scant few years, however, Unity developer has evolved into a fully recognized job role, with the title held by developers across many creative and emerging industries. 

Despite being more widely recognized, the role still shows its young age in its relative complexity to define. Echoing back to its indie roots, Unity developer tends still to be an umbrella term for many types of creators, with the scope of the job being determined by the need of the hiring company. This will eventually solidify as the role becomes better established and companies begin to understand the role of Unity in their pipeline. Today, some Unity developers focus solely on the artistic side, others purely on code. And still more exist somewhere in the middle, doing a little bit of everything—even building tools to help out their more singularly focused cohorts. 

Because of the many things a Unity developer can be, this article will focus on four universal skills that benefit virtually everyone on this rewarding career path.

1. Pre-production and scoping

By no means exclusive to Unity development, pre-production and scoping are two of the most vital skills a developer needs to master to be successful. A sign of a good developer is being able to consistently ship products, and one of the biggest project killers is feature creep.

Feature creep occurs when a developer (or other member of the team) has “just one more great idea” that absolutely must make it into the game, which is often followed up by the next great idea, which is followed by the next, and the next, and the next and the next…Until your entire production has snowballed, and nobody on the team can quite remember what the original game concept was in the first place. What might have begun as a small project that could be completed within a year turns into a great behemoth that has no completion date in sight. It's a nightmare scenario that far too many devs fall into, and fortunately, it’s an easy enough problem to solve with some careful planning and discipline.

The most effective way to avoid feature creep is by creating a project plan and production roadmap before you begin development entirely, during a stage known in the industry as pre-production. Here, you define exactly what features you want in your final game, and what the final product will look like in quantifiable terms. (Here, “several playable characters” is out, and “five unique playable characters” is in.) This isn’t to say that things won’t change over the course of production, but the goal is to give yourself and your team a guiding light to aim for as you work.

Inexperienced teams or those coming from other industries often discount the importance of pre-production, but for game development it’s absolutely vital to the success of projects large and small. Pre-production doesn’t have to be a long or formal process—but you need to give yourself enough time to fully understand what you want to accomplish in the project. Ideally, you should already know what the game will be like before you even write your first line of code or push your first vertex.

A word of advice: Let pre-production take as long as it needs to take. It may feel slow going and boring in comparison to getting your hands dirty in the engine, but when you’re six months or even two years into a project, you will lose perspective on what you’re working on. If you begin production with a design document that you trust, you can lean on it to tell you when all of the project’s goals have been fulfilled and can truly be called done.

While the best time to scope a project and create a development document is before production has begun, it’s never too late to go back to this step. If your project is mired down in feature creep, or you’ve completely lost the thread of what you’re trying to do, take a step back. Make a new plan and stick to it. 

Remember, games can be worked on forever—they will never be perfect. There will always be another bug to squash, another loop to tune. A successful developer knows when to stop working, and design documents that are built in pre-production help to inform this.

2. Smart use of the Asset Store

Did you just cringe a little bit? You aren’t alone. Use of the Asset Store often gets a bad rap due to the proliferation of “asset flip” games that flood online distribution platforms such as Steam and Itch.io. Developers may purchase or otherwise acquire assets from the Unity Asset Store and use the demo scenes shipped with them as the basis of their own shoddily put together game. It’s gotten to the point where even non-developers (most notably, Let’s Players on YouTube) are aware of both the Asset Store and some of the more popular assets that flippers like to use. 

What the end user usually isn’t aware of is how often the Asset Store is used successfully by legitimate developers. A great example of this is the award winning and mind bending shooter Super Hot, which makes use of DOTween, a popular tween engine which is used to create highly optimized animations via simple code. Super Hot is in good company, with other popular games like Ghost of a Tale and OVIVO using DOTween as well. In cases like this one, the Asset Store is used well. 

The Asset Store is a really powerful tool for developers at all stages of production when used thoughtfully. A great way to think of the Asset Store is like a modern resource library that a creative studio such as Disney has to support their staff. From sound effects to reference films of movement, these tools are used as a launching point for an artist’s creative endeavors. The key to using the store well is to consider it as a means to avoid recreating the wheel:

  • Is it truly vital that you spend hours writing a script that draws a wireframe box around an object when it’s selected in game, or would those hours be better spent elsewhere, as there’s already an asset that accomplishes this available for download?

  • Do all of the background characters in your city scene truly need to have unique animations created by hand, or can a mocap library on the store do the heavy lifting?

So long as you ensure that what you download from the Asset Store is in service to your project, rather than your project morphing to fit what you’re able to get off of the Asset Store, you can rest assured that you’re on good footing.

3. Programming (for everyone!)

As non-programmer friendly as Unity can be, ultimately there’s no way around the fact that to create more complex projects, you do need to how to code in C#. There are some workarounds out there such as Unity’s Visual Scripting tool, but the good news is that anyone can program. Artists, tinkerers, young, old, you: everyone can learn to script in C#. Even if your job doesn’t have you normally writing code, having a base level understanding of it makes you a more valuable member of the team as you’ll be able to communicate your ideas to programmers in a more effective way by speaking their language.

There’s a common misconception that it takes a certain type of mind to be able to understand scripting—a ‘type’ fundamentally at odds with those more creatively oriented. But solving problems with variables and methods is a creative endeavor in and of itself. Learning a scripting language and how to write your own logic is more about learning a set of rules and how to think a certain way. It’s functionally no different than learning any other type of skill (or even how to play a new game!). It just takes patience and a willingness to learn. Start small and follow a few scripting tutorials, then challenge yourself to try and create something unique on your own. The more scripts you write, the more you’ll understand, so just keep with it!

If you’ve already embraced scripting as part of your developer’s toolkit, then the best thing you can do for yourself is to learn how to write more modular code. Creating systems that are easy to reuse and repurpose, not just within one project but across many, makes you a more efficient and agile programmer. Just as was referenced in relation to the Asset Store, you never want to spend time reinventing the wheel if you can avoid it. If you find yourself making games that often use the same types of systems (health is a common culprit), take time to build that system out so it can plug in easily to whatever you build in the future. Eventually you’ll find yourself with a library of common scripts that you can use to build the foundational systems for your game, leaving you more time to innovate on game-specific systems.

4. A focus on the future

The final skill in this list is the most important—and one that too few developers are cultivating: Start thinking about where else your Unity skills can be used. In the games industry, Unity is a household name, but while games have historically been (and will remain) the most important area of focus for Unity, new industries are taking notice of what the engine can do. From the animation and film industries to the industrial and medical sectors, Unity is being used to develop the next generation of entertainment media, applications and tools. Odds are extremely good that you’ve interacted with a Unity created product yourself without knowing it. Did you catch the Baymax Dreams short films on DisneyXD? They were made in Unity! Have you tried previewing what some furniture from Wayfair might look like in your office using their AR app? Unity again. Maybe you’ve been to a Nissan dealership recently and noticed that you can select and view car customizations via an app? You guessed it—yet again, the technology behind the tool is Unity. This presents an amazing opportunity for developers who wish to grow their professional careers, as there are more jobs openings than ever before for Unity developers. 

This represents a fundamental shift in the value of game development skills within the last few years. In the recent past, you were expected to have a specific area of focus, such as programmer or technical artist, and Unity knowledge was relegated to the realm of 'nice to haves' as far as skills went. The idea that your entire career would be focused around your skills with a game engine was laughable, since so many game companies relied on different tools. However, the engine's ease of use and continually improving visual quality has translated to dozens of new industries embracing Unity as their tool of choice (as well as an influx of established AA and AAA game companies replacing their old engines with Unity), creating a huge need for Unity developers to enter new fields. Unity developers have the unique opportunity to freely move between many different industries as they so choose. It’s reminiscent of how riggers and animators were able to make the jump from film to games in years past. As a Unity developer, don’t feel as if you’re limited to the world of games—stretch your creative wings and see what else is out there for someone with your skills.

The most important thing a Unity developer can do for themselves is to continually work to improve their skills. The tech industry is never static, and the job landscape five years from now will be vastly different than what it is today. A great Unity developer is forever a student, learning as much as they can about the new features Unity releases, as well as working to refine what they already know about the engine so they can be prepared for the jobs of the future.

Ready to see where your skills could use some sharpening? Get your Unity Game Developer Role IQ.

About the author

Joy Horvath is a passionate game developer whose career has taken her across many different roles in the game industry. She started out as a QA tester at EA, then moved on to do freelance art and animation in games and adjacent industries. For around five years, Joy taught game design at several schools and camps across California before finally landing at Unity Technologies, where she works as an Instructional Designer as part of the Education team.