About me

About me

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’m here

Technology stack

Computer Science

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.

Math

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.

Programming Language

  • C++: I’m familiar with C++11 and later standards well enough, please check my CodeFactor for a brief code quality review.

  • 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 Unboungo website, a toolkit app running on Android and iOS by Flutter framework.

  • C#/Objective-C/Java/JavaScript/Python/XML/Shell script languages and others: I didn’t study these programming languages thoroughly because they are not the preferred language in my most interesting domain, but I would learn them fastly on-the-fly when a certain task needs them. For example, I use Python in my Coursera ML website homework and PMovieFestival, Java in InnocenceEngine-Java.

Computer Graphics

  • 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.

Game Audio

  • 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 Waveless website by reinventing the wheel from things like basic FFT algorithm and biquad filter.

Commercial tools and framework

  • 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 ARKPark website which I spent a little bit more time than other games.

Other software development skills

  • 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.

Projects

  • InnocenceEngine

    Screen capture

I am working on this side project actively now, more detailed pieces of information are inside the InnocenceEngine website and the Trello website themselves.

  • Music I’ve written and produced lots of Audiomack website music for my own interests in the past few years.

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

Working 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 I spent more time on the audio engineering field.