This page lists some of my projects, work, and school projects.

  • πŸ’Έ = Professional work
  • 🏫 = School work
  • ✨ = Contributor
  • πŸ‘· = Maintainer
  • πŸ”— = Forked projects
  • πŸ… = Reward or Achievement

The rest are mostly open-source projects.

There are a lot of information on this page. Please use Ctrl+f to search through the project list.


Currently working on

  • jayces (Winter 2023 – Presented): My first programming language.

Tools, Framework, and Libraries

  • JCSNetP (Winter 2017): A framework is developed to improve efficiency in network programming using C++.
  • JCSQtJ (Fall 2017): A compact framework that encapsulates Qt Jami to expedite development. Explore additional projects that have utilized this framework, such as Guild-Emblem-Simulator, OC_Install, and more.
  • JCSNetS (Summer 2017): A dedicated network framework tailored for the creation of MMO games, leveraging Apache Mina and MySQL. Please checkout the project BB_Shoot, which utilizes this framework.
  • JCSPyGm_Lib (Winter 2016 🏫): A set of tools designed to boost the speed of game development with Pygame. Please visit the demo project ImpulseEngine for more detailed usage information. (6 weeks; including the demo project)
  • JCSCos2x_Lib (Fall 2016 – Winter 2016 🏫): A small library provides a fast, superficial, easy-to-implement layer for parallax effects and essential features for making a 2D game using Cocos2d-x. Watch a short video of the demo project here. (4 weeks; including the demo project)
  • JCSLOVELua (Fall 2016 – Winter 2016 🏫): A game framework built on the LΓ–VE 2D engine that enhances productivity and user experience by providing commonly used systems pre-implemented (animation, camera, input, rendering, simple physics, etc). Please checkout the demo project PetShop for more detailed usage information. (5 weeks; including the demo project)
  • JCSCC_Engine (Spring 2016 – Winter 2017 🏫): A game engine offering a straightforward programming interface for developing cross-platform native code games. It includes a resource manager with secure decoding and encoding algorithms. The project’s goal is to gain insights into the construction of game engines, understand their architecture, and apply this knowledge to other modern game engines.
  • JCSStarling (Spring 2015): This is a programming interface layered on top of the Starling framework, transforming the event-driven system into a component-driven system.

Unity C# stuff

  • Unity.Prefs (Fall 2023): A small library designed to fetch a list of EditorPrefs/PlayerPrefs.
  • Unity.Mx (Fall 2023): A command-based completion framework. It allows you to execute all kinds of tasks based on your design. The idea is to port the M-x functionality from Emacs.
  • NovBundle (Fall 2021 – Spring 2022 πŸ’Έ): An abstraction layer constructed atop the AssetBundles system, aiming to streamline the AssetBundles workflow, sparing users from delving into intricate system details.
  • WatchLog (Summer 2021 – Fall 2021 πŸ’Έ): A dedicated tool that tracks variable over time.
  • Inspect Yaml (Summer 2021 πŸ’Έ): A dedicated and up to date YAML editor inside the Inspector window.
  • Inspect Xml (Summer 2021 πŸ’Έ): A dedicated and up to date XML editor inside the Inspector window.
  • Inspect Json (Summer 2021 πŸ’Έ): A dedicated and up to date JSON editor inside the Inspector window.
  • Afterimage (Summer 2021 πŸ’Έ): Afterimage VFX for Unity. A simple solution that work with 2D and 3D renderers, including UI components (Image, Text, Button, etc).
  • sHierarchy (Summer 2021 πŸ’Έ): Minimalistic good looking hierarchy.
  • UnityWzLib (Summer 2021): WzLib for Unity.
  • 32feet.Unity.Example (Spring 2021): Example project to use 32feet inside Unity (Bluetooth Classic).
  • UnityLua (Spring 2020 πŸ’Έ): Use Lua scripting language (tolua) in Unity to accomplish hot update/fix functionality.
  • Unity_UndoRedoSystem (Summer 2018): Implementation of an Undo-Redo system in Unity using C# and uGUI.
  • Unity_Toggle (Summer 2018): A little bit overkill toggle button UI for Unity Engine using uGUI.
  • PackageExporter (Winter 2017): An alternative approach to package management utilizing ignore files.
  • JCSUnity (Summer 2016 – Winter 2017): Quickly construct your game using multiple components and predefined default settings.

