FUNLabs Engine - Early 2000

Worked as a 3D programmer on the FUNLabs engine, which was built from scratch as a PC FPS engine and later expanded to support consoles and outdoor environments.


For the first title, Cabela’s Offroad Adventures, we included software rendering to reach a broader hardware audience. I worked on the voxel-based terrain system and implemented the DirectX 7 rendering pipeline, combining software voxel rendering with hardware rendering simultaneously. I also tested and optimized this hybrid solution across a wide range of video cards from S3, Matrox, nVidia, 3dfx, Permedia, ATI, and others.

After release, we developed a new engine targeting FPS-style games similar to Unreal and Quake. I worked on the DirectX 8 renderer, integrating the new TnL pipeline and designing a data-driven shader system inspired by Quake 3, enabling significantly more expressive material workflows for artists.

I also implemented the lighting systems, both static and dynamic, including lightmap generation, dynamic character lighting, and runtime updates of lightmaps for moving lights. Additionally, I implemented breakable BSP-based geometry.

Later, I worked on porting the engine to PS2 using RenderWare and subsequently developed a custom PS2 renderer from scratch to replace it. This work involved DMA management, VU1 transformations, clipping, lighting, delta-compressed models, asynchronous texture uploads, and immediate mode rendering.

For the Microsoft Xbox console, I ported the rendering system and introduced additional visual features such as reflection/refraction water rendering and post-processing effects.
Games released: Cabela's 4x4 Off-Road Adventure, Secret Service, Shadow Force, Cabela's Big Game Hunter, U.S. Most Wanted, Cabela's 4x4 Offroad Adventure 3, Revolution, Cabela's Deer Hunt, Cabela's Dangerous Hunts

Splinter Cell Chaos Theory - Mid 2000

The GameCube version I worked on was a port derived from the PS2 version.


The PS2 team had implemented several novel rendering primitives specialized for the platform, including a new material system, all of which needed to be ported to GameCube.

I implemented the GameCube rendering system, including post-processing effects for the different vision modes (iconic goggles bloom, night vision, thermal vision and EEV).

The particle system had been accelerated on PS2 using the VU0 processor, and authored data needed to be adapted to the capabilities of the GameCube version. I designed an automatic conversion method that preserved as much of the original visual intent as possible.

Regarding the new material system, I added CPU-based per-vertex specular lighting and optimized the rendering pipeline for performance. I also ported the dynamic water system from PS2 to GameCube, including handling special lighting cases.

Additionally, I contributed to UI integration and supported the development of related engine systems.
 ** Small note: In order to keep the number of platforms small, I’ve merged GameCube and Wii together here as, from the hardware point of view they are quite similar.

Splinter Cell Double Agent - Mid 2000

My work focused on the particle system where I implemented particle collision with planes and ellipsoids to approximate floors and objects. Collision data could be generated within the editor or dynamically at runtime based on nearby objects such as characters. This allowed gameplay interactions such as Sam disturbing smoke in certain environments.

The system supported two collision modes: hard and soft. Soft collision allowed particles to gradually deflect rather than reflect, producing more natural smoke behavior. On PS2 this simulation ran on VU0 in micro mode using scratchpad memory and DMA transfers.

I significantly optimized particle performance by introducing particle spawners and instances, which improved batching efficiency and allowed reduced simulation rates when appropriate. This also simplified particle authoring workflows for FX artists.

While the Xbox version used cube maps for ice materials, the PS2 version lacked this capability. I implemented sphere mapping along with a conversion workflow from cube maps to sphere maps to improve ice rendering on PS2.


I also provided technical and artistic support to the content team, including redesigning the tangent-space generation pipeline to improve texture mapping quality.

TMNT - Late 2000

This was a port from the PS2 version to the Xbox 360 and PC.

In order to establish a proper Xbox 360 look per pixel lighting was needed but we were missing normal maps.

Implement the per pixel lighting. For normal textures worked, along side the artists on a normal generation flow from existing textures. Different Low, Med or High pass filters could be applied on different channels and combined into a height map which, combined with different octave of Perlin noise would generate the normal map. This method allowed us to generate quickly visual acceptable normal maps for around 80% of the data. The last 20% we’re created by the artists from scratch.

