James Munnis
Games Programmer & Generalist
Highlights
Click Image to view more

Hi, I'm James, a Northern Irish Games Programmer and 3D Artist. I am extremely passionate about making games. I focus mainly on C++ and C# programming, with attention to writing clean, concise and modular code.I have experience across various projects, including 3D platformers, VR shooters, simulation programs, and even building my own 2D game engine.I am always striving to learn new things about any hobby or field I immerse myself in, from coding to restoring cars.
James Munnis
James Munnis


James Munnis
AstroBot: Elemental Odyssey is a colorful 3D platformer inspired by Astro Bot that combines exploration, platforming, and environmental puzzles. Players control AstroBot as he journeys across a mysterious archipelago of elemental islands, each introducing unique mechanics and challenges.Drawing inspiration from the elemental bending concepts of Avatar: The Last Airbender, the game features four distinct islands — including grass, ice, and lava — where players unlock and use elemental abilities to manipulate the environment, overcome obstacles, and solve puzzles. Each island offers its own visual style, traversal mechanics, and gameplay challenges, encouraging players to master the elements while progressing through the adventure.


Implemented core AstroBot movement systems in C++, including movement, jumping, and hovering mechanics.
Developed the AstroBot dash ability using Blueprint Actor Components.
Created the Appa transport system using Blueprints, where the character follows a spline-based flight path to allow level designers to easily create level transitions. Implemented distance-based spawning/despawning and created wind trail VFX for the flight sequence.
Implemented an ability UI system allowing players to switch abilities and view unlocked abilities.
Assisted in improving the rock pull gameplay mechanic.
Created a launchpad system in Blueprints with adjustable launch velocity and directional control, defined using an arrow component for easy placement by designers.
Added animations for destructible dropping platforms.
Refactored the weather system to make it more modular and customizable, improving flexibility for designers.
Created destructible props using UE5 Chaos Fracture (e.g., destructible vases).
Implemented physics-enabled vines to add environmental interactivity.
Built PCG graphs to allow designers to quickly generate bridges using splines.
Created a PCG graph for generating ice rinks that follow spline paths for level layout.
Modeled basalt column formations using Blender Geometry Nodes, generating a high-poly mesh and baking it down for game use.
Created a custom grass material with wind-driven sway animation.
Developed Niagara particle systems for falling leaves that accumulate on the ground, adding environmental ambience.
Built a water shader based on UE5's Single Layer Water, extending it with waves, shoreline foam, sea foam, and mesh distance field interactions.
Created a dynamic ice material simulating slowly shifting ice sheets across water.
Developed a procedural snow material for the ice island environment.
Created procedural materials for the grass island allowing moss, grass, and wetness blending.
Modeled cliff assets and basalt formations used in the ice island environment.
Created lava textures and basalt column assets.
Refreshed the checkpoint system visual, creating a new hologram material and custom model based on AstroBot's head, including custom eye animations and bounce animations when activated.
Helped design and build the layout and level design of the grass island.
James Munnis
Exile Squadron is a multiplayer real-time strategy (RTS) game set in a post-apocalyptic world where humanity survives within fortified concrete cities. Players must venture beyond these safe zones to claim land, secure resources, and compete against rival factions.Players will construct structures such as factories and generators to expand their base, produce military units, and strategically command their forces to destroy the enemy base while defending their own.





Developed fully networked core RTS gameplay systems using Mirror Networking.
Implemented a networked building system allowing players to construct and place structures during multiplayer matches.
Built a networked unit system for spawning, controlling, and synchronizing units across clients.
Created a unit formation system enabling groups of units to move and position strategically.
Implemented a networked player controller for issuing commands and interacting with the game world.
Developed multiplayer infrastructure systems including a lobby system, authentication system, and in-game chat.
Built the main menu and UI flow for accessing multiplayer features and starting matches.
Base building system allowing players to construct structures such as factories and generators.
Direct unit control and targeting, enabling players to command units and choose specific enemy targets.
Map control mechanics centered around capturing and maintaining power sources.
1v1 domination-style multiplayer matches focused on strategic expansion and base destruction.
Fully networked multiplayer gameplay using Mirror Networking.
Integrated multiplayer lobby system for creating and joining matches.
Online in-game chat system for player communication during matches.
James Munnis
Runelight is a fast-paced action platformer that blends elements of Dark Souls / Sekiro–style combat with the exploration and charm of Spyro. Set in a fantasy version of feudal Japan infused with magic, the game the player in the role of a Samurai mage tasked with cleansing ancient runes and lifting a powerful curse from the land.The game emphasizes exploration, combat mastery, and progression, rewarding players with collectables, upgrades, and hidden discoveries as they venture through the cursed world.





