Game Engines

Intro

Well, welcome to another article, today we will be covering Game Engines. Things like Unreal Engine, Unity3D and so on. Note that the article might not be up to date with some information. If so, feel free to contact me. I will also not cover all game engines out there, only those which are easy to get or just straight up free. This information is just to somewhat educate or just give you a idea of what game engine you should use just in case you like to be a game developer, other than that, you could just use this as excess knowledge.

Game Engines Covered

  • Unity3D
  • Unreal Engine
  • Construct
  • CRYENGINE

Please note that on the day that this article was made, all these game engines were free. I also will not be going into full on details about these game engines, will just cover the peak of the iceberg.

Unity3D

Let’s start off with Unity3D. To start off, this game engine mainly uses two programming languages, C# and Javascript. In my opinion, those languages are not too hard to start off with unlike unreal engine which uses C++. If you just started in game development, you should try this game engine, its beginner friendly and just a decently powerful engine. Other things such as the Asset Store also helps out, as the store basically has everything you need to start a game or at least have a foundation to make your game. The community for Unity3D is also extremely big, meaning, you should be able to pretty much find any fixed or help for a problem you might stumble across. This is what i really like about Unity, its friendly and a good place to start. The user-interface is also extremely easy to use and master, just a drag and drop interface. So if you want to add lets say physics to a box, you just have to click “Add Components” and just add Physics or a Rigidbody. This also works for scripts you created or got. Making a script is also extremely easy, as Unity provides a few functions that is extremely helpful.

void Start() is called when the GameObject has been "Enabled". Usually called only once

void Awake() is called after Start

void Update() is called every frame ( Sometimes it skips if it really needs to )

void FixedUpdate() is called every frame ( This one does not skip )

void LateUpdate() is called after Update and FixedUpdate are called

void OnEnable()/OnDiable() is called when the GameObject switches between enabled or disable.

void OnDestroy() is called when the GameObject is destroyed

void OnGUI() is called when rendering and allows you to use the Unity3D drawing APIs through here

Well, not sure where to really begin as there are quite a lot of “holes” and weak spots for this engine. I will just mention the main 2. The first, mainly for games that use C#, is that anyone is able view the source code or just temper with your scripts. Programs like DnSpy just allows the attacker to edit scripts and even view the whole collection of scripts your game has. Meaning, if you made a game using Unity3D without any protection, i am just able to open up DnSpy and view the scripts used and just edit it to draw my own things like player ESP and so on. This is done by locating the “Assembly-CSharp.dll” and “Assembly-CSharp-firstpass.dll”form your game files and just editing from there. The second weakness would be C# Mono Injection. Why is this bad? Imagine someone being able to just “inject” or run their own scripts on your game. The usual way this is done is by just loading or creating a GameObject and adding components such as the attackers’s scripts. This forces the game to run the script and basically giving the attacker control. They can also access other namespaces / scripts in your game. So if you have an built in anti cheat, the attacker is most likely able to destroy or dispose it. There are really no ways of protecting your game from these two methods. Best way is just to make it harder. Things like setting up callbacks for assembly file creation and so on. Even with all this, it still can be bypassed.

Unreal Engine

This game engine are for people who knows what they are doing. In my opinion, this engine is extremely powerful and is basically able to make or do anything you pretty much like. Just make sure to optimize it. This engine uses two ways of bringing things to live. Programming / Coding and Templates. Programming is basically just coding in C++ and templates is something like a drag and drop and make your own instruction type. If you just started, use template, if you know coding, use C++. Like Unity, Unreal also has an Asset Store, however, in my opinion, i feel like everything is either overprices or its not there. Unlike Unity, it does not really offer everything. But, the things sold in the Unreal Engine are of a much better quality. Better models, better made scripts and so on. Unreal Engine’s community is big, but not really helpful, i would say. Not in a bad way, but if you have a problem, you can either never find it or be lucky enough to find it. This engine is usually used by big developers, people like BlueHole ( PUBG ) or Epic Games themselves ( Fortnite ). You rarely see indie game developers using this engine.

Well, lets just recap a bit to understand the problems you might come across. Things like C++ and the Asset Store makes it extremely annoying to someone who is starting out. The Lack of support and the lack of materials you can purchase if you are not a model designer would cause a big headache. Other then that, i was not really able to find a exploit that was big to be able to gain control of the game, like the method mentioned before. However that does not mean its a 100% bulletproof engine. Last year alone, cheaters were able to abuse .pak files in PUBG to be able to see through walls or just walk through them. This method allowed cheaters to basically change some textures or just remove them. Things like changing player’s texture and material to something which is bright to be easily spotted. Other than that, i have seen cheaters who made an “Universal” SDK and so on for the engine, this should not be a big problem either ways.

Construct

This is the best engine to use for beginners. Simple and easy to use. Only downside is that the engine is not really powerful and is meant for 2D games mostly. Things like Tower Defense, Platformer and so on. This game engine also does not require coding or programming knowledge. Meaning, you can dive in without knowing anything about coding. Why? Reason being they use something similar to templates in unreal engine. All you have to do is drag and drop instruction that the object follows. Things like, moving when a key is pressed and so on. This comes with alot of problems as well. I never really got to see an Asset Store like the rest of the engines covered. Meaning, everything has to be either bought somewhere else or bought by yourself. Support also lacks, however, you should not have any problems using this engine. It’s just too simple to screw up, and most of the problems are just minor. Other than that, the engine is quite a good place to dive in if you are looking to make some 2D games or just simple games.

For the time i was using this engine, i was not really able to find major security risk. The only downsides i really found is of the lack of a real community or support. They do have a forum which you can use if you really need to and a Lack of an Asset Store. Other than that, that would be it.

CRYENGINE

I will be quite honest with you, i have only ever used CryEngine once. After seeing how amazing Crysis and Hunt: Showdown was. Well, the engine is somewhat similar to Unreal Engine, powerful yet not too complex. CryEngine also includes their very own Asset Store which has many things to choose from. However, i personally feel like there is a lack of support. CryEngine offers C++, C# and lua to make scripts in. This makes the engine very flexible. If i am not wrong, you are also able to switch or add your own language to program in. Other than that, the engine is pretty good, they offer some good starting assets and maps which you can learn from and there are also many videos to also learn from. However, i wouldn’t say that this engine is simple to use, it would take some time for you to get used to and it definitely will not take a few days to master.

If i am not wrong, you are able to exploit the .pak files just like how you could in Unreal Engine. Other than that, i was not really able to find major risks or problems for this engine. Note to yourself that, the engine is not really that easy to master and how there is somewhat a lack of support. Other then that, everything seems fine

Leave a Reply