Resume#
Programming#
Tools#
I utilize open-source software for development.
Languages: C#, Python, Markdown, reStructuredText, HLSL, GLSL, PowerShell
Version control: Git (GitHub, GitLab), Subversion (TortoiseSVN)
Source code editors: Notepad++, Visual Studio Code, PyCharm
Project management: Redmine
Documentation generators: MkDocs, Sphinx
Research and development: Zotero, Logseq, draw.io
Other: PowerShell Terminal
Learning: Rust
Experience#
Project Reality: Battlefield 2#
- Date:
2021 - Present
- Link:
As a developer for Project Reality: Battlefield 2, I:
Collaborated with other developers on new features
Assisted new contributors with development
Published development blogs to update the player community on game progress
Utilized Redmine for tracking changes and updates, and TortoiseSVN for version control
Implemented various features, including:
- HLSL Updates
Rewrote shader codebase to Shader Model 3.0
Ported shader assembly to programmable shaders
Rewrote post-processing suppression, thermal pixelation, and water reflection
- HLSL Implementations
16x anisotropic filtering support
Complete per-pixel lighting
Distance-based fog
Logarithmic depth buffering
Offmap terrain procedural sampling
Valve Software’s Half-Lambert Lighting
- Python Implementations
Python-generated dynamic AI view distance setting
Reformatted codebase for PEP-8 standards
Extended bot loadout to spawn with standard and alternate kits
Optional randomized bot loadout kits via Python
- C# Scripting
Finding missing files (AI templates, effects)
Finding duplicate files (sound, object components)
Generating information lists (static objects, shader techniques)
Developed and maintained several related projects, including:
RealityDocs: Project Reality’s static documentation site.
RealityShaders: An open-source repository for Project Reality’s updated shaders.
RealityUDL: Project Reality’s language support for Notepad++.
Projects#
ReShade Shaders#
- Date:
2020 - Present
- Link:
I created CShade, a library of image and video processing shaders, which includes:
AMD FidelityFX ports
Anti-Aliasing
Camera effects: Autoexposure, Dual-Kawase bloom, lens effect, and vignette.
Color conversions: Chromaticity space, polar coordinate space, and grayscale.
Local Normalization: Census Transform and Local Contrast Normalization.
Convolutions: Gaussian blur, edge detection, and sharpening.
Motion estimation: Hierarchical Lucas-Kanade optical flow.
Post-processing: Backbuffer blending and letterbox.
Video effects: Datamoshing, motion blur, and vector lines.
ReadShade#
- Date:
2024 - Present
- Link:
I launched a documentation site for ReShade-related support using MkDocs and collaborated with Depth3D to create a documentation site.
PythonicEngine#
- Date:
2023
- Link:
I spent a weekend in 2023 following Coder Space’s Python 3D Engine Series and learned about:
Adding geometry, basic lighting, and a camera to a scene
Best practices: mipmapping, gamma-correction, and code refactoring
Fundamentals of the OpenGL pipeline
Using PyGame, ModernGL, and PyGLM to make an engine
Differences between Vertex Buffer Objects (VBOs) and Vertex Array Objects (VAOs)
I also learned about code refactoring through polymorphism, creating a skybox, plane-based skyboxing, and smooth shadowmapping, and used Sphinx to generate documentation for the project.