Another thing that I’ve covered was the directional shadow. For this I’ve implemented a cascaded shadow with high blur kernel. To optimize where it makes sense to apply the high blur kernel a penumbra prediction map was generated from edges of shadow objects. Finally, the high blur kernel was applied conditionally based of the penumbra prediction along with [ifany] shader block conditional.

People (Unreleased) - Late 2000

I worked on character lighting, focusing on precomputed subsurface scattering evaluated per vertex using spherical harmonics.



Later, I transitioned from spherical harmonics to zonal harmonics to enable rotation of the lighting solution during skinning. To support all gameplay cases, the lighting solution was implemented both on GPU and in CPU assembly when skinning was active.


Deus Ex Human Revolution - Late 2000

Deus Ex Human Revolution was built on the Crystal Dynamics engine. Early in production the team decided not to use lightmaps due to potential production complexity. Lighting relied on a forward rendering approach, which limited the number of lights affecting each object and resulted in under-lit scenes.

I introduced deferred shading to support a significantly larger number of dynamic lights per scene. Stencil buffers were used to mark intersections between lights and scene geometry to reduce computation costs. Most lights were fill lights without shadows, which worked particularly well with deferred shading. At runtime we frequently had 100–130 visible lights per frame.


I collaborated closely with lighting artists to implement a wide range of light types including neon, omni, spot, projective, and non-uniform scalable lights, each supporting different diffuse and specular models. The deferred pipeline also enabled volumetric fog primitives.

I also developed a data-driven post-processing system integrated directly with gameplay.

During prototyping I explored several experimental features, including a smooth soft-shadow technique based on smoothie shadow maps, which ultimately did not ship.

FUNLabs - Early 2010

One project I worked on was the implementation of a material blending tool for modeling that simplified transitions between materials and reduced workload for artists. The resulting output was also optimized for GPU execution.

I also developed an engine-level rain system that dynamically affected materials, displayed raindrops and puddles, and applied a post-processing filter producing rain splatter on silhouettes during heavy rainfall.

Additional work included real-time radiosity for spot lights using Reflective Shadow Maps optimized for GPU cache usage, along with ray-marched volumetric fog and motion blur.

I optimized the GBuffer by compressing normal maps into two channels using spherical coordinates and built several supporting tools.

Internally, I delivered presentations to help content creators understand the engine pipeline, how production scenarios affect texture streaming memory, and how to use it efficiently. I also organized Jeux d'enfants internal sessions where developers shared projects and games that inspired them.

Games released: Men in black: Alien Crisis, Cabela's Hunting Expeditions, Rapala Pro Bass Fishing

Prototype 1 & 2 - Early 2010

Prototype 1 and 2 were remastered for PS4 and Xbox One, including asset improvements and several new technical features.

I implemented volumetric SSAO for Prototype 1, generating normals directly from the depth buffer.

I also implemented soft contact shadows using cone tracing against ellipsoids attached to characters to approximate their geometry. During research I evaluated several techniques including directional ambient capture stored in a volumetric spherical harmonics texture before settling on cone tracing.

Additionally, I contributed improvements to the time-of-day system and enhanced environment specular reflections.

Other work included visual polishing of picked-up objects using layered blurred transparency.

Angry Birds Wii/WiiU - Mid 2010

The Angry Birds port to Wii/WiiU combined the Angry Birds trilogy into a single game along with new features such as dynamic backgrounds.

As producer overseeing the port, I worked closely with Rovio and Activision on planning, custom input schemes, achievements, UI updates, and physical and rendering optimizations.

The project was delivered on schedule and within budget.

Tony Hawk's Pro Skater 5 - Mid 2010

Tony Hawk's Pro Skater 5 was a down-port to PS3 and Xbox 360 from the PS4/Xbox One/PC version being developed concurrently.


I led a four-person team responsible for adapting the content to PS3 and Xbox 360, focusing on memory constraints and performance optimization.

