An OpenGL RTS game engine written in C
Permafrost Engine is an OpenGL 3.3 Real Time Strategy game engine written in C.
It is made in the image of old classics, but incorporating some modern ideas.
EVERGLORY is the flagship game developed using Permafrost Engine.
Download the free (or donate what-you-want) demo on itch.io or on Steam. With the demo you also get access to all the scripts and assets powering the gameplay to learn from and modify as you wish.
All dependencies can be built from source and distributed along with the game binary if desired.
Python is built with a subset of the default modules and packaged with a trimmed-down stdlib.
git clone https://github.com/eduard-permyakov/permafrost-engine.git
cd permafrost-engine
make deps
(to build the shared library dependencies to ./lib
)make pf
Now you can invoke make run
to launch the demo or make run_editor
to launch the map editor.
Optionally, invoke make launchers
to create the ./demo
and ./editor
binaries which don’t
require any arguments.
The source code can be built using the mingw-w64 cross-compilation toolchain
(http://mingw-w64.org/doku.php) using largely the same steps as for Linux. Passing PLAT=WINDOWS
to the make environment is the only required change.
The compliation can either be done on a Linux host, or natively on Windows using MSYS2 (https://www.msys2.org/).
git clone https://github.com/eduard-permyakov/permafrost-engine.git
cd permafrost-engine
make deps PLAT=WINDOWS
make pf PLAT=WINDOWS
make launchers PLAT=WINDOWS
Alternatively, a Visual Studio 2022 solution file is provided in the root directory of the project.
Permafrost Engine is licensed under the GPLv3, with a special linking exception.
Follow the development of Permafrost Engine and EVERGLORY on YouTube.
Indie RTS Devlog #1: Introducing Permafrost Engine
Indie RTS Devlog #2: Saving The Python Interpreter
Indie RTS Devlog #3: Group Pathfinding
Indie RTS Devlog #4: Fog of War
Indie RTS Devlog #5: Performance Optimization
Indie RTS Devlog #6: Fibers, Async Jobs
Indie RTS Devlog #7: Main Menu UI, Loading Missions
Indie RTS Devlog #8: Python Tasks + Making Pong!
Indie RTS Devlog #9: Base Building
Indie RTS Devlog #10: Demo Gameplay
Indie RTS Devlog #11: Resource Gathering, Game Design
Indie RTS Devlog #12: Crafting Units
Indie RTS Devlog #13: Large Unit Pathfinding
Indie RTS Devlog #14: Projectiles, Big Battles
EVERGLORY - Official Trailer (2021 Indie RTS)
Indie RTS Devlog #15: Unit Formations
EVERGLORY (Indie RTS Game) - Pathfinding Showcase
Indie RTS Devlog #16: Land, Water, and Air
Indie RTS Devlog #17: Economy + NEW DEMO
Indie RTS Devlog #18: Improved Map Rendering
EVERGLORY: Teaser Trailer #2 [Indie RTS Game]
Comments or questions regarding the project or the source code? E-mail: [email protected].
Discuss EVERGLORY and its’ development on Discord. If you have a useful fix for a
non-trivial engine issue, feel free to make a PR. Be warned that I will scrutinize every patch to make sure it meets my
personal quality standards for the engine code. It you wish to evolve the engine in some way and want the changes to be
upstreamed, then do get in touch to discuss it.