• Trusted by:

Hire Unity or Unity3D developers and engineers

Cory Bechtel, United States

Member since May 13, 2013
Cory is a Game Developer who has created addictive, engaging games for the iOS, Android, and Amazon app stores. Highly experienced in C# and the Unity engine, his goal is to create great games that users want to play over and over again. Click to continue

Luko Gjenero, Croatia

Member since March 1, 2013
Luko is a seasoned developer with contributions to numerous large-scale projects currently in use by Croatian national organizations. He is schooled in electrotechnics, and has published several important research papers on a variety of topics. He enjoys being faced with challenging problems. Click to continue

Matias Santiago Pan, Argentina

Member since May 30, 2012
Matias is a 29-year-old Argentinian computer scientist who has been working with iOS since it was launched to the public. He loves working on great-looking apps that focus on user experience and usability. Click to continue

Elliot Pjecha, United States

Member since March 27, 2015
Elliot has been developing games for eight years, five of which were spent exclusively in Unity3D. He has done substantial work in extending Unity3D's functionality, robustly implementing traditional C# paradigms via Unity's user interface. He is an articulate, effective communicator who prides himself on his creativity and flexibility throughout all phases of development, and enjoys working on teams of all sizes. Click to continue

Antoon Groenewoud, Germany

Member since November 12, 2013
Antoon is a top programmer and designer with experience ranging from entrepreneur to freelancer to CTO. He is active within the games industry with a knack for novel, complex solutions, and the ability to quickly integrate into any team and adapt to the problem at hand be it UI/UX or back-end or anything in between. Click to continue

Javier Waitzel, Argentina

Member since February 24, 2014
Javier is a top engineer and entrepreneur who is passionate about new technologies and software development. He has experience in mobile application design and development, and he's worked extensively with multidisciplinary teams bringing innovative ideas to every project. Click to continue

Michael Tkachuk, United Kingdom

Member since August 31, 2013
Michael is a responsible, communicative, creative, and innovative person. He loves when he can get jobs done efficiently and in a rational way. He's always open to new ideas and discussions, and he respects other points of view while always trying to find win-win solutions for existing problems. Click to continue

Maicon Brauwers, Brazil

Member since March 18, 2014
Maicon has enjoyed a great passion for computer programming since the age of 15. He is currently focused on building mobile apps. He loves the challenge of solving complex problems and creating truly innovative solutions. Click to continue

Jakov Duzevic, Croatia

Member since April 15, 2014
Jakov is a Unity developer with five years of experience. He specializes in 3D game development ranging from gameplay, engine architecture, and networking to UI and tools creation. He favors the Microsoft tool stack for development and production and holds a master's degree in computer science. Click to continue

Eduardo Dias da Costa, Brazil

Member since March 7, 2015
Eduardo is a developer with over a decade of experience focused on client and front-end applications. He is always open to learn and take up new challenges that can make him handle new languages and/or technologies. He specializes in computer graphics, image processing, game development, tools development (CLI, desktop ...) and UI/UX/front-end development. Click to continue
Unity or Unity3D Resources
Trustpilot
Toptal on TV
"Toptal is killing it, it kind of owns this market."
Andrew Ross Sorkin Reviews Toptal
Cnbc 02e66b
"Tech companies simply cannot find the quality employees they want to hire. The solution: Toptal."
Liz Claman´s Review of Toptal
Fox 7ef901
Toptal in the press
“Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.”
Selina Wang
“Toptal allows corporations to quickly assemble teams that have the right skills for specific projects.”
Steven Norton
A hiring guide
The Vital Guide To Unity3D Interviewing

Currently, there are 4.5 million registered Unity3D developers, and it is by far the most popular game development software platform. It’s accessible to hobbyists and professionals alike, and thus, you can expect developers of all calibers during your interview process. Finding the right engineer for your specific Unity3D needs can be challenging. This hiring guide will help you pinpoint the ideal developer for your project by showing you not only how to identify the top candidates, but also how to customize your interview process to suit your particular needs.

