Hi, I'm Chengyu Wu.

This page is my portfolio including my projects during my study at University of Michigan.

Blade Delivery

Blade Delivery is a game jam project. I spent around 15 hours in this project, using free art and sound effects from asset store. In this game, players will control a cat to dodge enemies. Controling speed is very important. I coded a game manager, reporting player's positon to enemies, using System.Action. Similar to sounds and noise in reality, if the cat moves fast, it will draw attention of enemies far away from it.

Move AR

Move AR is a 4-week AR project based on Unity Engine. Move AR is a physical exercise app. It is designed for teaching users correct form of different exercises. The app shows models in AR space to allow user to observe moves from any direction, with part of the models highlighted to tell which part of body is getting exercised. For modols and animations, my partners used Shogun to get animations in motion capture labs. Then I edited models in Blender, added models to Unity, assigned animations and designed model highlighting algorithms and generated models in AR scene. This app also supports user facing camera for users want to compare their moves with the model. I designed algorithm for switching device cameras in Unity AR foundation. This app not only provides users a 3D observation of different moves in Unity AR scene, but also realizes comparison of user and model by placing model in user facing camera. We believe this app can help users learn correct forms of physical exercise.

Ann Arbor Go

Ann Arbor Go is a 3-week AR project based on Unity Engine. We created a digital tour guide of Ann Arbor based on Mapbox GPS service. We added functions similar to popular AR game Pokemon Go. We used map service from Mapbox to get the real world location of players and adjust player location in unity scene according to it. We designed AR interactions. We added object spawning, image tracking and mini games in Unity AR. We designed inventory and currency systems for tree-planting mini games. Players can walk to interactive digital landmarks, scan landmark images to spawn models and get currency. They can use currency to buy seeds and plant trees to real world using AR. As the tree grow up, players will get more currency to buy new trees. We also designed data storage class to hold data between scenes. This class realizes the appearance of a same tree both on map and in AR scene. This app can help visitors learn about the history and development of Ann Arbor city as well as University of Michigan.

CSE Simulator

CSE Simulator is a 3-week VR project based on Unreal Engine 5. In this project I cooperated with another student. We rebuilt CSE study room in a VR scene. In addition to just looking around, players can interact with light, fire alarms and copy machines via their controller. We added custom functions to controller scripts to realize ray cast detection. We created classes to realize ray cast interaction and collision trigger events. Easter eggs are added to the game. Players can listen to NPCs talking, control their fighting or even grab a katana and destroy the study room. This project realizes VR remote visit to the CSE study room and has the potential to reduce cost of visiting our University.

ElectriKitty

In this project, we designed and developed 2D platformer game Electrikitty. I wrote scripts for enemy AI and made in-game tutorials. We arranged multiple playtests in University of Michigan, collected feedback and made changes to our game. In this platformer game, players will play as a cat mastering the mystic power of electricity. The two core mechanics of the game is climbing and electrical power. The cat can climb on walls or ceilings, as well as do wall jump. Electrical power helps cat to attract magnetic objects or to repel itself from magnetic objects.

Classic Zelda Game

In the 3-week development, we recreated the first dungeon of the Legend of Zelda using Unity Engine. We recreated the moving, attacking, collecting mechanics as well as different enemies in the original game. We designed and created a custom level with a new mechanic: Morph Beam. This mechanic allows link to morph to monsters in order to avoid being hurt. We designed a general life point system. This system applies to all characters and object that can be destroyed or hurt. It helps to calculate damage, and trigger effects like knock back effects.

Light That Fire

This is a 2-week project. In this project, I designed and developed a top down shooter game. In the game, player will control a robot shooting two kinds of projectiles: lava and storm. The core mechanic of the game is to solve puzzles or defeat enemies by triggering the effects of projectiles: ignite objects or blow up enemies. To to visualize the effects of projectiles, I used the particle system of unity. In the mean time, I applied an expanding collider to simulate the spread of spark and wind.

Zombie Outbreak

Zombie Outbreak is a 4-player board game that I designed with 3 other students. It is a turn-based board game where players move on the map, kill zombies, find cure for zombie virus and save the world. The core mechanic of the game is random effects. These effects are decided by drawing cards from an infection deck and an effect deck. We analyzed the board game, performed inaccessibility breakdown on the game to update rules and change game components. We also arranged local playtest and collected feedback from players. In the link below, a google doc is provided, including some of our work schedule, our rulebook draft and our final rulebook.

Credit Card Churn Prediction Based on Spending Behaviors

In this project, I realized a credit card churn prediction model. I first did some data cleaning works. I extracted features on spending behaviors and standardized them as well as dropped outliers in data. I trained different supervised machine learning models such as Random Forest, K Nearest Neighbors and Logistic Regression to predict credit card churn and compare their performance. I used cross validation to prevent overfitting and find the best parameters for every model. The models reached a maximum accuracy of 93%. I checked the feature importance from Random Forest model and found the main contributor to credit card churn.

Customer Clustering based on Relationship with Card Providers

In this project, I designed a credit card user classifier model. I first did some data exploraton, including cleaning and encoding card user data, as well as doing data visualization. I applied LDA algorithms to user relationship features and analyzed the model by comparing with K-means model and visualizing clusters of users using PCA. This model divided credit card users into two categories.

SF Crime

In this project, I analyzed crime data from San Francisco government open data in a Databricks notebook based on Apache Spark engine. I used data manipulation commands from Spark SQL library and related libraries, as well as user definded functions to get data from this large data set and clean data at the same time. I used plots like line chart or bar chart to visualize our data, in order to get insights. The plots provides us an overview of San Francisco crime distirbution, including distribution on categories, time and location. Besides, these data works also provide us information of San Francisco police, like potential policy changes.

Steam review analysis

In this personal project, I analyzed and cleaned Steam review data in RStudio. I visualized data distribution used linear regression and applied hypothesis tests to gain relationship between review word count, game hours, and review helpful level. The result of this project provides insight of Steam community review to game developers.

About me

I'm a graduate student at University of Michigan. My major is ECE. I love playing video games. Currently I'm on my journey of game development and data science. This semester I'm learning Unreal engine and XR techniques, while using python to do some data work.

I'll graduate in April 2023. I'm searching for full-time positions on game development, software engineering and data analysis. If you have any position available, I will be willing to know about it.

Relevent courses

EECS 494, SI 544, EECS 498-003.

Related Skills

Python, R Language(RStudio), Unity Engine(uisng C#)

Get in touch

If you are intersted in talking more about games or game development with me, reach out to me!