When I started planning my first 3D first person adventure game “Bon Vivant – the tale of a mysterious guesthouse”, I had to decide on a fame development engine and roughly there are two big leaders in the market, Unreal and Unity. Unity and Unreal Engine are both very good game engines. A game engine, also called game architecture is a key component to game development as it combines all the different game elements like sound, graphics, animation and user interface into a single visual development program. Core functionality includes: a rendering engine for 2D and 3D graphics, physics engine to control movement, sound, scripting, animation, AI, VR support and networking. Both platforms allow you to develop games for PC, consoles and mobile and for most operating systems like Android, Microsoft Windows, Mac and Linux. Choosing the right game development environment can be crucial to your success as a game developer.
The key difference between Unity and Unreal Engine is the native programming language, Unity uses C# and the Unreal Engine uses C++. I am a huge C++ fan and also an trained C++ developer so that was the big plus for Unreal. But in my daily work I switched to C# and now I am also a big C# fan as indeed being the logical successor to C++. (C# stands for C++++). Although the compiled performance of C++ is just a little better then C#, in most cases you will not notice that. Then there is ease of Use and I tried both and Unity is much easier to use especially when you are used to Microsoft visual studio. I think Unity has a great and very logical user interface and it takes some time to get used to it and know where everything is, but there is so much online information and tutorials, that you can learn it without a book or manual.
Unity is a the best platform for the indie game designer just starting out, as it is still the most used platform there us a lot of online support, you can start making games right away without any extra investment. In my opinion the Unreal Engine is more suited for the big game development studios that aim for fine-tuned graphics and lightning-fast render speeds and want to pay for that. I have been working with Unity for more than six years now and I have created several games, I am a huge fan of Unity.
Why I use Unity
Unity is a great choice of game development environment to work with. To start, go to the website www.unity3d.com to download the software. The URL is a leftover from Unity’s original focus on 3D games, support for 3D games remains strong, but Unity works great for 2D games as well. Although there are some advanced features only available in paid versions, the base version is completely free and most of these advanced features are not needed by the average game developer. And as long as you have a free personal license and not earn or receive more than $100,000 in revenue or funding, Unity is completely free. Although there are also a lot of free assets in the Unity asset store, you will eventually start to buy dedicated assets for your game, but that is expected.
This website is mostly about programming in Unity, there are plenty other resources to discuss other aspects of game development and Unity. You can build a complete game with Unity without writing a single line of code, but when you want something not out of the box and more sophisticated, you need to write of modify C# code. Also a basic knowledge of math is needed to understand what you are doing. Unity is a very professional-quality game engine used to create video games targeting a variety of platforms. The ease of visual editor and a very high degree of cross-platform support is a big pro for Unity. Once you learned all the drag and drop features (also in the property fields) you will find it very easy to develop in Unity.
You can also get a lot of addons in the Unity Asset Store that will extend the IDE and most of these addons neatly integrate into the existing IDE blocks. Unity is also very strong in rapid application development, you can mover things around or change a property and immediately test this in running the game withing the IDE. Unity uses a component based approach instead of a strict hierarchy of classes, this makes it very flexible, but you are able to make things a complete mess. Furthermore every script you write like a singleton gamestate class, must be connected to an object in the editor view, but this can be and empty base object. After a while this becomes natural and it is nice to have a visual representation of all the C# code in your project.
To be continued!