Mindustry is a production-ready tower defense / real-time strategy game with factory automation, built in Java using the custom Arc game framework. The codebase implements a full game loop: real-time simulation of blocks (conveyors, turrets, drills, reactors, logic processors), units with AI and abilities, procedural planet generation, multiplayer networking, a map editor, and a campaign progression system. The architecture is heavily modular: an entity-component system (ECS) provides composable unit behaviors; annotation processors (@Struct, @Remote, @EntityDef, @Load) generate serialization, network packets, and texture loading code at compile time; a block hierarchy with drawer, consumer, and ability interfaces enables data-driven content; and a versioned save system supports long‑running campaigns. The project includes dedicated tooling (icon conversion, map fixer, script binding generator) and supports modding via jar/zip loading and JavaScript scripting (Rhino). It targets desktop (SDL/Steam), Android, iOS, and headless server platforms through Gradle multi-module builds.
FXGL is a mature, feature-rich game development framework for the Java Virtual Machine, built on JavaFX. It provides a comprehensive Entity-Component-System (ECS) architecture with integrated 2D physics (Box2D port), A* pathfinding, particle systems, animation DSL, input handling, networking (TCP/UDP), localization, mini-games, and a dialogue/cutscene system. The framework emphasizes rapid prototyping via a fluent DSL (Kotlin/Java) and includes extensive sample applications. It also offers developer tools like a dialogue editor, in-game profiler, and debug console. While primarily a 2D engine, it includes basic 3D support. The codebase is well-structured with modular Maven modules, extensive unit tests, and a service-oriented design.
This repository is a large, modular C++ game engine with a fully integrated editor. The engine core provides a world/component architecture, reflection-driven serialization, resource management, a task system, and a render abstraction layer with DirectX 11 and Vulkan backends. Runtime features are delivered as plugins: Jolt physics, FMOD/MiniAudio audio, RmlUi UI, particle effects, animation graphs, AI navigation, procedural generation, terrain, and OpenXR support. The editor is a Qt-based multi-process application: a host editor process communicates with a separate engine process over IPC, mirroring document objects into a live world for preview and manipulation. Asset managers turn imported files such as meshes, textures, skeletons, animation clips, sound events, and UI documents into versioned engine resources. Sample game applications and extensive unit tests demonstrate the runtime API and provide a working baseline for engine consumers. The codebase is production-oriented rather than research-oriented: there are no notebooks, data pipelines, or ML artifacts. Instead, it is an application and framework monorepo with strong engineering discipline visible in its consistent component/manager patterns, plugin registration conventions, and resource lifecycle management. The custom RTTI/reflection system underpins serialization, editor property grids, undo/redo, and scripting, making the engine highly data-driven. However, the code is macro-heavy and some areas, especially editor plugins, repeat near-identical boilerplate patterns across many asset types. The project is actively maintained, with recent commits, CI workflows, and a large third-party dependency set that is mostly bundled in-tree; some bundled libraries and platform-specific paths show moderate drift but not abandonment.
Dora SSR is a production-grade cross-platform game engine designed for rapid development directly on target devices (mobile, desktop, web). The engine is a monolithic C++ core that provides 2D/3D rendering (bgfx), physics (JoltPhysics, PlayRho, Box2D), audio (SoLoud, libopenmpt), animation (Spine, DragonBones), UI (Yoga layout), and a full scene graph. It exposes scripting via multiple languages: Lua (with a custom binding generator), TypeScript (compiled to Lua via a vendored tstl fork), WebAssembly (via wasm3), Rust (via FFI), and C# (via P/Invoke). A built-in Web IDE (React/Monaco-based) allows coding and debugging from a browser on the same network. The engine also includes an AI coding agent with memory, skill tools, and preview session management, integrated into the IDE workflow. Over 50 CI workflows build for Android, iOS, Windows, macOS, Linux, and Web (Emscripten).
OGRE (Object-Oriented Graphics Rendering Engine) is a mature, production-grade 3D rendering engine written in C++ with extensive cross-platform support. The codebase implements a modular plugin architecture with render system backends for Direct3D 9/11, OpenGL (legacy, 3+, ES2), Metal, Vulkan, and a software Tiny renderer. Core modules include scene management, material/shaders, resource handling, animation, particle systems, and compositor framework. Optional components provide real-time shader generation (RTShaderSystem), automatic mesh LOD generation, terrain rendering, volume rendering, world paging, and a 2D overlay system. The repository also includes Python bindings, sample applications, fuzz testing, and content pipeline tools (exporters for Maya, Milkshape, Wings3D). The architecture follows design patterns such as Singleton managers, Factory-based extensibility, and a work queue for background loading. Despite its age and size, the engine remains actively maintained with recent commits, CI/CD pipelines, and support for modern graphics APIs. Notable technical debt includes legacy render backends, deprecated APIs, and some tightly coupled subsystems.
ggez is a lightweight, cross-platform 2D game framework for Rust, inspired by LÖVE. It provides a comprehensive set of subsystems for graphics, audio, input, filesystem, and timer management, all accessible through a central `Context` object. The framework abstracts over `winit` for windowing and events, `wgpu` for GPU rendering, `rodio` for audio playback, and `gilrs` for gamepad support. The architecture is modular, using sub-contexts (e.g., `GraphicsContext`, `AudioContext`) that can be individually accessed via `Has`/`HasMut` traits, allowing for custom context composition. The graphics pipeline supports 2D and optional 3D rendering (behind a feature flag) with shaders, meshes, images, instanced drawing, and text rendering via `glyph_brush`. The filesystem uses a virtual filesystem (VFS) layer with physical directories and zip archives, and configuration is handled via TOML serialization. Key entry points include `ContextBuilder` for initialization, `EventHandler` trait for the game loop (with `update`, `draw`, and input callbacks), and the `event::run()` function to start the application. Data flows are event-driven: user input is collected by `winit` and forwarded to the event handler, while rendering commands are batched and submitted to the GPU each frame. The framework also includes built-in coroutines for asynchronous tasks without futures. The repository contains over 40 examples demonstrating all major features, from simple drawing to complex 3D scenes and shader effects. ggez is actively maintained with a stable API, though some parts (e.g., 3D support, coroutine implementation) are less mature. The codebase demonstrates good engineering practices: builder patterns, resource caching, buffer sub-allocation, and a clear separation of concerns. It is suitable for hobby game development, educational projects, and rapid prototyping. The heavy reliance on evolving crates like `wgpu` and `winit` introduces some technical drift, but the framework keeps pace with updates.
UZDoom is a modern, feature-rich source port for Doom-engine games, forked from GZDoom. It is a monolithic game engine application that provides software and hardware-accelerated rendering (OpenGL, Vulkan, GLES), a full audio subsystem (ZMusic) supporting MIDI, tracker modules, and chip emulation, a custom GUI toolkit (ZWidget) for the launcher and in-game menus, a scripting engine (ZScript/ACS) with a Debug Adapter Protocol (DAP) server, and a resource filesystem. The codebase is large and complex, with extensive third-party library vendoring (FreeType, HarfBuzz, Abseil, asmjit, etc.) and multiple rendering backends. It is actively maintained with recent commits and CI pipelines. While the architecture is well-structured with clear subsystem boundaries, the sheer volume of vendored code and platform-specific implementations introduces medium technical drift. Several components (ZMusic, ZVulkan, ZWidget, DAP debug server) are self-contained and could be extracted for reuse in other projects.
macroquad is a Rust game engine and graphics library inspired by raylib, providing a simple, immediate-mode API for 2D and 3D rendering, audio, input handling, and UI. The codebase is structured as a monolithic core library with several subcrates (particles, tiled, profiler, physics-platformer, macroquad_macro) that add specialized functionality. The architecture centers on a single-threaded game loop orchestrated by the `#[macroquad::main]` proc macro, with drawing batched via an internal OpenGL abstraction (miniquad). Key data flows include texture and font loading, immediate-mode UI widget rendering, and an experimental scene/coroutine system for game logic. The library is cross-platform (Windows, Linux, macOS, Web, Android, iOS) and emphasizes minimal dependencies and ease of use. While the core is tightly coupled, several subcrates and subsystems are well-encapsulated and demonstrate high craftsmanship.
VisualPinball.Engine is a comprehensive pinball simulation engine and Unity package for authoring and playing virtual pinball tables. It provides a complete pipeline for importing Visual Pinball (.vpx) files, generating 3D meshes and physics colliders for every playfield element (bumpers, flippers, ramps, rubbers, targets, etc.), and running a Burst-compiled physics simulation with collision detection, flipper mechanics, nudge, and game logic wiring (switches, coils, lamps). The codebase is structured as a Unity package with extensive editor tooling (inspectors, manager windows, asset browser, packaging system) and a runtime player. It is not a standalone application but a library/framework that integrates deeply with Unity's editor and runtime. The architecture is modular, with clear separation of concerns: data classes with BiffAttribute-based binary serialization, mesh generators, collider generators, API interfaces for game logic, and a packaging system for distributing tables as .vpe files. The code demonstrates high craftsmanship in physics simulation, mesh tessellation, and binary format handling, though some legacy components and editor coupling exist.
Yave is a C++20 Vulkan-based real-time graphics engine paired with a custom ImGui-driven editor and a self-contained core utility library named `y`. The repository is structured as three layers: `y` provides reusable containers, math, concurrency, IO, serialization, and a test framework; `yave` implements the engine itself (Vulkan device/window management, frame graph, render passes, ECS, asset pipeline, physics, animation, and scripting); and `editor` is a full 3D scene editor application with workspaces, widgets, gizmos, importers, thumbnails, and undo/redo. The renderer supports deferred PBR, cascaded shadow maps, TAA, bloom, SSAO/RTAO, RTGI, atmosphere scattering, and tone mapping, and it runs through a declarative frame graph with automatic resource pooling and barrier insertion. The editor is not a separate toy: it provides asset browsing, glTF/image import, material editing, scene outliner, inspector, file system views, performance metrics, GPU profiling, and RenderDoc integration. The engine uses a modern ECS with component groups, async asset pointers, and a serialization framework that supports schema evolution. The `y` library is particularly notable for its clean, high-performance primitives: SSO strings, flat hash maps with SIMD probing, sparse component sets, dependency-aware job system, and a forward/backward-compatible binary serialization layer. Externally, it depends on Vulkan, VMA, Volk, Dear ImGui, JoltPhysics, LuaJIT, tinygltf, stb, Tracy, and spirv_reflect, mostly vendored. While the project is described by its author as a learning/pet engine, the code is generally well-structured and professionally organized. However, it is a single-author codebase with many `Y_TODO` markers, some stubbed platform paths, global device singletons, and an explicit compiler-dependent serialization format. Tests exist mainly for the `y` core containers and math, not for the engine or editor. The repository is active and uses current C++/Vulkan practices, but should be treated as an evolving research-quality engine, not a stable library.
Alimer is a modern cross-platform .NET 10 game engine featuring a modular architecture with Entity-Component-System (ECS) design, multi-backend graphics rendering (Vulkan, Direct3D 12, Metal), physics integration, audio subsystem, and asset pipeline. The engine provides a complete framework for game development with systems for rendering, physics, audio, input, and scene management. It follows a layered architecture where platform-specific implementations are abstracted behind clean interfaces, allowing developers to build games that run on Windows, Linux, and macOS. The codebase demonstrates strong engineering practices with well-defined boundaries between systems, extensible asset importing, and backend-agnostic graphics abstractions.
Kaiju Engine is a full-featured 2D/3D game engine written in Go, backed by Vulkan for rendering. It includes a built-in editor that runs as a game within the engine, providing workspaces for stage management, shader design, render graph editing, terrain painting, and content browsing. The engine core handles entity management, physics (custom Graviton engine with rigid bodies, constraints, and collision detection), audio (SoLoud via CGo), networking (UDP with reliability), UI (custom HTML/CSS markup engine with flexbox/grid layout), asset pipeline (glTF, FBX, textures, fonts), and cross-platform support (Windows, Linux, macOS, Android). The editor adds undo/redo history, action system with key bindings, Lua scripting, a Web API, and a plugin system. The codebase is a monorepo with heavy use of Go build tags for platform-specific code and feature flags.
Yamagi Quake II is a conservative source port of id Software's Quake II, focusing on offline and cooperative gameplay while maintaining compatibility with the original game data. The codebase implements a full client-server architecture with multiple rendering backends (OpenGL 1.x, OpenGL 3.x, software), OpenAL/SDL sound, input handling (keyboard, mouse, gyro), and network protocols. The game logic includes complete monster AI, weapons, items, and multiplayer support. The project is written in C and organized into client, server, game, and common modules, with platform-specific backends for Unix and Windows. It is GPLv2 licensed and community-driven.
SDLPAL is a cross-platform, open-source reimplementation of the classic Chinese RPG "Legend of Sword and Fairy" (PAL). The engine loads original game data (provided separately by the user) and reproduces the full game experience including battle systems, map exploration, menu interactions, script-driven events, and cutscenes. It is built as a monolithic C/C++ application using SDL for input, video, and audio, with optional OpenGL rendering and GLSL shader support. The codebase includes a comprehensive platform abstraction layer supporting Windows (desktop and UWP), Linux, macOS, Android, iOS, 3DS, Wii, Emscripten (web), and libretro. Audio is handled through a modular player interface that can use native MIDI, software synthesis (TiMidity, OPL emulation via MAME/DOSBox/Nuked cores), or compressed codecs (MP3 via libmad, Ogg Vorbis, Opus). The project is actively maintained, with recent commits and multiple CI workflows. While the core game logic is tightly coupled to PAL's data formats, many individual subsystems (configuration, audio players, OPL emulation wrappers, binary I/O, resamplers, font loaders, and decompression routines) are cleanly abstracted and could be reused in other projects with minimal adaptation.
Razix is a multi-platform 3D game engine built in C++ with a focus on modern graphics APIs (Vulkan, DirectX 12, OpenGL). It features a custom rendering hardware interface (RHI), a frame graph system for efficient render pass scheduling, an entity-component system (ECS) for scene management, and a built-in editor with ImGui integration. The engine includes a Lua scripting system, physics integration via Jolt Physics, and a comprehensive memory management layer with custom allocators. Despite its ambitious scope and active development, the codebase exhibits a mix of well-engineered subsystems and areas of legacy code (e.g., LIMBO_STATE). The project provides testing frameworks for both engine core and graphics pipelines, and maintains a dedicated game project ('Tanu') as a showcase.
Cocos Creator engine runtime is a cross-platform 2D/3D game engine framework written in TypeScript and C++. It provides a component-entity architecture with scene graph, rendering pipelines (forward/deferred/custom), physics (PhysX, Bullet, Box2D, builtin), animation (marionette state machine, pose graph, Spine, DragonBones), audio, UI, particle systems, and asset management. The engine is designed to be used with the Cocos Creator editor but can run standalone. It abstracts platform-specific APIs (graphics, input, audio, system) behind a common interface, supporting Web, iOS, Android, Windows, macOS, Linux, and various mini-game platforms. Key entry points include the Director, Scene, Node, Component, and the rendering pipeline. External dependencies include graphics APIs (Vulkan, Metal, GLES, WebGPU), physics libraries (PhysX, Bullet, Box2D), and scripting engines (V8, SpiderMonkey, JavaScriptCore).
Comedot is a Godot Engine 4.8+ framework for 2D game development that implements an Entity-Component-System architecture. It provides over 120 reusable components for gameplay mechanics including combat, movement, control, abilities, upgrades, inventory, turn-based systems, and UI elements. The framework emphasizes composition over inheritance, allowing developers to mix and match components to create entities for any 2D game genre. It includes template scenes for quick starts, editor plugins for component management, and extensive debugging tools. While actively maintained, the codebase shows signs of ongoing development with numerous experimental features and TODO comments indicating areas for improvement.
NME (Native Media Engine) is a cross-platform game and multimedia framework for the Haxe programming language. It provides a native runtime that compiles Haxe code to C++ via hxcpp and links against platform-specific backends for iOS, Android, Windows, macOS, Linux, and Web (Emscripten). The engine includes a 2D/3D rendering pipeline with both software and OpenGL backends, an audio subsystem with multiple backends (SDL, OpenAL, PulseAudio, ALSA, WebAudio), input handling (keyboard, mouse, touch, joystick), font rendering, and a build toolchain. The architecture is a library/framework with a core set of common components and platform-specific implementations selected at compile time. Key entry points include the `nme` CLI tool for building and running projects, the Haxe library under `src/nme/`, and the C++ engine under `project/src/`. External dependencies include Haxe, hxcpp, platform SDKs, and vendored libraries (LZMA, Clipper, Poly2Tri, FreeType, JPEG, Ogg, SDL, etc.). The codebase is large and contains both high-quality reusable components and some aging third-party code.
CrystalEngine is a full-featured, cross-platform game engine with an integrated editor, built from scratch in C++. It features a custom Vulkan/Metal rendering backend with a directed acyclic frame graph for render pass scheduling, a physically-based rendering pipeline with IBL and shadow mapping, and a modular architecture with dynamic module loading. The engine includes a comprehensive asset pipeline (import, compression, serialization), a job system for parallelism, and a physics integration via Jolt. A notable aspect is the dual UI framework: the older CrystalWidgets (CSS-styled) and the newer Fusion framework (declarative, property-based), both used in the editor. The editor provides dockable windows, property editors, material editing, scene outliner, and asset browser. The codebase demonstrates strong engineering with clean abstractions (RHI, RPI, frame graph, job system) but shows signs of ongoing migration (two UI frameworks) and some incomplete features. It is actively maintained and suitable for learning or extending a modern game engine architecture.
This is a Model Context Protocol (MCP) server that enables AI agents to interact with the Godot game engine. It provides tools to launch the Godot editor, run projects in debug mode, capture console output, manage scenes, add nodes, load sprites, export mesh libraries, and handle UID references for Godot 4.4+. The server is a single TypeScript process that communicates via stdio, spawning Godot processes for complex operations and using a bundled GDScript for scene manipulation. It includes path traversal protection, class name validation to prevent arbitrary script instantiation, and flexible parameter naming (supports both camelCase and snake_case). The project is well-structured, with clear error handling and debug logging, making it suitable for integration with AI coding assistants like Claude, Cline, and Cursor.