S oftwares
OS Prototype
Summer 2018 | Team size: 2
This is a prototype project just for fun. It is a very basic 32-bit OS that can run on modern x86 machines. Basic I/O is implemented for keyboard, mouse, legacy graphics, audio, and, certainly, HDD. It can run C++, C, and x86 ASM programs.
However, as the priority was not for anyone to “use”, but just as a sandbox, no user-friendly interface was developed.
*Only some files that are written completely by me are publicly available on GitHub.
OS Development Utils on Windows
Summer 2018 | Independent Work
In order to compile, assemble, link codes, and write them into a correct binary format for debugging on VMs, a series of utils are developed for such workflow on Windows. Retrospectively, if this were a more serious project, using Linux as the development environment would have benefited the workflow. Yet, most issues such as incompatibility between Windows and GNU software or a lack of certain useful Linux commands are resolved.
*Some tools require Cygwin.
Cross
January 2022 | Team size: 5
This is a Unity 2D puzzle game made in 48 hours during the 2022 Global Game Jam. I was the chief programmer and wrote more than 1,000 lines of code with another programmer to implement character movement, an inventory system, and minigames.
The main theme was that the character somehow gets involved in a temporal-spacial anomaly. But only at the end of the player’s second play, they will start to understand the background information and see the Cross.
Spoilers
The character is a candidate for an anomaly correction team and this is just an entry exam with their memory erased temporarily. They, the principal, will need to collect necessary information and items and make decisions to eliminate the generation of nearly identical counterparts that are actually themself as well. A principal and a counterpart start their journey from opposite sides of the anomaly which are 7-day journey away. Yet, usually, when they meet on day 3 or 4, they will cancel each other out.
Simple Encoder
Summer 2019 | Independent Work
A simple C#.NET Windows Forms Application that can encode unicode texts using old-fashioned Vigenère and rail fence ciphers. It can also generate abracadabras with the original text letters as initials using hard-coded probability tables to add useless “wordiness” to the text.
Simple Decoder
Summer 2019 | Independent Work
The friend of the Simple Encoder. It can use basic statistical methods to analyze a given text to show whether it is likely to be encoded by only rail fence and/or Vigenère/Caesar cipher. It first analyzes the likelihood of different combined key lengths, which is the Vigenère key length multiplied by fence count. Then it will automatically analyze the most likely key for each position in the key length but user-adjustable with a plot for likelihood reference. With a fence count f larger than 1, the yielded key would be an f-fold repetitive string so that the user will spot the presence of the fence cipher.