4.04.2018

Feelings about Unity after Flash

I'm Flash developer almost whole conscious life. Started with Macromedia Flash MX 6 around 15 years ago, I wanted to make cartoons and then I found potential for games. I tried to program with frames and `goto` but learned programming only years later. All my jobs was related to Flash and I'm working as mobile AIR developer now.

But epoch is gone. Everyone heard about Flash death (that slightly exaggerated on my opinion). When everyone already moved to other technologies such as JS and Unity, I'm only started this way. And today I want to share my feelings about moving to Unity 3D after years of developing with Flash and ActionScript.

Basics


First at all I can recommend to start from official manual which is structured really well and written easily and informative. Who knows may be it will abolish the need for further reading. Here my understandings of basics Unity concepts.

Project (that almost always are games) consist of Scenes. Each Scene represents independent 3d-space. Let think about Scenes like about separate stages (Flash IDE also have scenes concept but I never used it for development). Even 2d-games are exists in 3 dimensions – I hope you know how z-index works.

This 3d-space is container for GameObjects. Something like DisplayObjects in Flash. And each GameObject (GO) has Transform component/property – information about it position, rotation and scale.

Prefabs are something like stored GOs, presets. You can reuse prefabs with different ways. It one of basic tools of Unity and it better to learn about it in a chapter of manual.

Each GO can (and should) have components. Components are code that describes behaviour of GOs. Working in Unity, you will use many built-in components, as well as write your own. Working with components are main part of business in Unity.

Few more notices


Measure system. Don't forget that Unity (unlike Flash) uses units measure system. It could be a problem at first, but soon becomes natural.

CSharp. Despite the fact that Unity allows you to choose the programming language of a few, of course you need to use C# as only one language. Especially if you programmed on ActionScript 3.0 before. Mostly all projects (I will assume >99%) made in Unity are written on C#.

Rider. I like JetBrains IDEs. So highly recommend Rider instead of MonoDevelop as main code editor. It easy to integrate to Unity and much more comfortable to work with.

Conclusion


I'm using Unity hardly more than month but it hard to describe how it changed my approach of development strategy. I'm writing much less code than in Flash for same functionality. Working with components is much more conveniently for game development. I'm excited from possibilities that Unity gave me and ready for new experience.