Publisher Profile: Detox Studios

We asked Scott Blinn of Detox Studios, the team behind the popular Asset Store product uScript, about their company, their products, and success!

Unity: What is your background?

Scott: Detox Studios was founded just over a year ago by four veteran game developers. We have over 50 years of related experience between us, and have worked as developers on many award-winning video games, including System Shock 2, Thief: The Dark Project, The Bourne Conspiracy, Darkwatch, Red Faction, Pixar Cars, Deadly Creatures, and others. Our software’s design and architecture is based on many years of experience in creating custom game tools and technology as well as using that technology to create award-winning, multi-million dollar commercial products. Through Detox Studios, we wish to bring that experience to Unity developers and help them focus on making great products of their own.

Unity: Why did you decide to make uScript?

Scott: The uScript Visual Scripting Tool was designed to empower non-technical developers, such as game designers, artists, architects and others, to directly create and iterate on gameplay features in order to bring their visions to life. It is our belief that to be competitive and innovative, it is vital to put the power of creation and iteration directly into the hands of artists and designers. This also allows the technical folks on a team to focus on technical innovations instead of spending their time in an implementation support role. The end result is a higher quality final product. uScript was designed and developed with four major goals in mind at all times:

Usability – It was our number one goal to take something as complex as programming game logic, and visualize it in a way best suited for non-technical people to be able to do what they want without having to worry about technical aspects getting in their way. This is a very challenging problem as the more technical aspects you hide the more flexibility is lost. A massive amount of time was spent making uScript the easiest to use solution available while maintaining the flexibility that allows advanced developers to do what they want with the tool. We continue to put a lot of our development efforts into constantly improving this aspect of the product.

Iteration – Any developer worth their salt knows that the best ideas (and products) are ones that can be quickly iterated on during development. The flexibility to quickly try new ideas without fear is critical to inspiring innovation and being competitive. uScript allows you to visualize your ideas quickly and try different things in a very rapid, non-destructive development environment. Also, because uScript allows gameplay logic to be created by non-programming team members, it greatly increases productivity through parallel iteration and experimentation. This frees up a team’s engineers to focus on technical innovation and competitive advantages instead of implementing (and re-implementing) product design concepts.

Expandability – Every product has unique needs and development pipelines, and it would be impossible for a visual scripting system to handle 100% of all needs “out of the box”. Because of this, uScript was designed to be extremely customizable and extensible for projects big and small. This extensibility is accomplished through several key features, including the ability to create custom visual nodes (logic blocks) using C# code or even through visual scripting with uScript itself, customizable editor UI and file names/locations, full “.Net Reflection” of Unity’s objects/components/properties/variables,and a user-supported uScript community portal.

Community – Because of uScript’s ability to be customized and expanded in many ways, it was important to us that its users had a place to go to share their nodes, creations, knowledge, and ideas. We also wanted to have a way to share uScript news and updates, and have open two-way dialog with our users regarding uScript. In support of that goal, we have created a community portal (http://uscript.net) for uScript users, as well as future users looking to see what we are all about.

Unity: What motivated you to develop this product for Unity?

Scott: We are all very passionate about game development tools, pipelines and architecture. Two of our founding members had developed an extensible visual scripting system for an internal game engine that utilized Lua. Once we realized we were onto something pretty cool we thought it would be great to release it to the world. Unity was a natural fit, since the Unity Asset Store was just announced, and there was no visual scripting solution available at the time. Furthermore, Unity’s support of C# allowed us to implement a number of exciting “next generation” features that would place us far ahead of the competition and make uScript a great commercial product.

Unity: As one of the top-selling products, uScript clearly stands out. What do you think differentiates it from the rest?

Scott: As stated before, our whole philosophy with uScript is to empower the entire ndevelopment team, from artist to designer to programmer. Other visual scripting tools use a ‘black box’ to run their visual logic at runtime. The entire team is at the mercy (good or bad) of the tool’s creators when it comes to bugs, performance, and clarity on exactly what that black box is doing under the hood. One of our goals with uScript was to remove that ‘black box’. To achieve this, we’ve written uScript from the ground up to simply export C# code. uScript simply creates C# game scripts that are just like any other game script created by hand. This allows the developer to dive as deep as they wish into what uScript is doing behind the scene and to also allow us to take advantage of the same compiler optimizations as any other script written by a programmer directly. Another feature that makes uScript stand out is our data preservation and deprecation features built into uScript.

Many people are excited about the idea of visual scripting, but what they may not think about is what happens if you need to change existing visual nodes to add features or fix a bug half way through development? Doing so can easily cause data loss or invalidate potentially hundreds of visual graphs on a project. uScript has systems in place to allow for data preservation (restoring node links and properties for example) as well as a node update and deprecation system that will help you either update to a new version of an existing node or to entirely replace an obsolete node with a new one. Such systems are critical for professional game development in which you need to be flexible yet still ship a quality product on time and budget.

Unity: What you like about the Unity game engine?

Scott: Unity’s approach to development and its ability to quickly iterate on ideas have always been a strong pull for us. We’re also very pleased with how Unity’s architecture allows developers to easily extend the editor itself. uScript wouldn’t have been possible without it!

Unity: How does the Asset Store figure into your business?

Scott: We have been following Unity development closely for years and when we heard the announcement at the Unite conference, we knew the Asset Store was going to be huge. The Asset Store plays a large role in our business. Currently over 90% of our revenue is generated through the Asset Store. The support staff has been very helpful in working with us and providing us with any help we need. It has also played a large role in our initial introduction to the Unity community. We hope to see the Asset Store continue to grow with Unity!

Unity: Do you have any advice for middleware developers who might use the store?

Scott: Remember that when you are creating commercial software that the software itself is only part of the package! Spend some time coming up with branding for your software that will allow you to build recognition and excitement for your product through the name and logo. A well polished presentation on the Asset Store will go a long way to making potential customers confident that you are serious about what you are asking them to spend their hard-earned money on.

You also need to be prepared to support your product as well. Creating the software is only half of the challenge, and you need to be prepared to foster a happy community of users. We recommend something interactive, such as a forum, which can act as your primary portal for supporting your software. This allows you to build up a history of answered questions and knowledgeable users who will also start helping new users. Support (done well) can take a massive amount of your time and impact future development, so you need to be prepared for that and approach support as efficiently as possible!

Unity: What can developers look towards in the future from your company?

Scott: For now they can look forward to continued uScript development and world-class customer service. All our focus is on getting our software to its version 1 release (not far off now!) and taking a look at our roadmap for features and improvements for uScript’s first service pack. We listen closely to the feedback and suggestions provided by our users, and the decision to implement individual features and their order of prioritization is often heavily influenced by the community. Our uScript community forum is alive and flourishing with well over a thousand registered members, topics, and posts. We encourage everyone to jump into the community and share with us their thoughts and ideas. Our goal is to create the best possible product for our users, and with their feedback and support, we can make it happen.

Unity: What is your vision for the future of game development and game developers?

Scott: In many ways I think the “future” is already here and we are seeing it everywhere! Everyday, we see small, independent developers creating amazingly innovative products, and self-publishing in a world of digital distribution on an ever-expanding number of target platforms. Unity is a great platform for this to happen, and is also why we are so excited and proud of uScript—it allows these small and nimble teams (or individuals!) to get things done and bring their visions into the world for us all to enjoy.