Native Linux Games

Saw this today and thought some people might find it interesting.
Not an endorsement, just a FYI.

https://www.howtogeek.com/best-linux-game-stores-for-native-linux-games/?user=c2doYXRzdEBnbWFpbC5jb20

5 Likes

Hi Howard,
I suppose a native Linux game is one that do es not require an emulator.?
Why dont people install games from source code? If you compile code in your machine it will be more efficient.
Do what Gentoo does. Games are one case where compiling
may help.

Neville, a lot of modern games are very complex. Installing these games from source code would be very complicated and take a long time. I don’t think its feasible for the average person to do it. Many of these games are >10 GB in size. Doom Eternal with both expansions, for example, was 95 GB in size. I imagine you would need a computer with a lot of RAM to build that game if you could even get your hands on the source code, for example.

You are right about a “native Linux” game not requiring an emulator. Most games played on Linux use either Proton or Wine. The games that are played with Proton or Wine are compiled to run on Windows. However, as a result of optimizations Proton and Wine make, and the fact that Linux just has less processes running it in general means that often Linux can run these games better than Windows.

Using Doom Eternal as an example, I could only run it on medium settings on Windows. When I switched to Linux, I was able to run on max settings. This is using Proton to allow the game to run on Linux.

5 Likes

I think most of that 10Gb would be static data, not code.

1 Like

Steam Plan and Proton made a lot of developers lazy…

10 years ago - there were probably more Linux native games released each year, than today…

I’ve played some serious (sic) top shelf titles as NATIVE linux games :

Serious Sam 3
Left 4 Dead 2
Borderlands 2
Portal 1
Portal 2
The Talos Principle
Borderlands - The Pre-Sequel
Cossacks 3 (it’s actually rubbish - so flaky it’s barely playable)
Path of Titans (dinosaur “emulator” - but also other non dino paleo beasts)
Cities Skylines
Commandos 2
Shadow Tactics : Blades of the Shogun
Stellaris
Surviving Mars
Valheim
Northgard
Zombie Night Terror
Planetary Annihilation

Never got into turn based RTS games, but many of the Civilization series are available to run as native Linux binaries…

And Nev’s right - a lot of that data is game data, maps, sprites, 3D models, textures… All that’s required is to have a native engine that can run the game logic using the same binary data (i.e. maps, models, textures, logic and AI).

Things like Lutris, support open source Linux native game engines to run non-Native Windows games - e.g. After Quake III, ID software got taken over by Bethesda (f–k them!) and they no longer ported their games to Linux. e.g. take “Rage” - it was originally developed by the ID software guys, to be cross platform, and there’s even some Linux stuff buried deep inside it - and - the servers for most Bethesda multiplayer games, run on Linux.

So - I can play Quake 4 on Lutris, using an open source engine, using the legit Windows ONLY copy I bought on Steam… I do that from time to time, buy the Windows only version of a game, then use Lutris to provide an opensource engine for it.

BTW - that Quake III RTX (with raytracing) is a piece of crap - it loads, but every 15-30 seconds the keyboard stops responding - unplayable…

3 Likes

Let me get this right.
Games have an engine, and data.
Are there any standards?.. Can you mix and match any engine with any data?
Or is that too simple?.. There may be other components or maybe varieties of engines or data?

Can someone please define what this games scene actually is? It has always been a mystery to me.

1 Like

When I play GTA (Grand Thief Auto) on my Xbox, one of the credits that come up is about a engine.
No idea what an engine does or how it works.

2 Likes

From Wikipedia:
Game engines are tools available to implement video games without building everything from the ground up. Whether they are 2D or 3D based, they offer tools to aid in asset creation and placement.

Sheila

1 Like

I will have to defer to one of the games experts here.
I think if you isolated the part of a heap of code that was all the control sequences , that would be its engine. The bit that drives its actions.
What would be left over would be all the program data. Not just stuff read from files, but also internal immutable data.

Not all programs separate things like that. Object oriented programs thoroughly muddle it.

1 Like

Nearly all games use an engine these days…

I think ID software started that trend…

ID software, like most game developers at the time, were experts in using assembler to optimise every bit of grunt from i386…

ID - ended up developing an “engine” to run Doom 1 and Doom 2, and they licensed that to other studios to do things like Hexen, using the Doom 2 “engine”… And then the same with the Quake engine, the Doom 1/2 engine was mostly 2D with sprites and 3D textured “walls” etc, but the Quake engine was completely 3D…

I guess an “engine” is something a bit like an interpreter, like the Java runtime, or whatever… But generally the engine interfaces with the CPU and GPU to do the optimised gaming on your hardware…

There’s heaps of them now :

  • Unreal (I think from Half Life)
  • Source (owned by Valve, used by games like Team Fortress and Left for Dead and L4D2)
  • Cry Engine (A Far Cry and Crysis)
  • and GTA 3 onwards, had its own engine. Someone recently developed a reverse engineered solution to that engine, and released it on github, but was very quickly issued a take down order by the owner of the IP.
  • I don’t remember what the current iteration of the old Quake / Doom3+ / Wolfenstein/Rage engine is called… ID software are a shadow of their former selves, after absorption into Bethesda… It just used to be “The Quake Engine” or the “Quake Arena Engine” (just wiki’d it - ID Tech 7 is the name of the engine currently - e.g. used by Doom Eternal).
  • Unity - this is a whole game development suite that quite a few indies use to develop games with small teams (and they recently caused some controversy when they hit their licensees with a massive increase in subscription price - or clauses limiting what they could do)
  • Godot - this is the main OSS game engine I’ve heard of - no top shelf titles I’m aware of exist…