Developed a Souls-like character controller, including dodge rolling, light and heavy attacks, jumping, and combat movement.
Implemented enemy AI systems to drive combat encounters and gameplay challenges.
Created the game menu and UI systems for navigation and game flow.
Built a save and progression system to persist player progress.
Implemented additional gameplay systems supporting exploration, combat, and player progression.
Modeled and textured the majority of the game’s 3D assets and environment props, excluding the character model, trees, and bushes.
James Munnis
Project Aryx is a first-person shooter set in an alternate timeline where Nazi Germany won World War II. Hidden deep within a forgotten facility lies a prototype war mech created by the United States, designed as a last-resort weapon to turn the tide of war should the worst ever happen.However, the mech’s experimental AI system was never activated, leaving the machine dormant for decades. When the player unexpectedly awakens the mech, they become the final hope to challenge the oppressive regime and reshape the course of history.





Developed a full first-person character controller handling movement, camera control, and player input.
Implemented a world interaction system allowing players to interact with environmental objects.
Created Half-Life–style physics object manipulation, enabling players to pick up, carry, and move physics-based objects.
Designed and implemented the weapon system, supporting shooting mechanics and combat interactions.
Modeled most of the game's 3D assets and environment props, contributing to the visual identity of the project.
Integrated externally sourced assets including the Thompson weapon model and enemy character models.
James Munnis
Retail Therapy is a wave-based VR shooter inspired by Call of Duty: Zombies. Players take on the role of a retail worker overwhelmed by difficult customers, whose imagination spirals into a chaotic battle for survival inside their workplace.The game focuses on fast-paced wave combat and VR gameplay, placing players in increasingly intense encounters as they fight off enemies in a surreal version of their everyday environment.This project was developed during a 2-week game jam at NRC by myself , Holly Strutt, Paris, and James Shore.


Developed core VR gameplay systems, including player interaction and weapon handling.
Implemented a modular weapon system supporting different firearms and combat mechanics.
Created a weapon attachment system allowing upgrades and customization during gameplay.
Built a wall-buy system inspired by classic wave shooters, enabling players to purchase weapons during rounds.
Implemented enemy AI and spawning systems to support escalating wave-based combat.
James Munnis
Elevation is a claustrophobic horror game set inside a malfunctioning elevator plunged into darkness. Trapped between floors, the player must restore the power and escape—but something else is trapped inside with them. Ghostly figures lurk in the shadows, and every moment spent in the confined space slowly erodes your sanity, turning the elevator into a tense fight to survive.


Developed a sanity system that gradually affects the player while trapped in the elevator, increasing tension and psychological pressure.
Created a dynamic in-game events system to trigger supernatural occurrences and environmental changes during gameplay.
Implemented a first-person character controller for player movement and interaction within the confined elevator environment.
Managed the project and coordinated the team, helping organize tasks and guide development progress.
Created 3D models and visual assets used within the game environment.
James Munnis
Small Racers is a lightweight arcade racing game built in Unity featuring simple, responsive driving mechanics and quick race sessions. While the project uses free visual assets for environments and vehicles, all gameplay systems and code — including the car controller, lap tracking, and race logic — were developed from scratch. The project focuses on creating a smooth arcade driving feel and implementing the core systems required for a functional racing game.


Implemented car physics and a custom vehicle controller using Unity’s physics system for acceleration, steering, and handling.
Developed a lap timing and lap counting system to track player progress and race completion.
Created a main menu UI system for starting races and navigating the game.
Designed a simple arcade-style racing experience focused on responsive driving and quick gameplay.
Created the game flow and user interface layout to keep the experience intuitive and accessible.
James Munnis
PRISM is a C++ OpenGL graphics framework designed to provide a flexible foundation for building real-time rendering applications and small game engines. It includes a lightweight Entity-System architecture and a collection of tools that simplify common graphics programming tasks.The framework supports image and texture loading, custom GLSL shader pipelines, .obj model importing, hierarchical transformations, and cubemap skyboxes. It also implements a lighting system with directional and spot lights, including specular shading, enabling more realistic rendering.PRISM is built using modern C++, with CMake as the build system and GLFW handling window creation and input, making the project modular, portable, and easy to extend.


