30 open-source projects similar to munificent/game-programming-patterns, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Game Programming Patterns alternative.
FXGL is a 2D game engine and development framework designed for Java and Kotlin. It provides a structured environment for building cross-platform desktop games, integrating a central game loop with an entity component system and a JavaFX-based scene graph for rendering. The toolkit distinguishes itself by providing a comprehensive suite of integrated libraries for game AI pathfinding, physics collision resolution, and multiplayer networking via TCP and UDP protocols. It includes specialized systems for adaptive user interface design using global stylesheets and a data-driven asset management
Flame is a 2D game engine for Flutter and Dart. It provides a component-based game framework for managing entities and their lifecycles through a hierarchical architecture, alongside a dedicated system for game asset management and input handling. The engine distinguishes itself through a specialized integration layer for external physics engines to handle rigid body dynamics and collision detection. It also features a high-performance task model that uses isolates to offload heavy computations and prevent main thread blocking. The framework covers a broad range of capabilities including vis
learningPixi is an educational resource and instructional guide focused on 2D web graphics and interactive media development. It provides a structured curriculum and tutorials for building 2D games and visual applications using the Pixi.js rendering engine and WebGL for hardware-accelerated graphics. The project covers specialized workflows for sprite animation, including the use of texture atlases and spritesheet frame extraction. It also provides guidance on implementing game state management for scene transitions and rectangular collision detection systems to trigger interactive events. T
This project serves as a comprehensive technical reference and educational resource for software architecture within the context of game development. It provides detailed explanations of design patterns and engineering strategies specifically tailored to the performance constraints and structural requirements of interactive software projects. The repository functions as a localized translation of essential literature, making advanced programming concepts and architectural solutions accessible to a broader audience. By focusing on proven practices for code organization and maintainability, it
FlappySwift is a side-scrolling arcade game implementation built for Apple platforms. Developed using the Swift programming language, this 2D game project features a physics-based environment where a player controls a character to avoid obstacles. The project utilizes the SpriteKit framework to handle rigid body dynamics, gravitational forces, and sprite-based rendering. Game flow is managed through a state machine that controls transitions between the start menu, active gameplay, and game over screens. The implementation covers 2D physics simulation, including bounding-box collision detecti
This project is an open-source 3D game engine designed for building high-fidelity games, simulations, and cinematic environments. It functions as a robotics simulation platform with native integration for ROS 2 to model robot controllers and sensors. The engine features a multi-threaded Forward+ physically based renderer that supports hardware-accelerated ray tracing and global illumination. The system is built on a modular extension architecture using Gems to add or replace features without modifying core binaries. It includes a native SDK for AWS cloud integration, enabling IAM authenticati
React Native Game Engine is a framework for building 2D interactive experiences and simulations within mobile applications. It provides a dedicated controller for managing a fixed-step game loop, ensuring that game logic, user inputs, and state updates occur at a consistent frame rate. The engine utilizes an entity-component-system architecture to decouple game object data from behavior. By structuring objects as independent entities processed by reusable logic functions, it allows for the management of complex scenes through a centralized, data-driven approach. The framework supports the cr
Amethyst is a data-driven game engine written in Rust for building high-performance 2D and 3D games. It is built on an entity component system architecture that decouples game state from logic to enable parallel processing and reusable code. The framework features a glTF 3D renderer for importing scenes and geometry using physically based materials. It also serves as a multiplayer game framework, providing network transport abstractions and state synchronization for real-time online experiences. The engine covers a broad range of capabilities, including hybrid 2D/3D rendering, asynchronous a
Space Station 14 is a C# multiplayer game and roleplay simulation framework. It is built upon an Entity-Component-System (ECS) game engine that separates logic into systems and data into components to manage complex entity interactions. The project functions as a grid-based physics simulator with a YAML data-driven prototype system for defining game objects. The project features a specialized 2D sprite rendering engine that maps server-side appearance data to client-side shaders. It implements a networking model with client-side prediction and dirty-flagged state synchronization to reduce inp
Mario-Kart-3.js is a browser-based 3D racing simulation implemented in JavaScript. It utilizes a WebGL game engine to render three-dimensional race tracks and vehicle models directly within a web browser using graphics hardware. The simulation features a physics-based drifting and maneuver system for gaining speed boosts and a power item system for deploying competitive advantages during races. The project encompasses a vehicle control system that maps keyboard and mouse inputs to steering and acceleration, alongside a simulation engine that manages collision detection and scripted item logi
This project is a browser-based arcade game engine implemented in JavaScript. It provides a foundational framework for developing grid-based maze games, utilizing HTML5 canvas for immediate-mode rendering and structured data objects to define level layouts and item placements. The engine manages core interactive mechanics, including player navigation, collision detection, and real-time pathfinding for computer-controlled entities. It incorporates a state-machine game loop to handle transitions between active gameplay, paused states, and level progression, while tracking scores and item collec
This repository contains the C++ game source code for a single-player first-person shooter action game. It is a software implementation of the Id Tech 4 engine, designed for 3D rendering with a focus on real-time unified lighting and geometry. The project enables the modification of core engine logic and rendering systems. It serves as a resource for classic game engine modification, first-person shooter development, and retro game preservation. The engine utilizes a unified shader pipeline and stencil shadow volumes for lighting effects, alongside BSP tree spatial partitioning for visibilit
This project is a collection of open source educational materials and training modules designed to teach the fundamentals of version control with Git and GitHub. It provides a structured curriculum of lessons and exercises to facilitate technical onboarding and the adoption of version control standards. The content is delivered as a markdown-based static site that can be packaged into a redistributable archive. This allows the training portal to be deployed on private internal web servers behind firewalls for offline or secure access. The system converts markdown instructional content into s
This project is a static site project homepage and software distribution website. It serves as an Android modification portal and a central web portal for downloading official releases and accessing documentation for Android system modifications. The site functions as a markdown-based documentation site and an open source project hosting platform. It provides a central location for technical references and guides regarding the Android system framework, while distributing stable software versions and installation guides to the developer community. The website is built using static site genera
Zola is a static site generator that compiles Markdown and templates into a standalone website. It is distributed as a single binary, removing the need for external runtimes or package managers to build the final site. The project includes a built-in Sass compiler to transform styles into compressed CSS and a dedicated Markdown rendering engine that supports task lists and footnotes. It also features a client-side search indexer, enabling full-text site search without a backend server, and a multilingual content manager for organizing translated content. Additional capabilities cover asset o
This project is a multi-purpose web platform serving as a canvas 2D game engine, a frontend engineering blog, and a markdown static site generator. It functions as a web graphics showcase and a technical knowledge base for sharing architectural decisions and performance optimizations. The platform implements a high-performance graphics framework using low-level drawing APIs, integrating skeletal animation and web physics for collision detection and realistic motion of two-dimensional objects. It simultaneously operates as a system for converting markdown source files into pre-rendered HTML pa
This project is a curated ebook directory and digital library designed for self-directed learning. It functions as a version-controlled knowledge base that provides a collection of downloadable academic textbooks and educational resources across multiple disciplines. The library is built as a markdown-based system where book metadata and download links are stored in flat files. These files are managed through a git-driven content pipeline and rendered as a static site resource index for fast access and simple hosting. The system utilizes a directory-based categorization model to organize mat
This project is a comprehensive technical reference for web favicon specifications, providing the image dimensions and file formats required for browser and operating system icons. It serves as a platform icon configuration sheet for mobile touch icons and desktop home screen tiles. The guide includes specialized instructions for implementing theme-aware icons using SVG media queries to support light and dark mode appearances. It also provides a reference for managing browser icon caches to force updates during development and production. The reference is delivered as a static site generated
This project is a static site generator and documentation builder designed to transform markdown files into styled HTML documents. It functions as a programmatic conversion engine, allowing developers to integrate markdown processing and layout rendering directly into automated build scripts and content workflows. The tool distinguishes itself through a pipeline-oriented architecture that supports custom plugin integration and metadata-driven template injection. Users can define global or per-file metadata to dynamically populate page content, while the system’s template-based generation allo
GitHub-Achievements is a reference guide and gamification tool for official GitHub profile achievement badges. It serves as a catalog for tracking personal activity and milestones against the specific requirements needed to earn profile rewards. The project provides a comprehensive reference for GitHub badges, detailing the visual appearance of different tiers and the quantitative thresholds required to unlock them. It allows users to browse badge visuals and identify the actions necessary for profile optimization. The resource is delivered as a static site, utilizing a data catalog to organ
Entitas-CSharp is a data-oriented architectural framework for managing application state and logic in C# and Unity environments. It implements the Entity Component System pattern to separate raw data components from the logic systems that process them. The framework includes a code generator that automatically produces type-safe boilerplate classes and methods at build time. It also provides a visual state inspector for examining entities and components in real time within the Unity editor. The library covers data-oriented programming and game state debugging, utilizing a memory-efficient ap
This repository is a collection of reference implementations and sample projects demonstrating data-oriented design using the Unity Entities package. It provides a suite of examples for implementing an entity component system that separates game data into components and logic into systems. The collection includes specialized demonstrations for rendering large volumes of entities via graphics pipelines, implementing high-performance collision and rigid body dynamics through data-oriented physics, and managing multiplayer state synchronization using the network framework for entities. It also p
Flecs is a high-performance entity component system framework and data-oriented programming library. It serves as a simulation engine core and game engine architecture tool, decoupling state from behavior by separating entities, components, and systems. The framework features a runtime reflection layer for dynamic data inspection and a built-in scripting system for defining entity behavior without recompilation. It also includes a network interface and REST API for remote simulation administration and state querying. The library covers a broad surface of simulation capabilities, including ar
Entitas is a data-oriented Entity Component System framework for Unity. It is designed to separate game state into components and logic into systems, utilizing a data-oriented design to optimize CPU cache usage, memory usage, and processing speed. The framework includes a C# source code generator that automatically produces boilerplate classes, entity accessors, and context singletons to reduce manual coding. It also provides a Unity editor debugging tool for real-time runtime state visualization, system performance monitoring, and visual entity inspection. The system manages entity lifecycl
EnTT is a C++ library designed for data-oriented design and entity component system architecture. It provides a framework for managing game objects and simulation states by separating entity data from logic, allowing for the efficient organization and manipulation of large collections of related data objects. The library utilizes sparse sets to store entities and components in contiguous memory, which facilitates cache-friendly iteration and constant-time lookups. It employs template metaprogramming for compile-time type reflection and type-erasure techniques to provide a unified interface fo
Phaser is a comprehensive 2D game engine designed for building high-performance, interactive content that runs directly in web browsers. At its core, the engine utilizes a fixed-timestep simulation loop that decouples game logic from variable browser frame rates, ensuring consistent behavior across diverse hardware. It provides a robust framework for managing asset loading, physics, input, and audio, enabling the creation of complex, responsive visual experiences for both desktop and mobile devices. The engine distinguishes itself through a high-performance graphics pipeline that automaticall
Bevy is a cross-platform game engine and framework built in Rust, designed for creating interactive simulations and graphical applications. It utilizes a data-oriented entity-component-system architecture to manage game state, organizing data into contiguous memory blocks to facilitate high-performance processing and massive parallelization of entities. The engine distinguishes itself through a modular plugin architecture and a system-based task scheduler that automatically parallelizes logic by analyzing data access patterns. By employing reactive change detection and deferred command buffer
Mindustry is a cross-platform game engine and factory automation simulation that combines resource management with tower defense strategy. Players construct complex supply chains and automated networks to process materials while building defensive structures to protect a core from waves of hostile mechanical forces. The project utilizes a deterministic lockstep networking model to ensure simulation consistency across desktop and mobile devices. It is built on an entity-component-system architecture and a tile-based grid simulation, allowing for the efficient management of thousands of active
A-Frame is a declarative 3D scene engine and WebXR framework used to build virtual and augmented reality experiences directly in the web browser. It utilizes an entity component system where generic objects are assigned behaviors through attachable components and lifecycle hooks. The framework allows the assembly of immersive environments using HTML-like markup to define geometries, lighting, and materials. It implements WebXR standards to ensure consistent playback across different hardware and browsers, including support for VR headsets, desktops, and mobile devices. The system covers a br
ggez is a 2D game framework for the Rust programming language. It provides a hardware abstraction layer for accessing keyboard, mouse, sound, and graphics hardware, alongside a dedicated game loop manager that synchronizes input processing, state updates, and frame rendering for real-time applications. The framework includes a hardware-accelerated rendering engine for drawing sprites, shapes, and text using shader programs. It also features a resource management system that uses a filesystem abstraction to load and manage game assets from physical directories or compressed archives. Addition