Unity Astrospace Demo - Click to Play
This demo is my first project in Unity, and is my take on the Atari classic Asteroids. There’s a lot to learn when you first start out using Unity, so something simple, well known and in 2D seemed a good place to begin. If you’d like to play the demo, please click the image above.
There’s been a lot of talk in the Flash community lately about Unity and the way it is transforming 3D on the web. Having read a lot about it, played a few demos and seen that Unity Indie is now available for free, I just had to take a closer look. So what follows are my first impressions of the game engine and development environment, a quick look at some of the best Unity projects out there at the moment, and an overview of the resources available to new developers, especially those like me, who are from an ActionScript background.
From Flash to Unity
Working with Unity is a lot like developing in the Flash IDE, in fact there are so many similarities that as a Flash developer it’s very easy to understand the basics. Lots of comparisons have been drawn between the basic building blocks in both environments: the Unity Project Panel is just like the Library in Flash, the Hierarchy is your Timeline, the Unity GameObject is a bit like the base DisplayObject in Flash, while Prefabs can be instantiated at runtime just like Linked MovieClips, even the default scripting language looks very familiar.
What quickly becomes apparent though, is that aside from the obvious performance advantage that Unity brings to 3D graphics, this is also an engine that was built mainly for making games with rather than a platform for everything from 2D vector animations to video playback. To make a game in Flash – even with something as advanced as the PushButtonEngine – is still a major piece of work, with Unity everything is there at your fingertips: 3D renderer, shaders, particle effects, a physics engine, standardized player input, an optimized game loop, sound management… the list goes on. All of this means that you can focus on creating the actual game itself, rather than trying to build an engine from scratch or spend ages working out how to combine some existing code libraries or frameworks to make a game in Flash.