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.
This repository implements the Wave Function Collapse (WFC) algorithm, a constraint-based procedural content generation technique. The system takes an input bitmap (or a tileset with adjacency rules) and generates a larger output bitmap that is locally similar to the input, meaning every N×N pattern in the output appears somewhere in the input. It supports two primary models: the OverlappingModel, which extracts patterns from a sample image, and the SimpleTiledModel, which uses predefined tiles and adjacency constraints defined in XML. The algorithm operates by maintaining a 'wave' of possible states for each output cell, iteratively collapsing the cell with the lowest Shannon entropy and propagating constraints until a fully observed state is reached or a contradiction occurs. The architecture is a straightforward console application written in C# targeting .NET 10. The entry point is Program.cs, which reads a configuration file (samples.xml) specifying model parameters and input samples. The core algorithm is encapsulated in the abstract Model class, with concrete implementations in OverlappingModel.cs and SimpleTiledModel.cs. Image loading and saving are handled by the BitmapHelper class using the SixLabors.ImageSharp library. The system outputs PNG images to an 'output' directory. External dependencies are minimal, relying only on ImageSharp for bitmap I/O. The codebase is well-structured and demonstrates clean separation of concerns. The algorithm implementation is faithful to the original paper and includes optimizations such as the AC-4 constraint propagation algorithm and multiple heuristic strategies (entropy, MRV, scanline). The tile symmetry system in SimpleTiledModel reduces the number of explicit adjacency rules needed. While the repository is primarily a reference implementation, its components—particularly the helper utilities and the core propagation logic—are reusable in other procedural generation projects.
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.
MethaneKit is a cross-platform graphics rendering framework that provides abstractions over DirectX 12, Vulkan, and Metal APIs. It features a layered architecture with platform-independent interfaces (RHI), platform-specific implementations, an application framework, UI components, and mathematical utilities. The framework includes tutorial applications demonstrating various graphics techniques from basic triangle rendering to compute shaders and parallel rendering. Key systems include resource management, command submission, pipeline state handling, and synchronization primitives. The codebase demonstrates modern C++ practices with extensive use of templates, PIMPL idiom, and interface-based design.
This repository is a complete multiplayer co-op game sample called 'Boss Room', built by Unity Technologies to demonstrate best practices for using Unity Netcode for GameObjects (NGO). It implements a server-authoritative action RPG where up to 8 players cooperate to defeat a boss in a dungeon. The architecture is modular and state-driven: a connection state machine (Offline, ClientConnecting, Hosting, etc.) manages network lifecycle, while game flow states (MainMenu, CharSelect, BossRoom, PostGame) control scene transitions and gameplay logic. The core gameplay revolves around a ScriptableObject-based action system where abilities (melee, projectiles, buffs, stealth, etc.) are defined as data assets and executed via server-side action players with client-side anticipation for latency masking. The project integrates Unity Gaming Services for authentication, session management, and relay, and uses VContainer for dependency injection. Key entry points include ApplicationController (DI setup), ConnectionManager (network state machine), and GameStateBehaviour subclasses. Data flows involve client input sent via RPCs, server-side processing with NetworkVariables for state sync, and a typed NetworkedMessageChannel for decoupled event broadcasting. External dependencies include Unity Netcode, Unity Transport, Unity Gaming Services, VContainer, Cinemachine, and URP.
This repository is a curated list of awesome Ebitengine frameworks, libraries, and software. Ebitengine is an open-source game library for the Go programming language. The repository contains various categories such as frameworks, GUI, graphics, video, audio, physics, world, resources, scripting, networking, integration, input, testing, games, demos, and applications.
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.
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.
NippleJS is a vanilla virtual joystick library for touch and mouse interfaces, designed for mobile games, remote controls, and interactive web applications. The core library in `packages/nipplejs/` provides a lightweight, dependency-free joystick with three modes (dynamic, semi, static), multitouch support, and extensive event-driven APIs. The architecture is built around a Factory singleton managing Collections, each of which manages multiple Joystick instances. The library is written in TypeScript, with thorough unit tests and Playwright end-to-end tests covering event accuracy, mode behavior, cleanup, and edge cases. The repository also includes a documentation site built with Astro, featuring five interactive game demos that showcase library features, along with a monorepo structure for tools and tests. While the core library is modern and well-tested, some tooling (ESLint 8, Husky v4) and the workspace Yarn version mismatch indicate minor technical drift.
This repository implements a binary- and source-compatible compatibility layer for SDL2 on top of SDL3. It provides the complete SDL2 public headers (under include/SDL2/) and a shared library that intercepts all SDL2 API calls and translates them to the corresponding SDL3 functions. The core implementation resides in src/sdl2_compat.c and src/sdl2_compat.h, which perform type mapping, event conversion, and function dispatch. A sophisticated dynamic API mechanism in src/dynapi/ allows runtime overriding of exported symbols. The project also includes an extensive test suite (under test/) covering every major SDL2 subsystem, a reusable test framework (src/test/), and a comprehensive release automation script (build-scripts/build-release.py). The build system supports CMake, legacy Makefiles, Android NDK, and MSVC across Linux, Windows, macOS, and more. This is a library—not an end-user application—meant to ease the transition from SDL2 to SDL3 without modifying existing SDL2-based programs.
Open Tournament is a first-person shooter game built on Unreal Engine, inspired by classic arena shooters like Unreal Tournament and Quake. The game implements comprehensive systems for player movement, combat, AI, user interface, audio, and networking. It features a modular architecture using Unreal Engine's plugin system, with extensive use of the Gameplay Ability System (GAS), Enhanced Input, and replication for multiplayer functionality. The codebase shows thoughtful architectural design in several reusable systems, particularly in settings management, UI composition, messaging, and loading screen handling.
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).
cimgui is a C language binding generator and wrapper library for Dear ImGui, a popular C++ immediate-mode GUI library. It provides a programmatically generated C API (cimgui.h/cpp) that exposes both public and internal ImGui functions, structs, and enums, along with backend-specific wrappers for GLFW, SDL2/3, Vulkan, OpenGL, and DirectX11. The core of the project is a Lua-based code generator (generator.lua, cpp2ffi.lua) that parses ImGui C++ headers and emits C bindings, metadata files (JSON/Lua), and backend implementations. The repository includes example applications demonstrating usage with various graphics backends and a CMake-based build system for easy integration. While not a standalone application, it serves as a foundational library for embedding Dear ImGui in C projects or for generating FFI bindings to other languages (e.g., Python, Rust, C#). The generator is designed to be extensible, supporting custom configurations and inherited types, making it suitable for binding other ImGui-based libraries like cimplot or cimnodes.
This repository provides a reusable, interactive node editor library built on top of Dear ImGui. It is a pure C++ library with a public API that enables embedding a visual node/graph editor into any ImGui-based application. The core implementation handles node and link creation, dragging, selection, zoom/pan, context menus, cut/copy/paste, flow animations, and state serialization via a bundled JSON library. It is not a standalone application but ships with several examples and an application framework (Win32/DirectX11, GLFW/OpenGL) to demonstrate usage. The architecture is modular, with separate components for canvas rendering, bezier math, and JSON serialization, making individual parts reusable in other projects. The repository is well-maintained with active issue triage and recent commits, though it has medium technical drift due to heavy version-conditional code for Dear ImGui compatibility and reliance on some outdated dependencies (DirectX SDK, older stb versions).
This repository is a curated 'awesome list' for Game Boy and Game Boy Color development — a community-maintained directory of resources rather than a software application. Its production function is curation: organizing and continuously validating links to documentation (Pan Docs, opcode references, hardware schematics), emulators (SameBoy, mGBA, BGB), development toolchains (RGBDS, GBDK), homebrew games, and reverse-engineering projects. The main README.md is meticulously organized into roughly 15 categories, with EMULATORS.md and MORE.md serving as supplementary lists for open-source emulators and lower-tier resources respectively. The contribution guidelines (CONTRIBUTING.md) define a clear triage process between the main list and MORE.md, establishing quality gates for what qualifies as 'awesome'. The only executable code is the GitHub Actions CI workflow (.github/workflows/ci.yml), which runs two validation jobs: awesome-lint (installed from a custom fork, gbdev/list-linter) to enforce markdown formatting standards, and brok (a dead-link checker) to detect broken URLs across all markdown files. The workflow runs on push, pull request, a weekly schedule, and manual dispatch, and it deliberately ignores tcrf.net due to that site's DDoS protection — a thoughtful, reusable pattern for any awesome-list maintainer. The repository also ships CartridgeList.csv, a structured dataset cataloging thousands of Game Boy cartridge dumps with columns for mapper type (MBC1/MBC3/MBC5/RUMBLE/CAMERA/etc.), ROM size, RAM size, battery presence, RTC presence, and game title — a valuable reference for emulator developers, cartridge hardware projects, and ROM preservation efforts. Maintenance is active: the last commit is recent, the CI pipeline runs on a weekly schedule, and the community is engaged (4,497 stars, 21 open issues, active Discord). The repo is the de facto canonical starting point for Game Boy development. While it contains no application code in the traditional sense, its curation quality, CI infrastructure, and reference data make it a high-value, well-maintained resource.
dxwrapper is a system-level DLL proxy and compatibility layer for legacy DirectX games and applications on modern Windows (10/11). It intercepts calls to DirectDraw (1-7), Direct3D (7/8/9), DirectInput, DirectSound, and GDI, translating them to newer APIs (primarily Direct3D9) and applying numerous workarounds for rendering, input, and window management issues. The architecture is a hybrid of multiple integrated sub-projects: a core wrapper that loads real system DLLs and forwards exports while wrapping COM interfaces, plus three bundled versions of DDrawCompat (v0.2.0b, v0.2.1, v0.3.2) that hook at the user-mode display driver (D3dDdi) and GDI level. Key entry points include DllMain for each stub DLL (ddraw.dll, d3d8.dll, d3d9.dll, dsound.dll, dinput8.dll), the IClassFactory interception for COM object creation, and the configuration-driven Settings module. External dependencies include Microsoft Detours for function hooking, MemoryModule for loading DLLs from memory, and DirectXMath. The codebase is large and complex, with extensive use of COM proxy patterns, vtable hooking, and low-level Windows API patching.
Scrawl is a 2D game engine that fuses a Python-facing API with a high-performance Rust runtime built on Bevy and PyO3. It targets developers who want Scratch-like simplicity (sprites, scenes, broadcasts, event decorators) and Godot-like depth (node tree, signals, physics bodies, animation). The Python package (`scrawl`) provides classes for Game, Scene, Sprite2D, RigidBody2D, Camera2D, Timer, Tween, and more, all of which transparently synchronize with a Bevy ECS backend via a shared command queue and dirty-flag system. A visual IDE (`scrawl_ide`) built with PySide6 offers scene editing, code editing, asset management, property inspection, an AI chat panel, and a game runner that launches the engine as a subprocess. The Rust side comprises 13+ crates (core, render, physics, audio, particles, navigation, animation, tilemap, UI, scripting, bridge, editor protocol), though several remain disconnected from the main binary (e.g., audio, particles, navigation). The overall architecture is dual-process: the IDE writes generated Python scripts to disk and spawns the engine binary, which uses named pipes for editor-server protocol. This is purely an application; there is no data analysis or machine learning component.
This repository is a static website hosted on GitHub Pages that curates resources for multiplayer game networking. It provides a comprehensive list of articles, videos, libraries, and tools related to game netcode, including topics like latency compensation, deterministic simulation, and various networking libraries. The site is built using Jekyll, with the content primarily in the README.md file. The repository also includes a trivial C program that prints a description of the project. While the repository is classified as an application (a static web site), it also functions as a curated data resource. The content is regularly updated, as evidenced by the inclusion of upcoming events (e.g., Bali 2025, Orlando 2025) in the README.md, indicating active maintenance. However, the codebase itself lacks reusable components, consisting mainly of configuration files and trivial code.