are unity and other public engines future of game making?

Started by
4 comments, last by Nick Mok 5 years, 5 months ago

hi.

im not sure that im asking it in right place but i think its a technical question.

ten years ago making game was a very hard task. there was game studio, flash and.... but they were so limited. now every one is making games with unity. its a first solution on every game maker that has no tool. certainly still there are limitations on unity specially on platform-specific topics but unity is being updated with new tools and asset store is supporting special Utilities free or with low prices.

there will be one question. will studios like naughty dog or santa-monica or Dice stick to their in-house engines or there will be time that they turn to such engines(specifically unity) for more simplicity and faster development. certainly study on specific hardware like ps4 or xbox can let you make better results about optimizations and quality but how much it is a priority. there are teams on these studios to always make new tools but can they be as good as and as fast as a company and a community   that their job is to make tools?

Advertisement

Game engines like Unity will always have a large market.. I really doubt that Unity or any other engine like it will ever completely displace major custom engines.  You just can't optimize these engines as much as a custom built one.  Unity/Unreal/etc are great for small and independent developers though.  They allow individual creatives, and small teams the chance to make nice things too. ;)  The real difference between custom engines and things like Unity is that custom engines DON'T include 90% of the things that make Unity or Unreal nice/easy to use.  That equates to MASSIVE performance gains that you really can't get from DIY game engines.  Do most games need that?  No, but some do..  And some always will.

Yes.

The main setback for a programmer was having to develop tools such as level and sprite editors, which was a distraction from coding the game itself.

For the artists they were willing to push-the-boat-out and learn some scripting but not languages such as C++.  "Dammit Jim, I'm an artist not a programmer!".

That said,  project maintenance is what holds many developers to their own engines. You have only yourself to blame and are at least in a position to fix it.  With a program like Unity you are relying on it's developers to do their job right and if they haven't then you could find yourself in Admiral Ackbar's shoes...

But going forward in games development, these engines+editors will only improve in time.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

The way I see it, the main problem with Unity is that it uses C# and that means you are generally going to take a performance hit  whenever you code something significant. That being said, the more stuff you push down into the engine that performance hit becomes less and less.  And to be fair a lot games probably don't need to be maxed out for speed.

I even look at the stuff I'm coding, and I often think, can it work with Unity or Unreal or will they just get in the way too much? I assume I could get it to work, but I worry I'll be using such a small part of the engine that it will just bloat my project for not much appreciable gain.

There's always a trade of make vs buy (or use, in this case) but it's not always clear what the best solution is. There is always this kind of scary scenario where you go down a path using some 3rd party package, and you start to hit roadblocks. At first these may be little work arounds, but sometimes they are more than that. I've seen this happen enough times to give me pause.

Regarding Unity, I switched from Cocos2D-x to unity fews years ago because of company decision. I have to say, while it has lots of features its slow on doing things. I am not talking about getting task done but operating with Unity. Every time I change some code, it it take quite a long time to recompile on unity side (not from visual studio). Every time I import something it hang a little. Many basic functions are missing or in complete. Can you imaging you need to write your own blend code just to have two images blend together with some blend mode. Many people ended up just buying something like https://assetstore.unity.com/packages/tools/particles-effects/blend-modes-28238 because they don't know how to write shader like me. I was surprise when I saw there are so many masking plugin on their store https://assetstore.unity.com/search?q=masking&k=masking. That's because masking feature they provide is weak and could not satisfy user in many cases. And that is a many years old game engine! I even think they intend not to provide those nicely so that Unity could take 30% commission off their assetstore purchase. On other engines, many features are just basics and fundamental features.

But it doesn't mean I don't like unity. It has its strength especially it is coding with C#. Writing in C# is more comfortable even through I have quite some years of c++ experience.  When il2cpp is enabled, code will be translate to c++ for building which could improve performance but according to some sources, it is still easy for people to hack the game as it is still holding c# source somewhere for certain purpose. e.g. for debugging, generating crash log / bug report, etc. Without il2cpp, anyone could read your source code by decompiling the built DLL. Thus, another kind of addon is required to protect your code https://assetstore.unity.com/search/?k=obfuscator&order_by=relevance&q=obfuscator&rows=42. But then it would be harder to debug a release build as the reported crash log callstack will become junky and require "treatment" to restore. The story goes on and on. Maybe Unreal is better at some point but I never tried it.

Anyway, don't try to write your own game engine if your goal is just to make game! It will work but will probably not be as good as using an engine. A good engine consist of good resources management and complex algorithm to optimize many part of the game. They also handle platform compatibility for you.e.g. When a device don't support certain type of texture format, they fall back to use another less optimized format. Sometime like that. A good engine take care of lots of stuff that people do not realize they need to deal with when publishing a game. Those issues arise when the game is run on another PC or OS version or platform, etc.

This topic is closed to new replies.

Advertisement