Designed and implemented a modular C++ OpenGL rendering framework built with CMake for cross-platform builds.
Developed a lightweight Entity System to manage scene objects.
Implemented a custom shader pipeline supporting user-defined GLSL vertex and fragment shaders.
Built a model loading pipeline using TinyOBJLoader for importing .obj meshes.
Created a texture and image loading system to support material and asset management.
Implemented hierarchical transformation systems for scene graph style parent–child object relationships.
Developed a lighting system supporting directional lights, spotlights, and specular shading.
Integrated cubemap skybox rendering for environment backgrounds and scene immersion.
Implemented windowing and input systems using GLFW.
Built editor/debug tooling using Dear ImGui for runtime inspection and engine controls.
Created demo scenes showcasing lighting, skyboxes, and model rendering.
Developed visual debugging tools via ImGui to make rendering systems easier to test and iterate on.
James Munnis
SpriteBox is a 2D game framework built in C++ using SFML, designed to provide a simple and flexible foundation for building 2D games. The framework includes a lightweight Entity–Component System (ECS) architecture alongside a collection of systems that handle common game development tasks.SpriteBox features a custom renderer, 2D physics integration using Impulse2DLite, and serialization-based save/load functionality using Cereal. It also includes a scene management system, asset manager, input manager, and sound system, allowing developers to efficiently organize and build gameplay systems on top of the framework.


Designed and implemented a lightweight Entity–Component System (ECS) architecture for flexible game object composition.
Built a scene management system for loading, switching, and organizing game scenes.
Implemented a serialization-based save/load system using Cereal.
Developed the rendering system using SFML for drawing sprites, UI, and other game objects.
Created a sound system for playing and managing in-game audio.
Implemented an asset manager to handle loading and caching of textures, audio, and other resources.
Built core ECS components, including Entity, Transform, Physics Actor, and Script components.
Developed an advanced camera system featuring position smoothing, zoom smoothing, rotation smoothing, and camera shake, alongside a raw camera component for lower-level control.
Implemented sprite rendering with animation support.
Created basic UI systems, including UIButton, UILabel, and serializable text data components.
Built a demo platformer game called SpriteBound to showcase the framework and demonstrate how to build games using SpriteBox.
James Munnis
Voxol is a Unity-based voxel world generation project focused on building a highly optimized, scalable voxel terrain system. The project explores advanced performance techniques such as the Unity Job System, Burst compilation, greedy meshing, face culling, and level-of-detail (LOD) systems to efficiently generate and render large voxel environments.The project is currently in development and forms part of my final-year university project, where the goal is to research and implement modern techniques for procedural voxel terrain generation and optimization.



Implemented face culling to avoid rendering hidden voxel faces and reduce mesh complexity.
Built a level-of-detail (LOD) system to efficiently render distant terrain at lower resolutions.
Implemented vertex packing, compressing voxel vertex data into 4 bytes per vertex (position, normal, UV, and atlas index) to significantly reduce memory usage and improve performance.
Created a custom shader capable of decoding and rendering the packed voxel vertex format.
Implemented multithreaded world generation and meshing using the Unity Job System and Burst Compiler to improve performance.
Developed noise-based procedural terrain generation for creating dynamic voxel landscapes.
James Munnis
Imposter is a small multiplayer game built with Java and LibGDX designed to showcase a custom networking implementation. The project uses a custom client–server architecture, allowing a dedicated Java server to run independently while players connect as clients.The networking layer includes a custom packet system and implements both TCP and UDP communication, enabling reliable messaging for critical game events and low-latency updates for real-time gameplay.Players can join matches and eliminate other players within a simple 2D map, demonstrating the core networking systems and multiplayer functionality. The project focuses primarily on building and experimenting with custom multiplayer networking systems rather than large-scale gameplay features.


Designed and implemented a custom client–server networking architecture using Java and LibGDX.
Built a custom packet system for handling gameplay messages and state synchronization.
Implemented TCP and UDP communication, using reliable messaging for critical events and low-latency updates for gameplay data.
Developed multiplayer player synchronization systems for movement, actions, and combat interactions.
Created a server management console with terminal commands (e.g., list_players) to monitor connections and active players.
Implemented player connection and session handling, allowing multiple clients to join matches hosted on a dedicated server.
Built core gameplay systems, including player combat and elimination mechanics.
Implemented the 2D game systems and logic using LibGDX.