Game Engines - Review & Comparison

IRONKAGE
7 min readAug 14, 2020
Choosing a Game Engine

Lyrics

Sometimes we wonder: β€œWhat to choose?” πŸ‘¨πŸ»β€πŸ’»πŸ’‘
This question also applies to Game Engines. I will say at once:

There is no better or worse Engine β€” there is a Game Engine that will meet your knowledge and requirements! Choosing a Game Engine can make it difficult for you or vice versa β€” to complicate the development of the Game…
I wrote this article to show what to focus on and where to seek help.

Unity β€” Screensaver

Unity

πŸ€ Info: Popular Game Engine with best documentation, have best examples and Asset Store. This Engine support a lot platforms. Now Unity use C# and Visual Program Language.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
β›” Minuses: 1️⃣
Large community β€” not guaranteed to solve all your problems, 2️⃣ should pay for additional features, 3️⃣no Ukrainian localization.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
🍭 Links: 🧻
Documentation🧻 πŸ’ŽAsset StoreπŸ’Ž πŸ’©CommunityπŸ’©
β€’β€’β€’β€’β€’β€’β€’πŸ‘©πŸ»β€πŸŽ“
StudyπŸ‘¨πŸ»β€πŸŽ“ 🎁Licence🎁 🍴GitHub🍴 🧿Discord🧿 ⚑Engine⚑
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
πŸ”¨ Example:
Hide mouse cursor from Game window πŸ‘‡πŸ»

// C# Code:
using UnityEngine;
using System.Collections;

public class CursorScript : MonoBehaviour
{
void Start()
{
Cursor.visible = false;
}
}
Unity β€” 1️⃣ Main Menu, 2️⃣ Engines Control, 3️⃣ Standard Interface

Quite a simple and clear Unity HUB interface, it’s a pity that I can’t install the Black Theme, which is present in the Editor of the 2020 version.

Unity β€” New Project

Unity has a poor choice at the project stage, I would like a better…
Perhaps, of course, this is due to their vision β€” the components of the Engine set the tone for the whole project…

Unreal Engine β€” Screensaver

Unreal Engine

πŸ€ Info: Popular Game Engine for Game Consoles, have good examples and Asset Store. This Engine promises to extract all the juices from the 9th generation Game Consoles (PS5 and XBox Serie X). Now UE use C++ and Visual Program Language.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
β›” Minuses:
1️⃣ The Windows version is linked to the App Epic Store, 2️⃣no Ukrainian localization.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
🍭 Links: 🧻
Documentation🧻 πŸ’ŽAsset StoreπŸ’Ž πŸ’©CommunityπŸ’©
β€’β€’β€’β€’β€’β€’β€’πŸ‘©πŸ»β€πŸŽ“
StudyπŸ‘¨πŸ»β€πŸŽ“ 🎁Licence🎁 🍴GitHub🍴 🧿Discord🧿 ⚑Engine⚑
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
πŸ”¨ Example:
Hide mouse cursor from Game window πŸ‘‡πŸ»

// C++ Code:
#include "GameFramework/Controller.h"
{
AController* PC = GetController();

if (PC)
{
PC->bShowMouseCursor = true;
PC->bEnableClickEvents = true;
PC->bEnableMouseOverEvents = true;
}
}
Unreal Engine β€” 1️⃣ Main Menu, 2️⃣ Engines Control, 3️⃣ Standard Interface

My opinion it is necessary to separate Engine HUB from Game HUB. Something is missing in the development environment itself…

Unreal Engine β€” New Project

UE has a very rich choice to create a project and it’s very pleasing!

CryEngine β€” Screensaver

CRYENGINE

πŸ€ Info: Not popular Game Engine for Game Development, have nice examples and Asset Store. The Engine will be an interesting alternative for creating Games, you know what cool Games was be created on it. Now CryEngine use C++ with/without Lua or C# and Visual Program Language.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
β›” Minuses: 1️⃣
Service support, 2️⃣ poor documentation, 3️⃣ no Ukrainian localization.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
🍭 Links: 🧻
Documentation🧻 πŸ’ŽAsset StoreπŸ’Ž πŸ’©CommunityπŸ’©
β€’β€’β€’β€’β€’β€’β€’πŸ‘©πŸ»β€πŸŽ“
StudyπŸ‘¨πŸ»β€πŸŽ“ 🎁Licence🎁 🍴GitHub🍴 🧿Discord🧿 ⚑Engine⚑
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
πŸ”¨ Example:
Hide mouse cursor from Game window πŸ‘‡πŸ»

// C++ Code:
#include <CryInput/IInput.h>
#include "HardwareMouse.h"
void CHardwareMouse::Hide(bool hide)
{
m_hide = hide;
if (m_calledShowHWMouse && gEnv->pInput)
{
bool bShow = m_shouldUseSystemCursor &&
((m_iReferenceCounter > 0 && !m_hide) ||
(m_allowConfine == false));
if (bShow != m_bPrevShowState)
{
m_bPrevShowState = bShow;
gEnv->pInput->ShowCursor(bShow);
}
}
}
CryEngine β€” 1️⃣ Main Menu, 2️⃣ Engines Control, 3️⃣ Standard Interface

