Built in collaboration with Andrew Bae, Francisco Rivera,
and Ian Escalante.
CanvaCord is a Desktop or Server application designed to integrate the Canvas LMS by Instructure with Discord via Discord's bot system.
CanvaCord allows one user (typically a Discord server owner) to set up an "Instance" of CanvaCord which defines a link between Canvas and Discord
for one Canvas Course and the target Discord server. Instances can be configured to fetch new Canvas data (such as assignments and announcements)
at varying intervals, and to send notifications about new entries on user-defined schedules, to user-defined roles using Discord's role-pinging
feature.
Additionally, CanvaCord leverages Discord's Slash Commands feature to provide on-demand access to course information such as assignment lookups,
course syllabi, and textbooks.
JFlatGL is a 2D game library written in Java I've developed on-and-off since mid-2019.
Built atop the LWJGL library, JFlatGL aims to make programming 2D games easier by providing a framework for managing assets, updating game states,
and rendering sprites.
JFlatGL implements all of the OpenGL code necessary for displaying your game via RenderElements of various types. Developers define their own GameStates
and game logic, then let JFlatGL handle all the drawing by simply calling render() on their RenderElements.
JFlatGL also handles audio, font rendering, and more out of the box. More advanced users can implement custom splash screens for their games using the
built-in splash screen feature.
Doki Doki Platformer Club is, as the title implies, a platformer fan game based on Doki Doki Literature Club! by Team Salvato.
My first publicly released game, DDPC has a special place in my heart as likely my proudest creation so far. I started working in it in late 2017/early 2018, and
released it via the DDLC subreddit on May 25, 2018. I later released a "Winter Update" with a winter theme and some challenge modes in early 2019.
DDPC was my first game for which I used GPU rendering via LWJGL and OpenGL, introducing me to modern graphics programming. JFlatGL as a project actually started as work
toward a sequel to DDPC, since my ideas at the time were too ambitious for the code base I had at the time!
Check out the trailer for the game here, or download the game from here!
The A* pathfinding algorithm is commonly used in games for navigating interactive spaces. A* is a populat choice due to its greedy nature and guarantee of an optimal
solution.
This implementation of A* in Java implements a slightly modified version of A* which forgoes the guarantee of optimality in favor of a slight performance boost. This
is achieved by simply returning as soon as any valid solution is found, regardless of whether other solutions may exist.
This implementation uses mazes generated via an algorithm I found online (it's been a while, so I don't remember exactly where). I used Java's AWT graphics API to provide
a real-time rendering of the algorithm as it computes the solution to each maze. (On the smaller mazes, it will generally solve them so quickly that you don't see much).
The starting space is marked in yellow, with the end space in magenta. Spaces currently open for exploring are marked green, while spaces already visited are marked red.