Eagle
A 2D/3D Game Engine for Crystal github.com/joeyrobert/eagle.cr

Eagle 3D fly-through example

Eagle is a 2D and 3D game engine for the Crystal programming language. It pairs the immediacy of LÖVE (load, update, draw) with the structure of Godot (a scene tree, nodes, signals and input actions) once a game grows past a single file.

Eagle's only native dependencies are SDL2 and OpenGL 3.3. Everything else, from image and audio codecs to fonts, physics, UI and the 3D renderer, is written in Crystal. Games compile to a single executable with their assets embedded, and the same games also compile to WebAssembly and run in the browser.

Features

  • 2D: batched sprite and shape rendering, TrueType fonts, particles and 2D physics
  • 3D: meshes, materials, lights, shadows, a procedural sky and 3D physics
  • Audio: a built-in mixer, Ogg Vorbis and WAV support, and 3D spatial audio
  • UI and input: a UI toolkit, keyboard, mouse, gamepad and touch input, and an input action map
  • Everywhere: installers for macOS, Linux and Windows, plus a browser build of every example

The project ships with 25 example games, including chess, a platformer, a roguelike, a driving game, a voxel island maker and a portal puzzle game. They're all playable at joeyrobert.github.io/eagle.cr. I wrote about how it was built in Eagle: A Crystal-Native 2D/3D Game Engine.

Crystal OpenGL SDL2 WebAssembly Game Development

Screenshots