locxter.net

Some impressions of working with Unity

2023-07-21

Nowadays, video games are everywhere and thanks for amazing tools not only fun to play, but also to make. During my work placement at ise , I had the chance to work with Unity for two weeks straight and want to share some of my impressions with you in this article...

THE number one realisation I had was just how easy these tools make it to get started with game development and learn new skills within this area. Granted, I have lots of programming experience and am also used to working with 3D design software (FreeCAD), but even I have my struggles with certain programs (Blender is my number all-time enemy as I just can't figure out how to use this amazing software), this area of software development varies greatly from what I usually do and C Sharp also was a new languages for me. Luckily, the heaps of really good tutorials and documentation (first- as well as third-party) make all of these struggles just a breeze to get through and truely are one of a kind in my mind - yes, I am looking at you C++ and Kotlin libraries.

My next point goes hand in hand with the first one, but this huge community also leads to a great ecosystems overall. The Unity Asset Store is probably the greatest achieve of the whole suite - just want a character with control scripts to get started, you'll find it there; you aren't quite comfortable with designing your own assets, choose one of millions of free ones available; you need a fancy sound effects and backrground music, but are a total music noob like I am, guess what you are able to get it there. But this isn't the only strength of the Unity ecosystem, for ecample the support for third-party plugins is also great to have and can really help a platform to leverage it's full potential (just take a look as VSCode).

My last but certainly not least point in favour of Unity is the fact that it truely is a "write once, run everywhere" platform -what plenty of toolkits promise to be, is what Unity actually delivers. There are basically zero code changes needed to adapt new platforms (mobile and game consoles require small changes regarding the input system of course). Heck, you are even able to compile you code to WebAssembly + WebGL and run it from the browser, which blew my mind. And it doesn't stop there, Unity also incorporates really advanced cross-compilation, which is the concept of building code for other platforms than the one you are developing on, and therefore allows you to package you game for Windows, Linux, WebGL, Android and even macOS as well as iOS right from your single-operating-system computer.

However, not everything about Unity is sunshine and roses. What really pissed my off, is the requirement to create an account, even in case you don't want to use the Asset Store or any other online functionality. I also have to mention that the vast majority of assets in the store actually cost money (and Unity probably wants a fee), it is only free for hobbyists with outrages pricing for professional licenses and it therefore is the absolute opposite of FOSS, which isn't something I want to support. You should also keep in mind that this tool is developed by a kinda scatchy company that heavily relies on their in-app advertising network for making money, has pulled off asshole moves in the past and just last year layed of lots of employees to safe costs, but apparently had to money to buy the controversial ad company IronSource .

Overall, I think that just like other highly popular programs such as Microsoft Office or the Adobe Suite Unity is a really capable, professional grade software with a comprehensive ecosystem that allows you to create amazing things rather easily. However, just like the aforementioned it really tries to lock you into their walled garden, make you dependent on them and ultimate reserve a part of your revenue for themselves, when your project/business gets bigger. So, would I recommend it? The answer is yes and no. If you don't care about the values of freedom and open source and just want a well working tool to get started with game development, there is just nothing better out there currently and you will be really happy with your choice. If you do mind these values however and want to be more liberate, I would like you to give Godot or some of the other FOSS game engines a try, since they are almost equally capable and respect your independence. But they will have a bit of a steeper learning curve, since there isn't as much material for them available and you'll therefore have to read the docs right from the beginning, which can seem rather disadvantageous in the beginning.

RSS feed