We simplified collision data from complex collision meshes to custom simplified shapes, removed one level and updated blueprint logic accordingly, configured texture streaming, and in one case implemented dynamic content loading.

The project shipped on time and within scope.

T-Me studios - Mid 2010

T-Me Studios maintained a portfolio of approximately 3000 Android applications including launchers, keyboards, themes and screen savers, generating around 30 million new users per month.

I worked as a core programmer focusing on Android applications, UI systems, View-Model architecture, and related infrastructure.

My work included implementing water simulation for screen savers using a Verlet integrator with OpenGL ES, consolidating launchers and themes into a unified application, building cross-promotion systems for the theme portfolio, and designing user journey analytics with AWS Kinesis combined with epsilon-greedy strategies to optimize content recommendations. I also contributed to the publishing platform used across the entire portfolio.

Basmo - Late 2010

Basmo was an Android and iPhone application designed to assist users in reading and organizing books.

Key ideas from books could be captured directly by scanning pages via OCR or by using voice-to-text input.

Visually styled quotes could be generated similarly to Instagram quote formats and shared with other Basmo users or external social media platforms.

I implemented the entire Android application including OCR and voice-to-text integration, Firebase document structures, book database integration, Kindle highlight importing, and related functionality.

One notable contribution was a page-flattening algorithm based on MSER that improved OCR accuracy. When scanning pages near the spine of a book the page curvature negatively affects OCR, and the flattening process significantly improved recognition quality.

Stranded Deep - Early 2020

Stranded Deep maintained two separate codebases: one for consoles (PS4 and Xbox Series X|S) and another for PC, each using different versions of Unity.

I worked on implementing co-op multiplayer across both projects alongside a distributed team of roughly eight developers across multiple continents.

After evaluating several networking solutions I selected Photon as the networking layer. Core gameplay systems including player movement and animation, crafting, object interaction, raft systems, island streaming, and achievements were adapted to multiplayer. The entire world state had to synchronize from server to clients since the server could generate custom worlds, and we also implemented join-in-progress functionality.


During development we upgraded Unity and platform tooling, implemented techniques to reduce raft rubber-banding, introduced simplified matchmaking, built new UI flows, and delivered numerous stability improvements.

Center Mass (unreleased) - Early 2020

Center Mass was designed as a realistic sniper simulation where weapon interactions played a central role. Bolt-action weapons featured authentic bolt mechanics, scopes simulated parallax based on focus distance, players adjusted elevation and windage through scope turrets, and bullet physics aimed for high ballistic accuracy.


I led a small team and contributed across most systems in the project, including the following areas

Bullet physics simulation supporting multiple bullet profiles and ballistic coefficients with centimeter-level accuracy.


Scope rendering systems including parallax simulation, correct reticle placement relative to focal planes, and mirage effects visible when focusing behind targets that could be used to read wind conditions.

I also implemented the animation systems covering weapon mechanics, turret manipulation, and character stances such as prone, workstation, standing, and crouching. We also explored a second animation system using weapon animations to drive hand positioning through IK, although this did not ship.

Another major focus was NPC AI. We implemented state-based AI using behavior trees with cover point queries handled through EQS.

I also implemented a lighting system with LOD management allowing lights to dynamically change parameters and disable expensive shadows at distance with minimal visual popping.

Lighting data was also integrated into NPC perception, enabling a camouflage system that approximated lighting on the player and background to detect silhouettes against bright environments or the sky.

Development began on Unreal Engine 5.0 and was gradually upgraded through Unreal Engine 5.4.

Forgotten Runiverse - Mid 2020

Forgotten Runiverse is a web-based fantasy MMO set in the Forgotten Runes Wizard's Cult universe.


The game uses Colyseus, Phaser, MongoDB, and Redis-synchronized servers handling APIs, exploration rooms, and combat rooms.

My work focused primarily on performance and stability improvements including WebSocket performance tuning, client-side optimizations such as pathfinding and cell streaming, server-side optimizations, automated bot-based stress testing, predictive client joins to reduce latency spikes, and mobile texture compression.