1 Like

Unreal was made by Epic Games, originally for the Unreal Tournament series, then Gears of War. It got big as an engine other studios use with Unreal 3. Although there are some examples (such as the original Bioshock using Unreal 2.5, I believe)

You are correct here, but Half Life is the originator of the Source engine. Source was the original Half Life and Source 2 was Half Life 2. I imagine they used a different engine for Half Life: Alyx.

2 Likes

“A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs such as a level editor.”

So basically, these are combinations of libraries and tools to help people make games. For example, if you want to make a game, you probably don’t want to have to read up on how to handle music for your game to play it. You probably just want to provide it .mp4 or ogg vorbis files or whatever and then tell the game when to play which file.

You can still extend the features of the engine though. If you are making a rythmn game, suddenly you might care very much how the game handles music files, and in fact might need more control over them.

You can read more here:

1 Like

That might be closer to the truth… what an engine calls data may well be instructions.

In Physics an engine is a simulator.

The term needs clarifying

So really an engine is a developers toolchest?
A user might never fiddle with it, unless , like you say, they desire modifications.

So why the separation in userland? It seems one can mix and match engines and games, so a game is not really all of a game, it is part of a game? One needs an engine, which is like a specisl OS, to run a game?

Excuse my ignorence of games.

You don’t need the engine to run the game. You need the engine to build and compile the game. In the end, the game becomes just a .exe file with a bunch of other files in a folder.

I am also pretty certain you cannot “mix and match” engines. I don’t know what you mean by “mix and match engines and games”. Engines are engines and games are games. The phrase “mix and match games” doesn’t make sense, unless you just mean playing different games. Some games are made with different engines, but engines are a thing on the development side, not the user side.

3 Likes

I have a friend who has actually worked with multiple game engines. I am going to try to get him to join so he can contribute here.

3 Likes

At last, someone can explain it to me. . An engine is like a compiler or an interpreter.

So if I buy a game, do I get source code tbat I have to compile with some engine, or do they distribute compiled binaries?
and
If they distribute binaries, why do users talk about engines?

I thought the engine had to be present when you played the game … like an interpreter…
am I wrong there?

95-99% of games are distributed as binaries… AFAIK there are NO commercial games distributed as source code.

The only ones distributed as source are OSS games - like ummm - “0 AD” and probably Tux Cart - but - most users would probably install them as binaries… I’ve never tried to get the source for any OSS games myself. Not that I play them either - I’ve tried “0 AD” several times - and sometimes bash/zsh tries to autocomplete “apt install >TAB>” autocompletes “0ad” as its the “first cab off the rank”. The graphics of 0 AD look excellent - but - the AI on it is woeful… I’ve never finished a single game of it 'cause it gets boring… Note “0 AD” is a Real Time Strategy game like Age of Empires…

Pretty sure I.D. open sourced a whole bunch of their games, platformers like Commander Keen, and FPS shooters like Wolfenstein (the original from the late 80’s) and Doom 1, 2, maybe even Quake 1, but all the rest of their IP is owned by Bethesda. Note: ID founder, John Carmack, did a lot of the early development work for Doom 1 and 2 on a NeXt cube UNIX workstation (like what Tim Berners-Lee used to develop HTTP and HTML).

Some game engine specific libraries are usually distributed with the game binaries (e.g. as DLLs)… And most windows games use DirectX the engine/libraries need to talk to, and DirectX usually needs some version of Dot.Net installed too…

3 Likes

hey guys - i’m that friend. i have worked with unreal, untiy, godot, and two proprietary game engines to make games.

game engines are (usually) a GUI that sits on top of a framework to make games. usual functionality for them includes a model for class relationship, game-specific type classes, a shader renderer and helper, and a few other api’s (like audio from someone’s previous post, etc.).

the framework usually includes standardized methods that will be called

  1. upon each instantiation of a class,
  2. every frame in the game, and
  3. once on a standardized clock.

these are pretty much universal these days, and these three work together to give consistency, animation, and regularity in speed no matter how fast the computer is running, respectively.

for example, if i have a jumping character then instantiating the player script would also instantiate jump as its child class(1). jumping would hand over control to that class where it would queue the animation for the jumping character and play it at whatever framerate your computer can handle(2). the jump is affected by physics (push force down = body go up; gravity brings back down), and those physics are handled on a specific standardized clock so gravity isnt heavier/lighter depending on your framerate(3).

game engines usually specialize in a specific type of game or specific release platform, everyone has their own niche. there are many, many game engines out there. a lot of them are commercially available, but even more are proprietary ones that are held as IP by companies (for example, if you play paradox’s EU, CK, Victoria, or HOI series, you will see a tag for the Clausewitz engine; paradox’s proprietary engine). you cannot compile a game without the appropriate engine for that game (or a reverse engineered compiler for that engine).

7 Likes

Thank you, Steve! That is pretty close to what I thought. Of course, you have much more experience hence why I asked you to come!

To maybe make this a bit more like what people here would be used to, from what I have gathered, a game engine is like a combination of libraries, a framework and a compiler. This is all wrapped up in a GUI so you can better use all of the resources the game engine provides to you.

You mention a reverse engineered compiler for an engine, are you aware of such a thing existing? It makes me think of the DOOM source ports, but I think those are a bit different.

1 Like