Testimonials
“Toptal's developers and architects have been both very professional and easy to work with. The solution they produced was fairly priced and top quality, reducing our time to launch. Thanks again, Toptal.”
Jeremy Wessels
CEO @ Kognosi
“As a growing startup, finding top-notch engineering talent at affordable rates is one of the biggest challenges. After being frustrated with unreliable local contractors in New York, we turned to Toptal. We worked closely with Michal in Poland for 5 months and were thrilled with the results. Michal was an outstanding engineer who communicated flawlessly and took control of our project in ways that far exceeded my expectations. I give Michal and Toptal my highest endorsement and will continue to use and recommend them to anyone looking for software engineering talent.”
David Baker
Founder @ Spins.FM
“We've been incredibly pleased with our experience working with Toptal thus far. Their team worked quickly and efficiently to isolate the needs of our project, and they paired us with an appropriate developer within a couple days who we quickly contracted after a great interview. The work performed on our project was top-notch, and we can’t wait to make use of Toptal’s resources again.”
Ryan Staake
Owner @ Pomp&Clout
“We needed a talented developer and we needed him/her very quickly. So we turned to Toptal and couldn't be happier with the results! Our Toptal freelancer has contributed extraordinary knowledge, talent, and startup experience to our team. We will continue to work with Toptal to fulfill our future talent needs.”
Lindsay Fairman
Founder & Owner @ FairTech Labs, LLC
“Toptal has been extremely helpful to us in finding top remote talent. The ratio from interview to hire with Toptal candidates is the highest I've ever experienced in my professional career.”
Philipp Berner
Co-founder and CTO @ KeepSafe
“We're a small firm with big dreams. After trying 4 or 5 local or outsourced developers, we were out of options. I'd heard of Toptal, but was worried that my company wasn't big enough for them. After calling them up, I found out that I didn't need to meet any minimum budget and was immediately put in touch with a developer to talk through my problems and goals. A day later, he got back to me with a list of possible solutions. After 9 months and 5 developers, Toptal got me my solution in a single week at a price I could afford.”
Kevin Ramirez
Co-Founder @ SixtyVocab.com
“We've been very pleased with our experience working with Toptal. Their team was incredibly helpful in helping us find the perfect developer for our project. The work was stellar, the communication was excellent and we couldn't have been happier with the overall experience. We're excited to work with Toptal for more projects in the future!”
Ryan Walker
Director, Product Management @ Rand McNally
“I can't say enough about how happy and confident I am in working with Enrique. He brings an enthusiasm to his profession that is very refreshing, constantly surprising us with his depth of knowledge and his capability to not only complete the task, but to surpass our expectations. He presents us with solutions that we would not have thought about ourselves, and sees the problem better than we can explain it.”
Chad Berryman
Senior Technical Lead @ Zoomedia
“Robert was such a breath of fresh air! I’m used to working with developers who don’t speak good English, don’t understand my needs, and are bad communicators in general. But Robert was not only an EXCELLENT communicator, he knew exactly what I was looking for and made it better than I thought possible. Now I have a website that works better than I thought it could for less than the cost it would have taken other developers, and in half the time. Robert is as good as they come, and a true professional. Anyone thinking of working with him, stop thinking about it and hire him. You won’t regret it.”
Matthew Bennett
CEO @ Winning Social
“I really enjoyed my experience with Toptal. Searching for a developer was both painless and engaging, and the first match was a perfect fit! Toptal is a fantastic way to find talented developers for small or large aspects of your project.”
Willem Shepherd
Creative Director @ Mookieyams
“We have been incredibly happy with our Toptal experience. Initially a skeptic, the process to find and recruit a fabulous iOS developer was very easy. Rather than sifting through hundreds of CVs, we saw two and hired them. They have worked effectively, getting up to speed incredibly quickly and have almost become part of the team. We would definitely use Toptal again. ”
James O'Day
Co-Founder @ Pearlshare
“As an internet marketing company specializing in pay-per-click management, our clients frequently ask us to provide services that fall outside the scope of our primary business. We have found Toptal to be exactly the resource we need to connect with contractors so we can deliver our clients top tier web development talent at a reasonable cost.”
Pashmina Lalchandani
Owner @ Flowsimple
“One of our biggest and most time consuming problems is finding qualified staff. We need to find the correct platform to advertise on, create a proper ad, filter through tons of useless applications to try and find the small gems, interview and test the capabilities of applicants to see if they fit our profile and finally take a risk by hiring. This was the old way of doing things! The new way: describe the job position to our Toptal account manager, interview a few qualified applicants, hire with a risk-free trial! Much faster, a lot easier and with incredible end results.”
Catalin S. Balaci
Owner @ EvoBits Information Technology SRL
“Toptal helped us when we had a hiring gap we needed to fill. The developer we received was excellent, with a great work ethic and fit in very well with the team. We are very happy with the service and would definitely consider using Toptal again in future should we need additional help. ”
David Gildeh
CEO @ Dataloop.io
Hire a top Unity or Unity3D developer now.
Toptal is a marketplace for top Unity or Unity3D developers, engineers, programmers, coders, architects, and consultants. Top companies and start-ups choose Toptal freelancers for their mission critical software projects.
Full
profile
Cory BechtelUnited States
Cory is a Game Developer who has created addictive, engaging games for the iOS, Android, and Amazon app stores. Highly experienced in C# and the Unity engine, his goal is to create great games that users want to play over and over again.
[click to continue…]
Unity or Unity3DCJavaC/C++C#Unity3DSQLiteAndroidXamariniOSUnityMySQL
Hire
Full
profile
Luko GjeneroCroatia
Luko is a seasoned developer with contributions to numerous large-scale projects currently in use by Croatian national organizations. He is schooled in electrotechnics, and has published several important research papers on a variety of topics. He enjoys being faced with challenging problems.
[click to continue…]
Unity or Unity3DObjective-CC++JavaCC#SQLiteOpenGLXcodeMicrosoft Team Foundation ServerMS Visual StudioiOSAndroid
Hire
Full
profile
Matias Santiago PanArgentina
Matias is a 29-year-old Argentinian computer scientist who has been working with iOS since it was launched to the public. He loves working on great-looking apps that focus on user experience and usability.
[click to continue…]
Unity or Unity3DSwift 2Objective-CSQLSwiftCocoaCocoa TouchTwitter APIFacebook iOS SDKGitApple XcodeAgile Software DevelopmentiOS
Hire
Full
profile
Elliot PjechaUnited States
Elliot has been developing games for eight years, five of which were spent exclusively in Unity3D. He has done substantial work in extending Unity3D's functionality, robustly implementing traditional C# paradigms via Unity's user interface. He is an articulate, effective communicator who prides himself on his creativity and flexibility throughout all phases of development, and enjoys working on teams of all sizes.
[click to continue…]
Unity or Unity3DC#Unity3DMicrosoft KinectAdobe IllustratorAdobe PhotoshopUnity
Hire
Full
profile
Antoon GroenewoudGermany
Antoon is a top programmer and designer with experience ranging from entrepreneur to freelancer to CTO. He is active within the games industry with a knack for novel, complex solutions, and the ability to quickly integrate into any team and adapt to the problem at hand be it UI/UX or back-end or anything in between.
[click to continue…]
Unity or Unity3DC#C++.NETOpenGLOpenGL ESVisual Studio 2008UnityiOSAndroid
Hire
Full
profile
Javier WaitzelArgentina
Javier is a top engineer and entrepreneur who is passionate about new technologies and software development. He has experience in mobile application design and development, and he's worked extensively with multidisciplinary teams bringing innovative ideas to every project.
[click to continue…]
Unity or Unity3DObjective-CiOS SDKCocoa TouchCocoaParse iOS SDKGitAdobe PhotoshopXcodeAgile Software Development
Hire
Full
profile
Michael TkachukUnited Kingdom
Michael is a responsible, communicative, creative, and innovative person. He loves when he can get jobs done efficiently and in a rational way. He's always open to new ideas and discussions, and he respects other points of view while always trying to find win-win solutions for existing problems.
[click to continue…]
Unity or Unity3DJavaScriptAngularJSAdobe FlexAdobe PhotoshopAdobe FlashWebStormAdobe Flash BuilderFlashDevelopAgile Software Development
Hire
Full
profile
Maicon BrauwersBrazil
Maicon has enjoyed a great passion for computer programming since the age of 15. He is currently focused on building mobile apps. He loves the challenge of solving complex problems and creating truly innovative solutions.
[click to continue…]
Unity or Unity3DJavaScriptObjective-CPHPUnity3DParse iOS SDKXcodeiOS
Hire
Full
profile
Jakov DuzevicCroatia
Jakov is a Unity developer with five years of experience. He specializes in 3D game development ranging from gameplay, engine architecture, and networking to UI and tools creation. He favors the Microsoft tool stack for development and production and holds a master's degree in computer science.
[click to continue…]
Unity or Unity3DC#Unity3DUnityUnity Cloud Build
Hire
Full
profile
Eduardo Dias da CostaBrazil
Eduardo is a developer with over a decade of experience focused on client and front-end applications. He is always open to learn and take up new challenges that can make him handle new languages and/or technologies. He specializes in computer graphics, image processing, game development, tools development (CLI, desktop ...) and UI/UX/front-end development.
[click to continue…]
Unity or Unity3DJavaScriptC#HTML5CSS3Unity3DSuit.jsWebGLjQueryFlashDevelopWindows
Hire

