I’m working as a Technical Sound Designer/Audio Programmer at Snail Games now, my daily duties are all about game audio related businesses, including gameplay programming and game engine programming. I design the systemic audio frameworks for different games. I write gameplay scripts, game engine codes, and pipeline tool codes for different projects.
I’ve been self-taught through different subjects in CS such like algorithm and data structures, computer hardware and software architectures, programming languages and so on by commonly used textbooks and online courses.
I’ve been self-taught about different mathematical subjects until now after I finished my formal educations. My mathematical knowledge (such as calculus/linear algebra/statistics/discrete math) is sufficient enough for game development. I’m currently working on more advanced topics like abstract algebra and differential geometry.
Dart: I learned Dart in order to get some fresh mind wind around the latest Declarative Programming trend in the mobile app development. The showcase project is , a toolkit app running on Android and iOS by Flutter framework.
About API: I started my learning journey of real-time rendering by experimenting on modern OpenGL, and later I adopted to DirectX 11. Now I’ve been familiar with Vulkan and DirectX 12 by working on my own game engine. My only unfamiliar major API is Metal because I don’t have enough time for it.
About techniques: I understand the most of the state-of-the-art rendering techniques and implemented some of them (except those which are heavily product-specific or not widely implemented by the hardware vendors, for example, hardware accelerated ray-tracing). My major learning sources are from 2012-2019 SIGGRAPH and GDC courses, classic textbooks and those wonderful developers personal blogs. Some of my top interests are GI, surface reflectance model and rendering software architecture.
About API: I could work from the front-end (Authoring tools, framework design) to the back-end (Integration, wrapper API design) of FMOD and Wwise. I have had some experience with OpenAL previously.
About techniques: I’ve learned through different sources about how to develop softwares for DSP in the past few years. I’m casually working on a low-level audio framework project by reinventing the wheel from things like basic FFT algorithm and biquad filter.
Qt: I use it for the editor and tools of my game engine.
Unity: Typically I only write the prototype/evaluation/demonstration code for other teams or dive into their audio problems when they need.
Unreal Engine: Typically I give prototype solution in C++/Blueprint or UML style things about the audio part for the whole game. I’ve participated in the development circle fully in several released games, include one VR project which I spent a little bit more time than other games.
Version control system: I use Git and SVN daily.
Docker: I’ve had some IT experience like configuring and deploying Project Management tools for the colleagues in the audio department.
JSON: I use it for my game engine’s data serialization module.
Documentation: I write documents with Markdown and LaTeX at most of the time.
UNIX family OS: I have some user and developer experiences on CentOS/Ubuntu/macOS by deploying cross-platform projects and building host servers.
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.
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.
Zhejiang Feifei Film and Television Culture Media Co., Ltd
Film music composing, sound design, live recording and audio editing.
Kaibo Music Studio
Recording production, composing and audio editing.
Beijing Midi School of Music
First two years I was in Electric Guitar discipline and the final year I spent more time on the audio engineering field.