Full stack developer, video game designer.
Plays shooters, fighters, and rhythm games.
Fan game of the popular anime tower defense game Arknights. Have characters battle each other with familiar abilities taken and enhanced straight from the base game. Made in Unity with a fully deterministic battle engine, complete game state serialization and deserialization, and full support for rollback netcode. Has a tentative backend written with Java and Netty, offering room-based matchmaking and NAT punchthrough negotiation with a custom networking protocol. Uses GGPO C++ bindings for gameplay netcode as of right now.
Development suite to help plugin developers get rid of boilerplate code. Provides abstraction layers for player classes, entities, schedulers, and commands on different platforms. Developers can easily create player data container classes for their players, with creation/destroy lifecycle automatically managed. YukiCommons also provides an abstraction to allow easy registration of custom plugin commands across multiple platforms. Currently supports Spigot, Bungeecord, and Velocity.
Provides communication between different Minecraft servers in network (i.e. Buneecord + multiple Spigot instances) over WebSocket, without relying on plugin channels. Supports annotation-based message listener registration (similar to Bukkit’s @EventHandler annotation), bi-directional responses and conversations, as well as sending from one Spigot instance to another via forwarding through the proxy server. YukiMessenger is currently undergoing rework to support RPC-based messaging, with a custom binary protocol and support for custom data type serializers.
Lightweight web-based manga reader supporting multiple popular sources. Supports real-time image decryption/descrambling and transformation.
Authentication and identity management platform for my services. Provides authentication service for web services and games I developed.
Server orchestration and automatic deployment tool for networks of online game servers (i.e. Minecraft servers). Supports automatic resource synchronization between instances, dynamic creation/destruction of server nodes based on player count and custom metrics. Configure once on the master instance and synchronizes automatically to all instances. Provides a WebSocket endpoint for game server instances to upload their metrics (i.e. player count, CPU load).
Black magic for the rhythm game Project Sekai - simulates player input with variable and configurable error to automatically clear songs during “grinds” for leaderboard ranks. Reads and parses chart files on the host device, and communicates with an application installed on the mobile device to simulate touch signals through /dev/uinput.
Minecraft sever dedicated to PVP, hosted with NetEase (China)’s developer UGC program. All plugins developed from scratch. Supports virtual stages, allowing multiple worlds of different purposes to be dynamically allocated and recycled on the same Spigot instance. Uses a heavily modified fork of PaperSpigot that aims for extreme performance and determinism in PVP scenarios.
More WIP and experimental projects found on my
GitHub[↗]