The Vital Guide To Unity3D Interviewing

The Challenge

At the moment of writing this guide, there are 4.5 million registered Unity3D developers, and it is far more popular than any other game development software. It is accessible to hobbyist and professionals alike, and thus you can expect developers of all caliber during your interview process. However, that is only half of the battle, as there are a wide array of skillsets within the Unity3D development platform. This guide will not only help you identify a perfect candidate who is a real Unitiy3D expert, but it will also help you ensure that candidate is the perfect fit for your project’s needs.

Unity3D is by far the most popular game development software

Unity3D is by far the most popular game development software

Narrowing Candidates by Requirements

Unity is extremely diverse, and thus being a Unity3D developer can mean having experience in a wide range of topics. This is a critical point to make, since your interviewee could be the top Unity3d developer, but still not be a fit for your needs because their skill set may not align.

Ideally, you will want a candidate who has “done it before”. For example, if you are making a 3D console game, he should have shipped console game before. Alternatively, a candidate may be an excellent 2D mobile developer, and while he could potentially pick up 3D skills quickly that isn’t the point of this discussion. To go even further, even if he has experience on the particular platform you are targeting, you may want to focus even more narrowly on the tasks he performed and compare them to the tasks you require. A Unity3D developer who shipped a major 3D mobile title might sound very impressive, but if his experience was solely UI/UX for that title, he might not be able to help you create the AI or game logic for your upcoming title.