Games

  • Alice in Surprise (Summer 2022): A mini-game that combines the mechanics of hack and slash with tile-matching. The game has been submitted to the 5th DIY Game Jam.
  • Pipeline Of Emperor Yu (Fall 2019 – Winter 2019 πŸ’Έ): A puzzle game that merges historical legends with the classic gameplay of water pipe challenges!
  • Greedy Island (Fall 2018 – Summer 2019 πŸ’Έ): A multiplayer shooting MOBA game on the mobile device. The project is created by the T-NEXUS studio. I contributed to the backend engineering by writing the login server and designing its database schema.
  • Sugar Sleuths (Fall 2017 – Winter 2017 πŸ«πŸ…πŸ…): A mulitplayer, hot-seat game in which the campers (players) discover clues that point to the Master Candy Thief.
  • BB_Shoot (Fall 2017): A bullet bounce game featuring multiplayer third-person shooter (TPS) mechanics.
  • Hemlock and the Horrible Net (Spring 2017 – Summer 2017 πŸ«πŸ’Έ): Embark on an undersea adventure in this side-scrolling game! Published on Google Play Store. (15 weeks)
  • PetShop (Winter 2016 🏫): An example project using JCSLOVELua Framework. Players can use a left-click of the mouse to generate adorable animals, allowing them to reside within a sandbox. The concept is to emulate an aquarium experience.
  • Might & Blade (Fall 2016 – Winter 2016 πŸ«πŸ…): A 3rd person hack and slash action game made in the Unity engine, developed by a team of 18 in the Academy of Art University within a span of 15 weeks.
  • DJMax_Remake (Spring 2016 🏫): A clone of DJMax implemented in Processing.
  • TPS (Fall 2015 – Winter 2015 🏫): A simple ASCII third-person shooter (TPS) game coded in C++. View the gameplay video here.
  • Project S (Summer 2015 – Winter 2015 πŸ’Έ): Action game (ACT) with RPG elements and a locked top-down perspective. I worked on the minimum viable product (MVP) of a game under NDA as the sole software engineer. The game wasn’t completed due to its 7+ years project timeline, so I passed it on to the next team.
  • Archers Duel (Winter 2014 πŸ«πŸ…): An compact RPG fighting game designed for two players to engage in battles using pre-designed archer characters. Developed with the Starling framework. and AS3. (7 weeks)
  • Cardinal (Fall 2014 πŸ«πŸ…): A compact visual novel game where the player assumes the role of a detective, working to unravel a mystery and identify the murderer. (7 weeks)
  • Rhythm Punks! (Fall 2014 – Winter 2014 🏫): A competitive two player game that will have the player fighting one another for victory. The first stage will be a death match between the two players, the second stage will have the players fighting enemies to see who can kill the most while dying the least. The 3rd stage will be a boss fight, where the player who does the most damage wins. (14 weeks)

Desktop apps

AR/VR mobile apps

Music apps

  • Meteo (Spring 2020 – Spring 2021 πŸ’ΈπŸ…): An app for sharing music that works with illuminated piano keyboards β€” Meteo piano. You can view a demonstration of the core mechanics here (please note that this demo is in its early stages and may appear rough).
  • Music_Visualizer (Fall 2018): Implementation of a music visualizer in Unity. Check out the demo here.

Algorithms

Fuzzy Matching

  • flx-zig (Spring 2024): Rewrite emacs-flx in Zig.
  • zig-flx (Spring 2024): Zig bindings for flx-c.
  • flx-c (Spring 2024): Rewrite emacs-flx in C.
  • flx-ts (Spring 2024): Rewrite emacs-flx in TypeScript, with added support for JavaScript.
  • FlxCs (Fall 2023): Rewrite emacs-flx in C#. Built on the Mono framework, you can utilize this in any environment compatible with Mono. This is utilized within the Unity.Mx tool.
  • flx-rs (Winter 2021): Rewrite emacs-flx in Rust for dynamic modules. The original emacs-flx were written in pure Emacs Lisp. While their scoring engine is impressive, the performance is unbearable on Windows systems. Therefore, this package was developed, leading to a speed increase ranging from 10x to 16x.
  • flxy-rs (Winter 2021): Fast, character-based search library in Rust. This represents my first attempt to rewrite emacs-flx in Rust, which was not successful. Although it remains usable, the results in terms of fuzzy matching were not as impressive as the original emacs-flx algorithm.

Animations, Shaders, and VFX

Physics

Web apps and services

