Making games is hard. There are many stages between the conception of an idea and a working prototype, let alone a final and polished product. The Unity development team understands this process, as many of them have a game development background. They set out to lower the barrier of entry and make game development accessible to the masses. In his session, Lucas Meijer identified a number of challenges (independent) game developers face, and how Unity helps to address them. He also talked talked about Unity 3.5, the latest version of the platform, adding the Flash player to the list of supported export targets.
The first game development challenge Unity helps to overcome is technical complexity. It takes care of the basic stuff like physics and actually rendering the game world by providing a powerful and feature rich engine. There is no need to reinvent the wheel here; if you have a cool idea, you can just focus on making that work and let Unity take care of the rest.
The second challenge arises from the simple fact that many developers are visually illiterate, and many designers cannot write code. Because good games require both good art and good code, as well as animation and sound, making a game by yourself can be very daunting. Unity has a possible solution for this as well: the Unity Asset Store. This user driven market place is fully integrated with the platform and is accessible from within the IDE. Users can share or sell code, character models, textures or even complete projects. The Unity community has really embraced this model, so much so that the top contributors have found it to be a viable source of income.
The final challenge is risk. Making a game often takes a large investment of time and/or money, and turning a profit can be very difficult. After weeks of development, you may just find that your game is not fun to play. In this case, the Asset Store can offer an opportunity to make some money by selling (parts of) your project to fellow developers. There are external factors too: the platform you were targeting might make a change in policy or fall out of favour, reducing your potential market. Here the biggest selling point of Unity comes into play: the broad range of platforms you can publish your game to. There are licensing costs to be considered, but porting your projects to or from mobile, desktop or even consoles takes very little work.
In the latest version of the platform, the Unity publish range has been expanded to the Flash player, giving Unity developers access to a very large potential market. The Unity team has been working on this feature for the past year, porting their engine to ActionScript and optimising it to work in Adobe’s runtime. This feature is currently in a public beta, allowing you to export to Flash for free, but it will receive a licensing structure when the final version is released.
Projects published to Flash can run stand-alone, or be embedded into other projects through a special interface. This will allow two way communication, much like with any other loaded SWF. The new release also makes it possible to use ActionScript code within a Unity project. In the demo shown during the session, an ActionScript class was used to parse a JSON file containing a list of box spawn coordinates, which were fed back into Unity. While this is not a very practical use case, it does illustrate the possibility of integrating any ActionScript library with any Unity project.
After the session, I asked Lucas about any future features he was particularly excited about. He stated that better 2D support is in the works, which is something the community has been very interested in. Furthermore, as more and more features will be added in the future, the Unity team will continue to work on keeping the core work flow user friendly, centered around quick iteration and rapid development.