Work revolves mostly around performance.
Research & Development.
Research & Development.
A collection of compile-time validation rules to harden your classes. Compile-time errors with nice error messages to prevent silently loosing implicitly-declared constructors or default constructors, to enforce the rule of 5, to ensure a type is fast inside a vector, enforce move only, etc.
Functional C++ argument parsing. A single header that provides the necessary constructs to quickly add long options, short options, raw arguments (filenames) parsing to your software. A help command is automatically generated for you. Supports flags, required, optional, default and multi arguments. The library calls your provided lambdas, functions or member functions when an argument is detected.
A small framework to help benchmark C++ features and code. It provides easy calls to useful assembly features (thank you Chandler Carruth) and will create a nice report. There are some tips to analyse your code in the README.
An Eve Online map generator prototype based on the Voronoi algorithm. It uses cppRestSDK (Microsoft Casablanca) and it’s asynchronous REST calls to gather Eve Online information using their public APIs. You can choose between Euclidian, Manhattan and Chebyshev distances, or a mix of them. A great example of C++ REST usage.
This is a simple, for fun project to parse wine logs. These logs are usually > 1GB, and print all the function calls and returns when using WINEDUBEG=+relay. While debugging various applications, I needed to clean the logs to identify non-returning calls as these are usually (but not always) the cause of a crash. So this is a simple parser, that uses a thread pool and functor “call” objects to parse the log in a multi-threaded way. Conclusion: Multi-threading this is overkill, as it is the read function that needs optimizing, not the parsing :)
This project started out as a framework to parse books (project gutenberg or others) and generate sentences using the learned word chains. It now has an IRC client embedded, which allows it to connect to twitch chat channels, learning and speaking on twitch. The results are quite abrasive and hilarious.
is a simple and small utility to replace your scroll wheel up/down with a keyboard key. Respectively “p” and “l”. This was created after switching to a OS X only setup, where AutoHotKey is unavailable. I use this when playing Dota.
Open Source Contributions
Maintainer of the community sourced gamepad mapping library.
FST is a library of highly optimized containers and algorithms created by Alexandre Arsenault. It has a few containers directly geared towards video game engines. I’ve helped design the APIs for containers. I also contribute SIMD (SSE2) algorithms to the library. It is an ongoing collaboration.
I have contributed mainly to the client part of the OBS cross-plateform rewrite. I see a lot of potential in the software, but have had to step down as my vision doesn’t align with its creator’s.
I was hired as an intern at Savoir-Faire Linux to work on the OS X and Windows port of SFLPhone. It is an open-source, enterprise grade, VOIP phone. I worked on the CoreAudio backend and have prototyped some WASAPI features. I also spent a lot of time working on the client framework switch.
Unity Asset Store
This Unity Extension helps you find resource heavy GameObjects or mis-behaving scripts by recursing the selected object’s hierarchy and finding stats. It is much more intuitive than the builtin profiler, but less powerful.
It is perfect when you start analyzing a new game, or a port, and you have no idea what is doing what. It also makes for a great companion to the builtin Unity Profiler. Finally, you can also use it while development to quickly spot mistakes, making the final optimization stages easier.
A simple Unity3D extension that shows all the loaded Editor builtin icons. It is useful when making your own extensions or plugins. Simply double click an icon name to copy it. Use the icon in your own Editor classes with EditorGUIUtility.IconContent().
OS X Ports
Valyria Tear is an attempt at creating a free (as meant in the GNU General Public License) J-RPG game.
I was approached by Bertram25 to port the SDL game to OS X (since I had experience in other projects). It was quite straight-forward, and since the switch to SDL2.0, should be even easier.