The role of Unity Developer is relatively new, and more difficult to define than some of its industry predecessors. Unity Dev is an umbrella term for many types of creators. Just like the engine itself, individuals with this job will vary in what they bring to the table.
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 this variety, it’s important to look at the Unity Dev role from a higher level to identify the four general skills that benefit virtually everyone on this 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, or equally as likely, the solution to the problem that the first great idea caused with the rest of the project.
The most effective way to avoid feature creep is by creating a project plan and production roadmap before you begin development proper, 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 course correct to 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—you simply need to give yourself enough time to clearly define your project goals to the point where you already know what the game will be like before you even script your first line of code or push your first vertex.
A word of advice, however; 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 and have inevitably lost perspective on what you’re working on, it's incredibly helpful to have a document that tells you when all of the project’s goals have been fulfilled and can truly be called done.
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. 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 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 Hearthstone—Blizzard’s online card game—which makes use of PlayMaker, a visual scripting tool available on the Asset Store. Hearthstone is in good company, by the way. Other popular games that make use of Playmaker include Hollow Knight, Inside, and The Forest. In these cases, 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 it’s an asset already 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 (see the reference to PlayMaker in the Asset Store section, for example), but the good news is that anyone can program. Artists, tinkerers, young, old, you—everyone, absolutely, can learn to write C# scripts in Unity. 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 method 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, and 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. It’s an extremely exciting time to be a Unity developer, as with practically every engine release Unity pushes the envelope on what’s possible for modern game engines. Several of these new features are still in preview, but already in very high demand as game companies (and beyond) embrace new tech to take advantage of the benefits (despite non-fully finalized states). The main new features that Unity devs should be deep diving into as soon as possible are:
• Scriptable Render Pipelines (and the HDRP and LWRP templates)
With the release of Unity 2018.1, users gained the ability to write custom render pipelines using C#. This means that programmers are now able to control the way that objects are rendered on the screen, which can be useful if the project being developed has a specialized look or needs to be highly optimized. Unity has also released two render pipeline templates: The HD Render Pipeline, designed for high-end PCs and consoles where graphical quality needs to be pushed to the limits, and the Lightweight Render Pipeline, which is optimized for low-end devices such as mobile, and platforms with specialized requirements such as VR, while still offering a highly polished look and feel that’s superior to the legacy render pipeline. Both of these templates give users access to new features such as Shader Graph, which is a visual node-based system for developing custom Shaders. This allows artists to become more involved with the creation of specialized Shaders, which was once purely the realm of programmers.
• The Entity Component System (ECS)
If there’s only one new Unity skill you learn in the next year, using the Entity Component System (ECS) should be it. The ECS represents a fundamental shift in the way that projects are developed in Unity, specifically in the way things are scripted. Any developer who has programmed in Unity will be familiar with Object Oriented Programming. ECS, however, makes use of Data Oriented Programming. Data Oriented Programming is unique in that deep code optimization is built right in--if it can run, it’s fully optimized. This allows Unity projects written with the ECS to push truly extraordinary boundaries, as was recently revealed in the 2018 Unite LA Keynote.
Unity is quite open with its development plans with a publically accessible roadmap, and often reveals new features long before they’re fully released in the editor. It’s good practice for Unity developers to stay abreast of what’s to come in the engine by regularly checking the official blog, YouTube channel and the roadmap itself.
While games have historically been (and will remain) the most important area of focus for Unity, more and more industries are taking notice of what the engine can do. 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. Today, Unity Developer is a recognized job title, and these individuals can freely move from the game industry to automotive, medical and more. It’s reminiscent to how riggers and animators were able to make the jump from film to games in years past.
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?