Thus, it is critical for you to define which platforms you are targeting, and what skill sets you will require. Here are some questions to answer internally before you begin your search.

Q: Which Platforms will you be supporting?

Unity3D supports a wide range of platforms, including Mobile, Console, Web, PC, Mac, VR, AR, and more.

While Unity does a good job of making deployment to each platform fairly painless, it is important that the candidate has shipped at least one title on your desired platform, as each platform has particular nuances that will be uncovered during development. For example, some libraries and features are not supported by the WebGL target due to HTML5 canvas security limitations.

Q: Is the project going to be 2D or 3D?

While Unity3D was originally 3D only and 2D with third party plugins, it now supports 2D projects natively. Many developers will have experience in both, but some may be more inclined in one of the two environments, as they each have their technical hurdles. For example, 3D development may involve more extensive cameras, lighting, textures, and models, while 2D development may focus more on sprites, animations, and tweening.

Q: Is it an existing project or a new project, and which language is used?

If you are dealing with an existing project, you will need to figure out if the interviewee is proficient in UnityScript or C#, as Unity3D supports both languages and your source code typically uses one. It is important to test their general C# or UnityScript programming skills, in addition to the questions laid out in this document.

Q: Will the project integrate with a back-end server?

Does the applicant have experience with Unity3D’s NetworkManager class, or experience working with a custom back-end using RESTful API? An example question to verify applicants experience using back-end services could be: “How would you access a RESTful API from Unity3D?” Possible solutions include using Unity’s WWW class, HttpWebRequest, or using Unity3D’s asset store and downloading Best HTTP. The Best HTTP costs money, but it is worth the expense in many cases as the WWW class is missing a few features and HttpWebRequest is not supported on all platforms.

Q: Will the project have a single player AI?

