About me

Currently

I’m working as a technical sound designer/audio programmer at Snail Games, China now, my daily duties are all around game audio related business, but most of the time I’m working on programming about gameplay and game engine parts (Yep not only the script stuff but also 3rd-party libs integration/the wrapper API design/new tech R&D/code review/criticize Unreal Engine’s spaghetti and etc).

I’m here

Technology stack

Caution No any formal CS background

Algorithm

#include <algorithm> Unless the STL implementation is too redundant (typically it is) then I’ll handcraft some sort/search/rand/hash/jump/dance/swim by help from the books you know I know and Stack Overflow.

Beer drinking

It’s too serious to work in the game industry, so I trained myself a little bit to be an alcohol-oriented programmer.

C++

I like to investigate and understand every corner of C++ because there are always some gaps in my knowledge of it (until one day I turn my head to Dlang or Rust?), check my CodeFactor for a code quality review! I have been taught by myself based on C++11 and higher, so don’t support anything under GCC 4.8.1/MSVC 12.0.

C#

Understand (the most) of C# language specifications (really?). But only use it sometimes with Unity.

CMake

All experiences come from my pet project. Keen to keep everything platform-independent.

Computer Graphics

Started from OpenGL and GLSL, later adopted to DirectX 11 and HLSL, now work on adopting Vulkan DX12 and Metal (And PS4’s GNU if someone could send me a second-hand dev machine for deployment). Hate to be a walking SPIR-V converter. I like translating some fancy formulae to shader (just after I really understood what those SIGGRAPH papers and GDC talks try to express). OK what is the best solution of GI???

Dart

A Declarative Programming learning practice to throw my tangled mind away from the OOP mess. Just some 3-day interest in mobile app development. Well since Google has released the stable version of Flutter I could keep working on it Unboungo website again (or jump to another React Native ship?).

Docker

Some IT experience e.g. build and config PM tools like OpenProject for the colleagues.

DSP

All my experience are about theoretical things because haven’t occurred the scenario to write something in real (Sadly nobody around me is unsatisfied with FMOD and Wwise’s simple sound propagation algorithm until now). Could give me some numpy and scipy or other audio DSP frameworks and let’s DFT/IDFT (or design another already existed bi-Quad filter?).

FMOD

I could work from front-end (FMOD Studio) to back-end (FMOD 5 API). Current job related, where the half of the game audio community holy war came from.

Git

Of course (who doesn’t use VCS today?).

Java

Whom the first time I wrote a tiny game engine with and then started to question “where is my memory?”

JavaScript

Some FMOD Studio script experience.

JSON

Use it for my project’s data serialization.

LaTeX

Sometimes I wrote blogs, or make notes for those long math formulae.

Machine learning

I could write a Coursera ML website class finisher level CNN. But still don’t find which project I could insert these TF/Keras code to.

Markdown

Always enjoy writing with md.

Math

Calculus/Linear Algebra/Statistics/bla bla… I love math, I hate math, especially when you need to translate them into SIMD.

Python

Machine learning + DSP programming + Web crawler, documents (and Google) guide me.

Qt

Use this framework for the editor and tools of my project.

Unity

Typically I only write the prototype/evaluation/demonstration code for other teams or dive into their audio problems.

Unreal Engine

Typically I give prototype solution in C++/Blueprint or UML style things about audio part for the whole game and let others wait and cry when they hit the compile button, or make some noise around when people started to write or design something so inefficient that will lead everybody to work at 12 o’clock in the night (Unfortunately, sometimes I will be the guy who buries bombs).

UNIX

Naive experience in CentOS/Ubuntu/macOS, no reason to drown in Windows cliché when you have time to waste on some multi-platforms project (also I need some proxy/blogger host server so read a little LAMP 101 and got it works).

Wwise

I could work from front-end (Wwise Authoring Tool) to back-end (Wwise API). Current job related, where another half of the game audio community holy war came from.

Projects

InnocenceEngine

Screen capture gifScreen capture

I am working on this side project actively now, more detail information is just inside the InnocenceEngine website and the Trello website themselves. Game is hard to develop, harder the game engine it is, but it’s still full of amazing and fun contents when I’m keeping learning and developing.

Music

As my past few years’ interests in music, I’ve written and produced lots of Audiomack website music (but most are…horrible enough)

Photography

I like always keeping amateur in Behance website photography, to maintain the inspiration (ok also because the nice equipment is fairly expensive).

Work experience

2016- Technical Sound Designer

Suzhou Snail Digital Technology Co., Ltd.

Full-stack technical support for whole company studios’ game audio development. Specialized on the audio engine integration, in-game audio implementation and general programming optimization.

2015-2016 Audio Engineer

Zhejiang Feifei Film and Television Culture Media Co., Ltd

Film music composing, sound design, live recording and audio editing.

2015 Junior Assistant

Kaibo Music Studio

Recording production, composing and audio editing.

Education

2012-2015 Beijing Midi School of Music

First two years I was in Electric Guitar discipline and the final year spent more time on audio engineering field.