What is Unity 3D?
Unity 3D is a game engine, that is a development tool which facilitates and assists the creation of computer games. Its producers state that it has been "designed to allow the developer focus on creating amazing games".
Unity has as a primary goal the development of 3D video games; unlike other tools, however, it is also suitable to create other kinds of interactive content, such as animations or 3D visualizations. This game engine runs on Mac and PC; application can by default be deployed for PC, Mac and web, but depending on the purchased license it is also possible to publish games for consoles and mobiles.
A game engine is by definition a high-level tool. Therefore, the main method of development in Unity is the use of the integrated graphical environment. The behaviour of the application still has to be defined via code, but most of the scene and objects configuration can be done visually:
In this screenshot of the editor it is possible to see its main components:
- at the bottom, the hierarchy of the various objects on the scene and of their child components, plus the project structure in form of a file system;
- on the right, the property inspector panel, where it is possible to tune many different properties (such as transformations, materials, shaders, and so on) for each object on the scene;
- at the top, the blue buttons that allow a live preview of the game: besides modifications to the scene being immediately visible in the main window, it is also possible to get an instantaneous preview of how the game will look like by just hitting the Play button.
One of the most useful features of Unity, as hinted above, is the possibility of developing a project once (including visual items, assets, code and so on) and then deploy it for several target platforms with just one click. The engine, in fact, takes care of all the processing needed.
Scripting runs on Mono
The following links provide some examples of what can be realized with Unity 3D:
Unity is provided by Unity Technologies, a companyborn in 2001 in San Francisco that now also has development offices in Denmark, Lithuania and United Kingdom. Their motto is "taking the pain out of game development".
Unity Technologies has seen a big growth in the last few years, with more than 250.000 registered developers and users ranging from big companies (such as Electronic Arts, NASA, Cartoon Network, Disney, Warner Bros., Ubisoft) to hobbysts.
In 2010, Unity Technologies has won the Wall Street Journal Technology Innovation Award for Unity 3D and has also been awarded as Most Innovative Company by SIME Media; furthermore, the game review site Gamasutra has nominated it in the top five gaming companies in 2009.
The vision of Unity Technologies states that their goal is to "democratize game development and enable everyone to create rich interactive 3D content": coherently, more and more efforts are noticeable in order to bring a powerful technology even to independent or casual developers. This happens in two ways: on one side, the technology produced is more and more intelligent, and on the other side it comes either for free or at a relatively affordable price.
In fact, it is possible to obtain Unity 3D under different license types:
- Unity (base version, free): includes features such as physics management, lightmapping, networking, asset importing in popular formats (such as .max, .fbx or .3ds), terrains painting and generation, audio management; it is probably enough for most indipendent applications.
- Unity Pro (advanced version, approx. 1100$): includes external plugin support and advanced features such as graphics optimizations, post-processing effects, video management and imposes requirements on the revenue of the company that uses it. It can be anyway downloaded as trial version, valid for 30 days. Owners of a Pro license can apply to related producers in order to also develop for consoles such as Nintendo Wii, PS3, Xbox 360.
- Unity iOS and iOS Pro: equivalent license types for development on iPhone.
- Unity Android Pro: currently in preview release.
There are plenty many game engines available: to name just a few, UnrealEngine, CryEngine, Torque3D. The impression, however, is that the latter are targeted towards bigger projects, with bigger teams working on them and having a bigger availability of budget and time. Unity 3D looks more agile, faster to master and, last but not least, amateur-friendly also in its price.
Strong and weak points
- Learnability and usability
- Wide, lively, extremely supportive community
- Great availability of ready-made components and scripts
- Good tutorials both to get started and to be introduced to more advanced features
- Availability of lots of even advanced features already in the base license
- Due to the previous factors, ease of producing something meaningful and appealing in little time
- Being a high-level tool, it takes care of many details while leaving the developer (even a non-expert one) free to focus on the game concept
- Nice visual results and fluid gameflow also on not-so-powerful hardware, at least for simple projects
- No support for Linux: Unity 3D does not run on this OS, nor can it deploy applications for it
- The Pro license is clearly targeted at big companies
- In order to run applications in the browser, it is necessary to install a proprietary player, which is still not widely spread
From my exploration of Unity I can derive the following evaluation: I believe that it is a very intelligent technology in that it relieves the developer from dealing with many technical details and lets her free to focus on a more "artistic" level of design. Based on the criteria that were suggested in class, I would suggest that Unity thus provides the developer with power and freedom, and that its variety of features also enriches it with expressiveness.
Furthermore, Unity users form a very supportive and lively community, which enriches the technology with a social, connective flavour that is expressed in the sharing of showcases, hints, solutions, and code.
In this section, I am going to present a simple tutorial to move the first steps with Unity 3D. The result will show a sphere moving on a terrain. In order to keep the page clean, you can find the tutorial here.
References and resourcesContributed by: