Games

Free and Open Source Game Engines for Developing Linux Games

This article will cover a list of free and open source game engines that can be used for developing 2D and 3D games on Linux. There are numerous such game engines, some of them have been in development for decades. This article, however, will cover only those that are currently active in development. This article will also exclude game engines that allow you to create a specific type of game only (FPS only game engines for example) and ports of commercial game engines that require you to have original game files. In short, the article will feature those game engines that allow you to create a variety of different games with flexibility.

Godot

Godot is a free and open source game engine that allows you to create 2D and 3D games for a number of different platforms including game consoles, personal computers and mobile devices. It comes with a liberal license that allows you to monetize your game in numerous ways without much restrictions. It is one of the fastest growing open source game engines available out there today, with good documentation and ever growing community. Some people also term it as the best open source alternative for the proprietary Unity game engine.

Godot comes with a visual game editor having a built-in scene, code and script editor. Other main features of Godot include predefined and user defined nodes, live editing, pipelines, custom tools, shader editor, post-processing effects, advanced lighting, tile based map editor, predefined and user made animations, advanced debugging tools, built-in profiler, multiple scripting languages and so on.

You can download the latest version of Godot game engine for all major Linux distributions from here. Official documentation is available here.

Pygame

Pygame is a free and open source game engine written in Python programming language. Based on the SDL library, it allows you to create 2D games and export them to numerous desktop and mobile operating systems, though it lacks native support for exporting games to modern mobile operating systems like iOS and Android. You can create builds for these mobile operating systems using some third party tools. Pygame doesn’t have a visual game editor and everything has to be written using a code editor only. Other main features of Pygame include support for multi-core PCs, basic support for 3D games, controllable main loop, custom inputs, sound management and so on.

You can download Pygame from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

Love2D

Love2D is a free and open source game engine written in Lua programming language. You can use it to develop 2D games for desktop and mobile operating systems, including Android and iOS. The Love2D game engine uses modules for processing and managing audio, events, fonts, graphics, images, joystick input, keyboard and mouse input, physics, touch input and the game window.

You can download Love2D from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

Ren’Py

Ren’Py is a free and open source game engine that allows you to create visual novels for desktop and mobile operating systems, including Android and iOS. Even though it is primarily meant for creating visual novels, many developers have built simulation and RPG games using its main API, Python scripting and its own custom scripting language used for creating dialogues and scenes. Ren’Py comes with a graphical application to manage your game project, though the code itself needs to be written using a text / code editor. Main features of Ren’Py include support for keyboard, gamepad and mouse inputs, periodic auto-saving, controls for rewinding, forwarding and skipping scenes, auto-play, jukebox style controllable music, built-in effects and transitions and so on.

You can download Ren’Py from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

jMonkeyEngine

jMonkeyEngine is a free and open source game engine that allows you to create 3D games in the Java programming language. Main features of jMonkeyEngine include an OpenGL renderer for 3D games, built-in physics engine, geometric shaders, networking engine, advanced lighting effects, GUI libraries for creating interfaces, post-processing tools, 3D sound effects, particle effects, official and third party add-ons, built-in voxel engine and so on.

You can download jMonkeyEngine from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

libGDX

libGDX is a free and open source game engine that allows you to develop 2D and 3D games for desktop and mobile operating systems, including Android and iOS. Based on the Java programming language, libGDX is really popular among developers who create mobile games, especially for the Android platform. libGDX is designed in such a way that you can write code once to deploy the game on multiple platforms. It requires negligible, or no amount of platform specific code, thus reducing overall development time and resources. It includes numerous built-in methods for processing and managing audio, graphics, physics, networking and so on.

You can download libGDX from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

Panda3D

Panda3D is a free and open source 3D applications and game development framework, that allows developers to create games in Python and C++ programming languages. Supported by Disney, Panda3D features advanced API and beginners may not find it easy to use compared to other game engines mentioned in this article. However, it is an extremely powerful tool used in many commercial projects. Panda3D currently supports creating builds for desktop operating systems, with experimental support for creating “apk” files for Android platform. Other main features of Panda3D include an asset manager, integration with third party libraries, official and third party extensions, built-in profiler and so on.

You can download Panda3D from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

Amethyst

Amethyst is a free and open source game engine that allows you to develop 2D and 3D games for desktop operating systems. It doesn’t currently seem to support mobile operating systems, though a bug report is open for the same. Developed in Rust programming language, Amethyst describes itself as a “data-driven and data-oriented game engine”. It uses Entity Component System (ECS) to create and manage game logic and structure, allowing better control for multi-threaded projects. Amethyst encourages developers to write reusable code, facilitating faster prototyping and reduced development time.

You can download Amethyst from here or from the official repositories of the Linux distribution you are using currently. Official documentation is available here.

Conclusion

Many free and open source engines support Linux platforms these days. This article has mainly listed only those game engines that are active in development and feature relatively liberal licensing schemes for creating both free and commercial games.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.