Unity 3D Development

Unity-

Unity 3D is a relatively new engine which has skyrocketed in popularity over the last few years and is used across the board, from amateur programmers to AAA studios such as Activision Blizzard (of Call of Duty and World of Warcraft fame) and Rovio (creators of Angry Birds).

A Coder’s View:

Part of the reason for this popularity is the ease of deployment provided by the Unity3D engine. Using this tool we can easily develop for the major mobile platforms as well as Mac, PC, Linux, Xbox, Playstation and embed it in webpages using the Unity3D Webplayer plug-in.

Unity3D has been created as a versatile tool and can be used to develop both 2D and 3D applications. While it is heavily advertised as a platform to create games, it is not limited to this. DeckTools Inspire is developed by us using the Unity3D platform and is an excellent showcase for a non-gaming application of Unity3D.

However, Unity3D does have a few drawbacks. It is another layer between the code and hardware. This means that not as much performance can be squeezed out of it compared to the native languages for the systems. Unity3D is not the best option for all applications, however, it has suited us very well with multiple projects. Before starting any project we will discuss which platform will best suit your requirements to ensure you receive a well-designed product at the end of development.

3D: Unity continue to improve on their 3D toolset, introducing great animation tools, global illumination, physics as well as an all new audio system to make your application all the more captivating and immersive.

2D: Unity has recently made the leap to expand its toolset with 2D tools. While 2D projects were always possible with Unity, it is now better optimised with easy sprite sheet creation and animation as well as packing as much art into the software as possible.

Platform Independent: We have mentioned this before, but Unity deploys to a huge range of platforms. This is where Unity separates itself from the pack. It reduces development time of a project and broadens the market for your application. However, to get your application feeling great there is still a lot of work to be done per platform to make it feel right, but Unity certainly help where they can.

WebGL: Seen the awesome Unreal engine demo running in a browser? That’s the power of WebGL. It allows AAA quality games to be played right in the browser. Think dynamic 3D environments, full 3D physics and a silky smooth 60fps frame rate. The browser support is pretty poor at the moment, with support on desktop Chrome and Firefox and not much else, but this is set to be a key technology of the future. If you’re interested in the benefits of web deployment and are not targeting the mobile phone market, this may be the tech for you.

An Artist’s View:

Unity is a software development platform geared towards creating software applications with 2D and 3D graphics. One of its key advantages is the ability to develop projects for a wide range of platforms (including PC, Mac, Linux, iOS, Android, Web, Playstation, Xbox and WiiU). This flexibility greatly reduces the time and cost involved in porting an application from one platform to another. Tradeoff is that developing specifically for one platform using native development tools can provide better performance. This means that Unity is ideal for cross-platform development.

Workflow: Unity brings together visual and artistic tools with code development in one environment. This makes it easy for our team to collaborate on large projects, but also allows technical artists to work between visual and programmatic parts of the application with ease – such as in the development of sophisticated but visually appealing user interface design or adding interactivity to objects within the 3D scene.

Different Platforms for Different Markets / Audiences: With the ease of developing for multiple platforms, the key consideration should be which platform is best for the application. Desktop, android and ios all have very different user-bases and, crucially, different expectations. Whilst mobile and tablet devices are becoming more powerful, they are still more suited for casual use. The marketplace for mobile applications is growing, but is also very competitive, creating a very high bar for ease of use and a very sharp drop-off for engagement levels. Desktop applications, by contrast, appeal more to ‘power users’ who want the power and flexibility of a desktop for more serious tasks. This market may be smaller, but users are prepared to pay and invest more in the software. With a breadth of experience in working within these different markets, we can help you choose the right platform(s) for your project.

Performance: Different platforms have very different capabilities in terms of storage, processing power, graphics and memory. This is important to take into consideration when targeting specific platforms and designing the scope of your application. Not only do we have experience in developing for multiple platforms, but we have demonstrated the ability to create a sophisticated application that can scale to run on a wide range of systems – from low-end mobile devices to high-end desktop PCs.

Rapid Prototyping: Unity makes it incredibly easy to prototype software in very little time. This is thanks to the many in-built features and the wide support from third-party developers, a strong community, and the Unity Asset Store (an online marketplace for users to sell code, tools, art assets and more). This makes it easy to try out new features and promotes investigating creative solutions to problems.