I decided to try some game engines on Linux this weekend
Tags: gamedev
Published: 2020-12-08 07:13:45

I always wanted to try a few game engines to see what they're about. I don't know if I'll ever get a chance to become a game-developer; once you specialize into something, it becomes more difficult to escape it. It's both a blessing and a curse; everybody will come to you for your specialty, but they will treat you like a beginner if you even consider starting something else...   ¯\_(ツ)_/¯

And I do have some Windows machines around the home, but I rarely get to use them anymore.

#### Let's start with Source SDK

[Edit: 10th May 2021]
I just found out that you can run a lot of Steam tools with their Steam Play support for Linux. It's basically a Windows app being run on Linux via Proton (some Valve variant of Wine).

Since I love the [Half-Life game series](https://en.wikipedia.org/wiki/Half-Life_(series)), I decided to start with their Source SDK engine (made by Valve Software).

If you want to start from scratch with Source SDK, you pretty much just go to their wiki page: https://developer.valvesoftware.com/wiki/Source_SDK_2013

After going through some tutorials, I quickly got the gist of it... and I became a bit bummed. The Source SDK is pretty centric to making Half-Life mods, not necessarily games from scratch; you can make something neat just checkout [Golden Eye Source](https://github.com/goldeneye-source/ges-code) which is a good source of examples.
While the engine is not used only in the FPS genre, it seems to steer you in that direction.

That is Source 1.
And recently they have a Source 2 Engine. So, I thought: where is it? Where can I get it?
Turns out, you need to install DOTA 2, and do some bits.
See: https://www.extremetech.com/extreme/187723-valve-quietly-releases-source-2-engine-source-2-version-of-dota-2-and-new-hammer-map-editor

Oh, and the biggest bummer [for me] is: a lot of editing tools run under Windows (maybe Mac as well). Well, that's for Source 1 tools; maybe Source 2 tools will get a port to Linux or some way to get them on Linux.

#### Now let's look at Unreal Engine 4

I knew this engine was hyped. And I'm not one to care or be persuaded about hype.

I found this doc page about UE4:
https://docs.unrealengine.com/en-US/SharingAndReleasing/Linux/BeginnerLinuxDeveloper/SettingUpAnUnrealWorkflow/index.html

If you read through it, you probably get hit by an awesome fact [which I wasn't hit by right away]: Unreal Engine 4 gives you their entire source-code for the engine, editor, everything.

You create an account on their page, you login with your Github, and you get added to a private group (of about ~300k people) with access to the UE4 source code.

Now, obviously this still means the engine and source and everything is theirs [i.e. belongs to Epic Games]. But I rarely [if ever] see companies willing to show you their complete internals like this.
Naturally, the reason they did this is to be a bit more competitive with Unity and other game engines, but still... you can start submitting Pull Requests to their engine right away.

If you follow their doc-page for Linux, you will spend about half your day building UE4 on Linux. There are no pre-built installers/stuff. But for me that's great, because I love building stuff from source. And like their page says, you will need at least 100 GB free on your HDD for this.

After that's done, starting UE4 also takes 5 minutes the first time. It compiles all sorts of shaders and initialization stuff, and then you can start using it.

#### Quick run through Unity

Unity is way easier to install on Linux. You download some binary installer for Linux, run it, download an SDK/editor for Linux, and you can start using it.

Unity runs smoother than UE4; it won't kill your laptop's fan (like UE4).

#### Some conclusions

I ran through some Youtubes and articles around the web comparing these game engines.

Turns out, there is Godot which is free, open-source and better for 2D games than 3D games. I may try that later; I mean a weekend has 2 days, and I also need to spend some time with my family, not just sit in front of the computer all day.

I haven't tried to build any games yet, with any of these engines.
I just ran some templates (for all 3 engines).

Naturally, the most fun I've had, was with UE4, but only because they don't have an installer for Linux, and I had to build it. Otherwise, it wouldn't have been as fun.


Yeah... that's it