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
π 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;
}
}
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 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
π 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;
}
}
My opinion it is necessary to separate Engine HUB from Game HUB. Something is missing in the development environment itselfβ¦
UE has a very rich choice to create a project and itβs very pleasing!
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);
}
}
}
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β¦
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
π 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 Spatialfunc _ready():
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
It is the only Engine that has many interface languages, including Ukrainian. Too many objects can significantly slow down the Editor.
Godot has C # support only in the mono-edited version. But nothing prevents you from adding your favorite programming language to the Engineβ¦
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 WindowPropertiesclass MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
props = WindowProperties()
props.setCursorHidden(True)
base.win.requestProperties(props)hideMouse = MyApp()
hideMouse.run()
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:
- IDE: Visual Studio or Visual Studio Code or somethings else;
- Packages Manager: vcpkg;
- Build Manager: CMake;
- Shell: PowerShell.
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 ShowBaseclass 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.
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