This list is generally ordered from most to least recent, though there are undoubtedly some overlaps.
⭐ - indicates a project of which I am particularly proud, typically large in scope
📚 - indicates a project with extensive public-facing documentation
✴️ - indicates a particular highlight for a project, e.g. an important choice I made, or just some sweet code
Name | Description | URL |
---|---|---|
Isolation | ⭐ Scripts from my first-person 3D investigative horror game Isolation, made in Unity | https://github.com/bermudalocket/Isolation |
✴️ Highlight: Result.cs - abstract class Result<T>
, implemented as sealed class Success<T>
and sealed class Failure<T>
. Abstracts the outcome of a process that may succeed one way or fail multiple ways. For example, INetworkService.GetLocalNetworkState
returns type Result<PlayerNetworkState>
. This is implemented in class NetworkService
:
public Result<PlayerNetworkState> GetLocalNetworkState() {
if (NetworkManager.Singleton is not { } networkManager) {
return new Failure<PlayerNetworkState>("Network not initialized.");
}
if (networkManager.SpawnManager.GetLocalPlayerObject() is not { } player) {
return new Failure<PlayerNetworkState>("Player object not found.");
}
if (player.TryGetComponent<PlayerNetworkState>(out var state)) {
return new Success<PlayerNetworkState>(state);
}
return new Failure<PlayerNetworkState>(
"Failed to get PlayerNetworkState component from GameObject."
);
}
One usage comes from class LobbyBoardViewController
when a player clicks the "Ready" button:
public void OnReadyClicked() {
switch (Services.Network.GetLocalNetworkState()) {
case Success<PlayerNetworkState> result:
var state = result.Value;
state.IsReady.Value = !state.IsReady.Value;
break;
case Failure<PlayerNetworkState> failure:
Debug.Log($"Failed to set ready state: {failure.Message}");
break;
}
}
Name | Description | URL |
---|---|---|
Tweaks for Reddit | ⭐ A Safari app extension providing tweaks (via DOM editing) and cloud syncing of preferences (via CloudKit) for the Reddit website | https://github.com/bermudalocket/Tweaks-for-Reddit |
✴️ Highlight: The redux-like architecture makes the project easily testable, as all state mutations are handled in a single reducer (MainAppReducer.swift). A reducer is a function that takes in a state and action and returns a mutated state.
Name | Description | URL |
---|---|---|
SmartMobs documentation | ⭐ The README.md for SmartMobs. The best documentation I've ever written. | https://github.com/bermudalocket/SmartMobs/blob/master/README.md |
Autohook + Simject guide | A guide on how to run iOS jailbreak tweaks in Xcode's iOS Simulator. | https://gist.github.com/bermudalocket/6bce9eebf7b44063c018f12b2bb2227a |
✴️ Highlight: my writing style. I take pride in writing readable, maintainable, informative documentation.
Name | Description | URL |
---|---|---|
Phasmo Hunter's Guide | ⭐ A browser-based realtime collaborative tool for exchanging evidence in Phasmophobia. Frontend uses React. Backend uses Express, Postgres. | https://github.com/bermudalocket/Phasmophobia-Hunters-Guide |
Name | Description | URL |
---|---|---|
pyperms | A python script to automate the permissions-assigning process for Minecraft servers running LuckPerms. | https://github.com/bermudalocket/pyperms/blob/master/pyperms.py |
numericalpy | Two very simple python scripts written for MAT 6375 Numerical Analysis | https://github.com/bermudalocket/numericalPy |
Name | Description | URL |
---|---|---|
SmartMobs | ⭐📚 A Java Minecraft server-side plugin that gives mobs configurable and extendable special attacks. 12,618 lifetime downloads on CurseForge! | https://github.com/bermudalocket/SmartMobs |
Euclid | A Java Minecraft client-side plugin that parses and visualizes block-edit-history results using regex and OpenGL/LWJGL. Preview 25,102 lifetime downloads on CurseForge! | https://github.com/bermudalocket/Euclid |
NerdyDragon | A Java Minecraft server-side plugin that completely reinvents the endgame Ender Dragon boss fight. | https://github.com/bermudalocket/NerdyDragon |
SafeBuckets | A Java Minecraft server-side plugin that controls liquid physics to prevent griefing. | https://github.com/bermudalocket/SafeBuckets |
LastSeen | A Java Minecraft server-side plugin that tracks players' last login/logout times. | https://github.com/bermudalocket/LastSeen |
nerdUHC | A Java Minecraft server-side plugin for running Ultra-Hardcore (UHC) matches. My very first foray into coding. | https://github.com/bermudalocket/nerdUHC |
Name | Description | URL |
---|---|---|
RungeKutta | A Scala implementation of the Runge-Kutta algorithm. For MAT 6375. | https://github.com/bermudalocket/RungeKutta |
NumericalIntegration | A Scala implementation of three basic numerical integration methods. For MAT 6375. | https://github.com/bermudalocket/NumericalIntegration/blob/master/Main.scala |