Gameplay Programmer · C++ · Unreal Engine 4 & 5
C++ Gameplay Programmer with 2+ years of professional experience shipping games in Unreal Engine 4 and 5. Generalist by nature — across my professional work I've covered GAS architecture, multiplayer networking, performance optimization, UI, and tooling depending on what the project needed.
Currently building low-level depth beyond the engine: custom memory allocators, a dynamic array with manual memory management, and a simplified ECS — driven by a genuine interest in understanding the systems underneath UE5's abstractions. I integrate AI-assisted development as a deliberate practice: using LLMs to accelerate iteration while critically reviewing and owning every line of generated code.
Targeting an entry-level role at an AA or AAA studio. Open to relocation.
Scubalight Studios — Junior Gameplay Programmer (2+ years, 2021–2023)
Shipped two titles across UE4 and UE5 in a 3-person programming team.
- Sole architect of the GAS foundation on Don't Kill Rumble: base character, attributes, ability pipeline, and ability examples from scratch
- Led multiplayer networking foundations, establishing replication patterns used across the project
- Promoted to lead programmer after demonstrating end-to-end project ownership
- Inherited a shipping game (Junior Solutions) running at 25–30 FPS; profiled and optimized CPU, GPU, and RAM usage to reach a stable 60 FPS
- Reduced Blueprint Tick calls by an estimated 80%+ through profiling, refactoring, and event-driven replacements
- Built an in-game developer menu for runtime testing and QA tooling
These projects exist to build understanding of systems that engines abstract away — not to reinvent them, but to reason about them clearly.
Simple-ECS A simplified Entity Component System implemented in C++. Built to understand data-oriented architecture and how component-based design works at the memory level.
Allocators Custom memory allocators in C++: linear/bump, pool, and stack. Built to understand allocation strategies, fragmentation tradeoffs, and manual memory management patterns used in game engines.
Custom-Vector A dynamic array container implemented in C++20 with manual memory management. Built to understand how contiguous storage, growth strategies, and move semantics work beneath STL abstractions.
- Decoupled reactive inventory system using Delegates, allowing multiple systems to respond to state changes without circular dependencies
- Dynamic attribute modifier architecture to alter Character Controller parameters in real time
- Interaction system using Constraints and Linear Drives for realistic player-controlled mechanical manipulation
- Async Level Streaming pipeline managing memory across secondary threads to eliminate transition latency
- Data-driven inspection pipeline using Data Assets, allowing designers to integrate objects without code changes
- Context-aware narrative system using a priority queue and Gameplay Tags to trigger dialogue based on player state
| Area | Tools |
|---|---|
| Language | C++ |
| Engine | Unreal Engine 4 & 5 |
| Version Control | Git, Perforce |
| Audio | FMOD |
| Patterns | GAS, Data-Driven Design, ECS, OOP |
pablofvillanueva@outlook.com linkedin.com/in/pablofvillanueva pablyco.github.io/portfolio