Work

I’m a technical director at ROBLOX. Previously I worked as a rendering engineer at Sperasoft, Inc. on FIFA 13 and FIFA Street titles, as a PS3 programmer at Saber Interactive and as a lead engine developer at CREAT Studios; during my career I’ve helped ship many games on PS2/PS3/XBox 360/PC.

Games in reverse chronological order:

FIFA 13 (PC/PS3/X360), UEFA EURO 2012 (PC/PS3/X360), FIFA Street 2012 (PS3/X360), Battle: Los Angeles (PC/PS3/X360), SkyFighter (PS3), TerRover (PS3), Hamster Ball (PS3), Wakeboarding HD (PS3), Mushroom Wars (PS3), Digger HD (PS3), Smash Cars (PS3), Magic Ball (PS3), Cuboid (PS3), Mahjong Tales (PS3), Aqua Teen Hunger Force (PS2)

Projects

I’m also working on a wide variety of open-source projects, most of which are hosted on GitHub. Here’s a short selection:

pugixml

pugixml is a light-weight C++ XML processing library with an extremely fast and memory efficient DOM parser and XPath 1.0 support. It is used in a wide range of applications, including various embedded systems, video game engines, offline renderers, web backends and robotics/space software. A lot of effort goes into making sure pugixml has an easy-to-use API, has as few defects as possible and runs on all widespread platforms.

qgrep

qgrep is a fast grep that uses an incrementally updated index to perform fast regular-expression based searches in large code bases. It uses RE2 and LZ4 along with a lot of custom optimizations to make sure queries are as fast as possible. Additionally it features a Vim plugin for great search experience in the best text editor ;)

meshoptimizer

meshoptimizer is a library that can optimize geometry to render faster on GPUs by reordering vertex/index data. The library has algorithms that optimize vertex reuse, vertex access locality and overdraw, resulting in fewer vertex/fragment shader invocations and fewer cache misses when loading vertex data.

codesize

codesize is a tool that shows the memory impact of your code using a hierarchical display adapted to work well in large C++ codebases. It works by parsing debug information from PDB/ELF/Mach-O files. The purpose of the tool is to let the developer quickly find areas in the codebase that can be improved to gain memory by reducing code size, which is particularly important on memory-constrained platforms.

Publications

Here are some talks and publications I’ve done over the years:

I also have a blog with technical posts on various subjects (you are reading it!).

Contacts

You can reach me by e-mail at arseny.kapoulkine@gmail.com or on Twitter @zeuxcg.