I would like to see the news when starting Engine HUB, and not additionally switch to learn something new. Here I was struck by the possibility of completing the Engine. There is a lack of access to the Asset Store in the development environment…

CryEngine β€” New Project

Crytek a interestingly made that when creating a Project, you shall choose a programming language. If you want to use Lua β€” you should look closely at C++. Although do as you know…

Godot β€” Screensaver

GODOT

πŸ€ Info: Fast-growing Game Engine! A new version is planned for release, which will bring many innovations, especially for creating 3D Games. Easy to learn. Now Godot use NativeScript(C++) or GDScript(like Python) or C# and Visual Program Language.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
β›” Minuses:
1️⃣ No HUB to control existing versions of the Engine.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
🍭 Links: 🧻
Documentation🧻 πŸ’ŽAsset StoreπŸ’Ž πŸ’©CommunityπŸ’©
β€’β€’β€’β€’β€’β€’β€’πŸ‘©πŸ»β€πŸŽ“
StudyπŸ‘¨πŸ»β€πŸŽ“ 🎁Licence🎁 🍴GitHub🍴 🧿Discord🧿 ⚑Engine⚑
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
πŸ”¨ Example:
Hide mouse cursor from Game window πŸ‘‡πŸ»

# GDScript Code:
extends Spatial
func _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
CryEngine β€” 1️⃣ Main Menu, 2️⃣ Standard Interface

It is the only Engine that has many interface languages, including Ukrainian. Too many objects can significantly slow down the Editor.

Godot β€” New Project

Godot has C # support only in the mono-edited version. But nothing prevents you from adding your favorite programming language to the Engine…

Panda3D β€” Check Version

Panda3D

πŸ€ Info: Disney created Online Games on this Engine, then they transferred it to the university, so it is slowly but surely evolving. Now Panda3D use Python or C++ without Visual Program Language.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
β›” Minuses:
1️⃣ No Editor, 2️⃣ no Level Designer, 3️⃣ no Store of Assets, 4️⃣ no Ukrainian localization.
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
🍭 Links: 🧻
Documentation🧻 πŸ’ŽResourcesπŸ’Ž πŸ’©CommunityπŸ’©
β€’β€’β€’β€’β€’β€’β€’πŸ‘©πŸ»β€πŸŽ“
StudyπŸ‘¨πŸ»β€πŸŽ“ 🎁Licence🎁 🍴GitHub🍴 🧿Discord🧿 ⚑Engine⚑
βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–βž•βž–βž–βž—βž–βž–
πŸ”¨ Example:
Hide mouse cursor from Game window πŸ‘‡πŸ»

# Python Code:
from direct.showbase.ShowBase import ShowBase
from pandac.PandaModules import WindowProperties
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
props = WindowProperties()
props.setCursorHidden(True)
base.win.requestProperties(props)
hideMouse = MyApp()
hideMouse.run()
Panda3D β€” 1️⃣ Code in Visual Studio Code, 2️⃣ Run Game for Test β€œAvolition”

This Engine is perfect for learning pure programming β€” because you have to write a lot of code!

There are a couple of things that will improve your Game Development:

Panda3D β€” 1️⃣ New Python Project, 2️⃣ New C++ Project

This Engine is ideal for learning pure programming β€” because you need to write a lot of code. Two ways to create Projects from PowerShell:

Way of Python:

# Create Project Folder
new-item NewProject -itemtype directory -Force
cd .\NewProject\
# Create or Replace File with Blank Code
New-Item -Path . -Name "MyApp.py" -ItemType "file" -Force -Value "from direct.showbase.ShowBase import ShowBase
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
app = MyApp()
app.run()"
code . # Open Visual Studio Code
ppython MyApp.py # Run Blank Project

Way of C++:

# Create Project Folder
new-item NewProject -itemtype directory -Force
cd .\NewProject\
# Create or Replace File with Blank Code
New-Item -Path . -Name "MyApp.cpp" -ItemType "file" -Force -Value '#include "pandaFramework.h"
#include "pandaSystem.h"
int main(int argc, char *argv[]) {
PandaFramework framework;
framework.open_framework(argc, argv);
framework.set_window_title("My Panda3D Window");
WindowFramework *window = framework.open_window();
framework.main_loop();
framework.close_framework();
return (0);
}'

When you decide to use Panda3D to write C ++ code, you should set the settings according to this instruction.

Game Engines β€” Comparison

Conclusions:

There is no better or worse Game Engine β€” there are Just People 🀼

I hope it was informative for you and pushed you to create your own Game!!!

You can write your wishes, remarks or criticism in the comments or send to me personally. I want to see the best code for CRYENGINE and Unreal Engine πŸ˜‰

P.S. Emoji's β€” should not be associated with people!
P.P.S. If you liked this article, add me to friends and if possible β€” Support Me πŸ’³
πŸ‘½ Patreon or πŸ‘» PayPal

You can Π‘ontact Мe πŸ‘‰πŸ» LinkedIn //=// GitHub //=// StackOverFlow

--

--