Browser extensions

  • eyny-video-downloader (Spring 2024): An extension that integrates a download button for EYNY Video site.
  • browser-statistic (Spring 2024): This is a small extension that presents statistical charts indicating the websites you frequently visit.

Package managers and build tools

  • eask/packaging (Fall 2023 – Winter 2023): Packaging for Eask CLI. I’ve actively contributed to diverse package managers such as Chocolatey, Snapcraft, MacPorts, etc. Furthermore, I’ve established my own package repositories for Scoop, Homebrew, Personal Package Archive (PPA), and more.
  • eask2nix (Fall 2022): Convert Eask into Nix expressions.
  • nixpkgs (Fall 2022 – Present ✨): Nix Packages collection & NixOS. I serve as the package maintainer for a small set of packages.
  • eask/archives (Spring 2022 – Winter 2023): Back up the archive-contents to avoid potential failures when refreshing the package archive. This is a factor that enhances the stability of Eask.
  • Eask or eask/cli (Spring 2022 – Winter 2023): CLI for building, running, testing, and managing your Emacs Lisp dependencies. This tool is the successor to Cask, offering enhanced stability, cross-platform capability, and extensibility.
  • Cask (Spring 2021 – Spring 2022 πŸ‘·): Project management tool for Emacs. I’m the maintainer specifically responsible to Windows platform.

Language clients and servers

Emacs stuff

Technical utilities

  • minify-dir (Spring 2019): Minify all files within a directory. Another Node.js website minifier created initially for the static site generator β€” SiraDoc.
  • JCSBat_Util (Winter 2016 – Present): Some handy batch files for my workflow as programmer. (Windows)

Reverse engineering, hacking, and security

AI & Machine Learning

Static site generators

  • SiraDoc (Fall 2021): A static documentation generator for scripting manuals! This was initially developed for several of my game frameworks, including JCSUnity, JCSEgret, CCosQuick, etc.

CI/CD tools and automation

On-hiatus projects (might be finished someday)

  • aws-toolkit-emacs (Winter 2023): A plugin for interacting with AWS from Emacs editor.
  • jcs-lem (Summer 2023 – Present): My personal lem configuration files. Lem is still in its early stages, particularly on Windows systems.
  • Prevo (Summer 2021): Preview GameObject using preview window.
  • 8comic (Fall 2020): Use 8comic to read manga.
  • UCTooth (Summer 2020 πŸ’Έ): A cross-platform Bluetooth plugin for Unity, implemented in the native code of each platform.
  • swagger-it (Spring 2020): Automatically generate the swagger.io yaml file for your project.
  • CCosQuick (Winter 2019 – Summer 2020 πŸ’Έ): Prototype your game easily with component driven library built on top of Cocos Creator.
  • MGDP (Fall 2019 – Winter 2019): Quaver is essentially a DJMax clone; hence, I’m uncertain whether to proceed with this project.
    • Client (closed-source): Utilizing the Unity Engine, this game client aims to implement the gameplay aspect of the MGDP project.
    • DevTool (closed-source): A simple desktop application assists me in generating music archive, which are then deployed on the server.
    • DevelopmentKit (closed source): Empower MGDP game developers with the capability to create their own music games and publish them on the MGDP platform.
  • JCSUE (Fall 2017): Quickly construct your game by utilizing multiple components and predefined default settings.
  • jcs-vim (Winter 2016): My personal vim configuration files. This is my initial experience with Vim, and I’m interested in exploring NeoVim in the future.

Abandoned projects (will never be finished)

  • tree-sitter-actionscript (Spring 2021): ActionScript grammar for tree-sitter. Rileran completed the project earlier β€” Rileran/tree-sitter-actionscript β€” thus, there is no need to continue the project any further. For the record, Rileran’s project takes inspiration from my project!
  • work-time (Spring 2021): How long have you been working? I’m uncertain about its current value, as it could potentially be substituted with wakatime and hammy.el.
  • organize-imports-python (Spring 2021): Automatically organize imports in Python code. No reason to create this package anymore due to the advent of the Language Server Protocol.
  • vlc-player (Winter 2019): Play video using VLC. I can’t recall the precise reason for abandoning this. My best assumption is that VLC doesn’t support the necessary options for stopping the video, prompting me to opt for ffmpeg instead.
  • JCSEgret (Winter 2018 πŸ’Έ): A library designed for efficient game production using the Egret engine as its foundation. The project was initiated during the course of work but is no longer in use as the Egret engine became obsolete following their bankruptcy.