Assessing the extent of someone’s AI abilities are outside the scope of this guide. However, a good starting point may be to ask how they would go about navigating between two squares on a grid. Solutions should include them recursively checking adjacent squares while tracking locations they have already visited until they reach the destination. A follow-up question could be how to ensure the solution finds the shortest distance. In this case, they will need to track the distance traveled during the recursion and ignore any routes that go beyond the minimum distance found.

Q: Will the interviewee be in charge of UI/UX?

There are a variety of UI tools within Unity3D. The question is, which ones do they have the most experience with and which do they prefer? An interviewee should know the pros and cons of each, and be able to describe why they favor one over another.

The latest Unity version 5 offers its own UI uGUI, but in its current form it is somewhat limited and is missing many components that could be considered standard, such as drop down menus. Other highly used UI platforms are NGUI and 2DToolKit. NGUI is probably the most popular alternative, due to the number of widgets that it supports out of the box, but it can be complex. Bottom line, Unity’s native uGUI should be used as long as its fundamental features cover the needs of the project. If it does not, then NGUI is worth considering. Alternatively, if the interviewee has chosen a different toolset, then they should be able to give rational reasons as to why.

Technical Questions

Q: Explain what a prefab is, and when it is used.

A prefab is a template for a GameObject. It contains the object itself, as well as the children and behaviors that are attached to it. Prefabs are useful in that they can be reused, and if you make changes to the prefab, it will update all instances in the project. For example, in the game Asteroids a prefab could be used for the asteroid. The developer could spawn multiple identical asteroids throughout space by referencing the prefab. Later, if the artist wants to change the color of all of the asteroids in the game, it would be as simple as changing one texture in a single prefab.

This should be a straightforward question for a Unity3D developer of any level, but it leads to some more challenging questions below.

Q: In the game Asteroids, when an asteroid explodes, it is replaced by three smaller asteroids. What would be the drawback of instantiating three prefabs for this event?

Instantiating prefabs during runtime within Unity can be very costly on the CPU. In CPU extensive games or meager computer systems, you will see noticeable drops in framerate whenever instantiating occurs. Thus, it is typically poor design to instantiate prefabs in the middle of the action, as when the asteroid explodes the player will experience a hitch or lag.

Q: Explain how you can mitigate the performance limitations of instantiating prefabs.

One acceptable practice for reducing the lag mentioned in the question before is to create object pools. An object pool is an array of objects that are instantiated before being used. This is especially useful when there are a large number of items that will be utilized, such as the asteroids in our example. A script could load up the desired number of objects, and store references to each in the array. As asteroids spawn, they would be removed from the array and made visible in the scene. As asteroids explode, they would be deleted from the scene and stored back in the array to be reused.

An alternative solution would be to have the objects loaded within the scene. This solution typically works best when there are a small number of objects that will be used, and then it is easy to manage the assets in a scene. A good example of this would be a particle explosion every time the player’ ship explodes. An object pool would not make sense here, considering there would only be a need for one such prefab in the scene, assuming your ship can only explode once. But you also want to avoid instantiating the effect at runtime, since it may lag or hitch during the death sequence. Thus, in this scenario, keeping a reference in the scene may be the best option.

Q: Explain the downsides of using object pools, and how can you mitigate them?

The problem that arises with object pools is that each of these objects need to be stored in memory. This can be an issue on low memory devices such as mobile, as you may not be able to store references to everything that could be spawned within the memory allotted.

Mitigating this issue is a balancing act between memory crashes and CPU lag. First and foremost, compile time macros should be used to ensure optimizations and cuts only affect low-end machines, and that object pools are still used to the fullest on high-end machines. On the low-end machines, object pools and caching should be used with caution in that only the high-frequency options should be put in the pool, and at the minimum number of objects possible for a better experience. Low-frequency objects may either need to be spun up at runtime, causing the occasional lag on the low-end device, or design decisions may need to be made to remove those objects for the low-end machine. For example, particle effects and explosions may need to be withdrawn from the low-end experience. A smooth running game without particles is much preferred to a laggy game with them. Cached assets should be cleared as soon as they are no longer used. Some machines provide a low memory warning which can be helpful in determining when the cache needs to be cleared.

Q: Discuss how you would structure the classes of an Asteroids game?

This is a very broad question with many acceptable answers. The point of the question is to focus on when the developer chooses to use composition versus inheritance. If they do not answer adequately enough, you may need to steer them in the right direction, or ask them directly to describe the pros and cons of composition versus inheritance in a Unity environment.

