Xing

Project Showcase

I've been programming for fun since middle school, and in addition to the collection of assorted games I have listed, I have also worked on many other personal projects. Here is a selection of them.

Please note that the contents of all off-site links, including but not limited to the michaelxing.azurewebsites.net domain, are not covered under the Creative Commons and GNU licenses that govern this website.

Recent

Seattle Transit Trek

The home page of Seattle Transit TrekA screenshot of a player

Competitive games and scavenger hunts played across the entire city. Like Jet Lag: The Game, but without the budget.

A live game for which I build the website, help consult for game balance, and run Game Control. The website includes event information, team management, and, during the game, live scoring and judging functionality.

Site is built with SvelteKit, running on Azure Static Web Apps and Azure Functions, backed by Cosmos DB.

Seattle Transit Trek Logo Visit

Coaster Seat Guru

The home page of Coaster Seat GuruA screenshot of Diamondback

Some other roller coaster enthusiasts on reddit had mentioned how nice it would be if there was a centralized database of which seats people like to sit in on various roller coasters (because we are well adjusted normal people who care very deeply about where to sit on a roller coaster don't question it).

So I built one.

Built with Next.js, hosted on Azure Functions, and backed by Cosmos DB.

CSG Logo Visit

SweetSpace

The gameA screenshot from the game

Cosmic radiation is tearing through your ship; you and your friends are the only “donauts” who can stop it! Donut waste time as you roll and patch your way through these bite-sized holes in your ship. You’ll need to communicate and cooperate to achieve your dream of a sweet, sweet space.

A game on which I was development lead, built for the Advanced Game Design course at Cornell University. Created over the course of a semester in a team of six, built in C++ using the Cornell University Game Library.

Won the Most Innovative Mobile Game award at the Cornell University Game Design Initiative's 2020 showcase.

SweetSpace Logo Learn More

University

Samwise - A Student Planner for Everyone

Samwise project overviewA typical week plan

A homework and project planner designed to help students plan their schedules and reduce stress. Integrates with Cornell registrar data to automatically import exams, as well as with Canvas to automatically import and update assignment deadlines and details.

A web app on which I was technical product manager after originally joining as a frontend developer. Built with React and runs on Firebase. Launched in early 2019 to over 200 users.

A project by the Cornell Design & Tech Initiative.

Samwise Logo VisitDTI Logo GitHub Repo

Flourish

The gameA screenshot from the game

Ages after Homo sapiens abandoned an exhausted Terra, life has just begun to reclaim its place on the surface. With limited resources, sunlight, and space, spread roots and grow towards the sky to become the last plant standing.

A game on which I was software lead, built for the Introduction to Game Design course at Cornell University. Created over the course of a semester in a team of seven, built in Java using LibGDX.

Won the Faculty Choice Award at Cornell's Bits on Our Minds 2019 annual student project showcase, won the Audience Choice Award at the Cornell University Game Design Initiative's 2019 showcase, and was accepted to the digital showcase at Boston FIG 2019.

Flourish Logo Learn More

Ultimate Tic-Tac-Toe

A game of Ultimate Tic-Tac-ToeA game of Ultimate Tic-Tac-Toe versus my AI

A remake of a personal project I originally wrote for my site in 9th grade, Ultimate Tic-Tac-Toe is a variant of the classic Tic-Tac-Toe with a drastically expanded rule set that allows for significantly more strategy (see here for rules). My remake is responsive to many more screen sizes, improves the multiplayer experience, and introduces an AI to play against in single player.

The online multiplayer offers real-time multiplayer between two clients on different machines using Socket.IO. Communication between devices is handled by a Socket.IO Node server I'm running on a free Azure instance.

The AI is powered by a Monte-Carlo Tree Search. On hard, the algorithm runs for 5 seconds (one on medium), so difficulty depends on the machine you play on. I managed to beat the AI on my phone once; so far, no luck on my laptop.

Tic-Tac-Toe Ultimate Tic-Tac-Toe

OCaml Tetris

The gameA screenshot from the game

A midterm project created in a team of four for our functional programming class. Written entirely in OCaml, with the strict limitation that only system libraries and OCaml standard library functions may be used. As such, we were unable to use any async libraries, graphics packages, input libraries, and more. Much effort was spent just figuring out how (if it was even possible) to get unbuffered keyboard input while a background timer ran the game.

For reasons of academic integrity, the source code is not available online, but we did make a joke trailer for the game.

Tetris Logo (Joke) Trailer

Cornell Roosevelt Institute Website

CU Roosevelt Home PageThe admin console from the website

Web site and management system designed for a student-run think tank. Included a public-facing website and a back-end content management system, built with Node.JS and Express, backed by MySQL.

CU Roosevelt Logo Visit

Online Multiplayer Games

A screenshot from Bringing Down the LandlordA screenshot from Tianjin Mahjong

A series of online multiplayer games powered by Node.js and Socket.IO on the backend, allowing multiple player to simultaneously connect to each other on their own devices over the internet to play against each other.

Includes a variant of Mahjong from the Chinese city of Tianjin and a Chinese card game I'm translating as Bringing Down the Landlord.

A black jack playing card Bringing Down the LandlordA mahjong tile Tianjin Mahjong

More Stuff

Non-Programming Excursions High School Junk