Please use Chrome or Firefox. IE explorer will encounter some format issue.
Throughout years, I have created plenty of programming projects using different platforms and engines.
My Resume listing most of my skills and projects.
All the colleges I have attended in the United States.
Relevant skill ratings for my programming and game development career.
My relevant courses on the topic of computer science.
Major in Master of Entertainment Technology(MET)
Majored in Computer Science
The fundamental class of computer programming. I choose Java as my start up in college because it is simple to use without losing strong features.
Discrete math is mainly focusing on Boolean algebra, probability, matrix operations and vectors. I have to say although computer programmers do not have to be master of math, certain math knowledge definitely helps.
Some mid-level materials on the data structures that will be frequently used in daily programming. Data structures like tree, hash map, array, recursion and linked list are introduced and implemented in Java.
It was a nightmare. To be honest I become so grateful to the invention of high level language after I finish the class. The assembly language (MIPS in this class) is troublesome to use and not efficient at all. Can you believe that I hand code a vertically scrolling shooter game in which I need to issue command for all the pixels per frame? God. The good news is: I used MIPS to create a simple scroll shooting game, pixel by pixel. This is the most primitive game I have ever made.
Basic material on generally how computer works and different approaches to overcome some difficulties in computer design like off power clock, sys call in single core, multi-threading in single core and so on. Everything is in C99 since Java is not fit for OS programming.
Introduction to some world famous algorithms like Boyer Moore, Huffman Compression, RSA encryption and FordFulkerson. All the algorithms are implemented in Java.
It is basically a pure math class explaining Turing machine, advanced Boolean algebra and P/NP problems. Learning how to prove whether a problem is P or NP is really suffering and challenging.
This class was the only non-coding computer science class for my undergraduate study in Pitt. It emphasized on the formal organization of group projects in real industry world like Scrum, waterfall, iterative development and so on. I used a simpler version of Scrum for organizing my game project for CS1666.
A more advanced class of CS449. It extends my knowledge from system software to OS which includes the handling of multi-task on a single core, device drivers, disk manipulations and file system. A left single click of the mouse hides too many details under the cover of OS.
It is so far the most useful course in my college life I will say. In this class I learn from the most basic mathematical idea of how OpenGL draws triangles to complex manipulations like change of different coordinates for different objects and we have to code everything from SCRATCH！Can you even imagine how much efforts I put to make a simple Temple run game? Praise to the creation of Unity.
This is a fun class which teaches me how to do QA from manually brute force approach to unit testings. No matter what software is under developing, QA is always important. Well, you do not want your operator to get a sudden death simply because he picks on an armor, right?
HPC is a pretty popular topic recently and it is the first time for me to think deeper than just coding in single thread logic. The idea of having multiple threads in multiple cores at hand changes how the code is constructed. We used Nvidia GPU to do the vector calculations and its power is far beyond my expectation.
CS1666 was the most enjoyable class in my undergraduate study. I felt like everything I had learnt for programming was the preparation for this class. We worked in groups to code an semester-long game project with SDL and OpenGL. We were not allowed to use anything from the Internet including music, spirits, effects and any packages. To compose music and to draw spirit sheets as a programmer was a new experience for me. Please check out the Forbidden Archive section for project demo.
The major languages I use for programming
Learnt for introduction level undergraduate CS classes
Beautiful language. Really a shame it is not widely used in game industry.
Used for my web application class.
Please check my resume for additional detail.
My favorite game engine. Had a lot of fun with it.
Compact engine for 2D game. My initial plan for the game class.
Great engine to create highly graphic games.
As a Mac person, Xcode is always my best friend
Please check my resume for additional detail.