Graphics and Gaming

Last Updated: 2023-09-02

Modern graphics and compute APIs

  • Vulkan: Khronos Group, to unify OpenGL and OpenGL ES (Embedded Systems), and OpenCL will be merged into Vulken too. Written in C. Based on AMD's Mantle API. AMD donated Mantle API to Khronos. Development of Mantle API is discontinued. Can be used in Android.
  • Metal: Apple's API, replacing OpenCL and OpenGL. Written in C++14 and can be invoked in Swift and Object-C.
  • DirectX: Microsoft. Direct3D is a subset of DirectX. DirectX 11 and 12 implementations are now based on Vulkan.

Web Standards

  • WebGL: JavaScript API; fully integrated with other web standards; render 2D/3D graphics in browsers. Designed and maintained by Khronos Group. E.g. DECK.GL (https://deck.gl/) is based on WebGL to visualize large-scale datasets.
  • WebGPU: a future standard; JavaScript API; not a direct port of any existing native API, but based on concepts in Vulkan, Metal, and Direct3D 12.

Shading Languages

Shading language: https://en.wikipedia.org/wiki/Shading_language

Such language forms usually consist of special data types, like "vector", "matrix", "color".

GLSL: https://www.khronos.org/opengl/wiki/OpenGL_Shading_Language

Game Engines

The most popular:

  • Unreal Engine: by Epic Games.
  • Unity: written in C++, developers use C#

Other engines:

  • Frostbite Engine: EA's in-house engine. Games: FIFA, Need for speed, etc. Mass Effect used it for Andromeda but went back to Unreal Engine after that.
  • REDengine: CDPR's in house engine, used for Witcher 2, Cyberpunk 2077. But CDPR is transitioning to the Unreal Engine for the next Witcher games.

Game Stores

  • Steam (Valve)
  • Epic Games
  • Ubisoft Connect
  • Origin (EA)
  • GOG Galaxy

Cloud Gaming

  • Nvidia GeForce Now (free with limits and $9.99/mo)
  • Xbox Game Pass Ultimate ($15/mo)
  • PlayStation Now ($9.99/mo)
  • Amazon Luna ($6.99/mo)

Gaming on Linux

Proton can port Windows games to Linux. Developed by Valve, a fork of wine.

Source code: https://github.com/ValveSoftware/Proton

Check if your Steam game can work on Linux: protondb.com

SteamOS is actually based on Linux.


Stadia was built on Debian Linux servers and Vulkan is their graphics API.

Open Sourced Games

  • OpenTTD
  • OpenRCT2