First and foremost, inheritance means a class extends another class. An example would be a class called Orange that could extend a parent class called Fruit. The class Fruit would define the properties such as seed type, for example. Orange inherits properties from the Fruit class, so it has seeds as well, but it also extends the Fruit class with additional properties such as having a peel.

Composition, on the other hand, is used when combining multiple classes. In the Orange example above, there would be no Fruit class. Instead, we could have a class for Seeds and another for Peel. The Orange would then store references to the Seeds class and the Peel class, and thus it would be composed of those classes.

Unity uses composition extensively, as its foundation relies on the entity component or entity behavior architectural pattern. In this regard, everything in a scene is considered a GameObject, or entity. Each GameObject contains a list of behaviors or components that define it, which is by definition composition.

Therefore, back to the original Asteroids question. The interviewee should construct their classes in a way to take advantage of the entity behavior model. In the game Asteroids, there are two types of enemies, asteroids and alien ships. Below we will look at how one could break down these enemy types into classes by comparing implementations using inheritance versus composition.

Inheritance In an inheritance setup, there would most likely be three classes needed. A base class which we will call Enemy, and then two derived classes which we will call Asteroid and AlienShip. The base class would handle all functionality shared by both the Asteroid and AlienShip such as tracking hit points. The derived classes would add additional functionality. For example, the derived AlienShip could handle the ship’s flying and shooting functionality.

Composition In a composition setup, we would most likely start with the same Enemy class that handles the hit points. But instead of extending it, we would use Unity’s entity behavior model to apply additional behaviors (classes) to it that add the functionality we seek. To create the alien ship, we could create a class that handles movement (MovementBehavior) and another that handles shooting (ShootingBehavior). We would then attach all three classes, Enemy, MovementBehavior, and ShootingBehavior to a GameObject to create the alien ship.

At first glance composition seems more intuitive, but as the game design grows in complexity and new features are added, it becomes exceedingly difficult to manage as each change may alter all derived classes. Composition, on the other hand, is immensely flexible and allows developers to create new features, or in this case enemies, just by adding and removing behaviors. That being said, both setups can be appropriate depending on the scenario. The key during the interview is to make sure the interviewee knows that both options exist, and can explain why they chose one over the other.

Q: Explain what Draw Calls are.

Draw Calls are the number of times the processor needs to change materials when rendering the scene. If there are 100 objects in a scene, and each have unique materials, then there would be 100 draw calls. However, if each object used the same material or sprite sheet, then all 100 objects could be drawn in a single draw call.

Q: How can you reduce Draw Calls?

Draw calls can be used by batching images to use the same material or sprite sheet. For example, in a 2D game we could have a character who has sprites for his head, body, and legs. Each sprite is unique, and thus it would take three draw calls to render the character. To reduce this, we could combine all three sprites into a single sprite sheet, and then draw calls would be reduced to one since all three sections could be drawn at once.

A good follow-up question here would be to say the character picks up a cape which appears above the head but behind the body in z-order. The cape is on a different sprite sheet than the character. How many draw calls would it take to render the character and cape on the two sprite sheets? The answer is three. Even though there are two sprite sheets involved, z-order causes three switches to occur. First, the character sprite sheet is used to draw the head. Then, the cape sprite sheet is used to draw the cape. In the end, the character sprite sheet is used to draw the body and legs. The body and legs can not be drawn at the same time as the head since the cape appears between them.

Q: How would you find a memory leak?

The key to this question is to make sure the developer knows the ins and outs of the profiler and uses them often. The profiler has a memory section which allows you to take a detailed snapshot of everything stored in memory. You can then search through this list and look for anything that should be cleaned up. Adding names to items helps distinguish them within the list.

Summary

We just scratched the tip of the iceberg of knowledge needed to be a top Unity3D developer. We hope that questions and answers presented in this guide will help you pinpoint the ideal developer for your project, by not only finding top Unity3D developers but finding the best developer for your particular needs.

Hire Unity or Unity3D developers now
Alvaro 1506e7

My team is going to personally help you find the best candidate to join your team.

Alvaro Oliveira
VP of Talent Operations