This repository contains the source code and assets for ActionRoguelike, a roguelike action game built with Unreal Engine 5. The game features procedural enemy spawning, a variety of player actions (such as dashing, magic projectiles, and parrying), and performance-optimized systems for managing actors and significance. The codebase is organized into modular subsystems, including AI, action systems, core game mechanics, player controls, and UI. The architecture follows Unreal Engine best practices, with clear separation of concerns. Notable reusable systems include a custom action system that allows developers to define and manage player abilities, and an actor pooling subsystem that optimizes performance by reusing instances of frequently spawned objects. The project also implements a save system for persisting game state and a significance system to prioritize updates for important actors. While the project is tailored to a specific roguelike game, several of its systems are designed with reusability in mind. The ActionSystem and Performance modules, in particular, could be extracted and adapted for use in other Unreal Engine projects with minimal modification. The recent commit activity indicates active maintenance, and the use of a recent Unreal Engine version suggests low technical drift. Overall, the codebase demonstrates solid engineering practices and provides a foundation for learning and building similar action-oriented games in Unreal Engine.
Blobby Volley 2 is a complete, cross-platform 2D multiplayer volleyball game implemented in C++ with Lua scripting for AI bots and game rules. It features local and networked multiplayer (client-server via a bundled, modified RakNet stack), a dedicated server for online matchmaking, replay recording/playback, and a custom immediate-mode GUI built on SDL2. The architecture uses a state machine pattern (State base class with derived menu, game, and replay states), abstracted rendering backends (OpenGL, SDL, Null), and a custom physics engine with integrated Lua-driven rule logic. The project is built with CMake and targets Windows, Linux, macOS, Android, and Nintendo Switch, with GitHub Actions CI for multiple compilers and platforms. The game's core loop processes player input (keyboard, mouse, joystick, touch, or Lua script) through an InputManager, feeds it into DuelMatch (which combines GameLogic and PhysicWorld for physics and rules), and renders via RenderManager. Network games use RakNet for reliable UDP communication with prioritized packet handling; the dedicated server manages lobbies, matchmaking, and state broadcasting. Replays are recorded as binary state snapshots (using GenericIO serialization) and can be played back in-game. The Lua API provides bot developers with real-time game state queries, physics prediction functions, and callbacks for serve and bounce events, along with older legacy scripts in data/scripts/old. While the codebase demonstrates solid engineering (template-based serialization, abstracted file I/O with PhysFS, cross-platform build systems), it carries technical debt from aging dependencies (RakNet, Lua 5.3, SDL2, TinyXML2) and heavy use of platform-specific ifdefs. Some components, like the custom IMGUI and RakNet integration, are tightly coupled and not easily extractable, but the GenericIO serialization layer and FileSystem wrapper are self-contained and could be reused in other C++ projects needing binary I/O or virtual file system access.