A programmer involved with far too many things.
Check out my work and contributions here, including game mods for the Zandronum engine, automation tools designed to help development, and intensive class projects.
Mega Man 8-Bit Deathmatch is the first, best, and only Mega Man inspired FPS on the market. Powered by Zandronum, the game boasts native netplay and extensive modding support that's ever improving since 2010.
The game is set as an old-school arena styled FPS where you fight around the arena, picking up weapons and items to use in combat. The game at base features over a hundred weapons, stages, and skins for users to use in various game modes, such as Deathmatch, Last Man Standing, Capture the Flag, and team variations of those.
Prior to my involvement with the main game, I've worked on various addons to either overhaul the game into another total conversion or to augment the gameplay with modern UI and hero shooter conventions. Starting since version 6B, I've worked as part of the team to bolster modding support using my prior experience, spearhead game mode improvements and new game mode implementation, and create accessibility features such as the customizable team colors and hit confirmation indicators.
Largely inspired by @CutmanMike's original Ghouls versus Humans experience for Doom, an asymmetrical class-based last team standing mode, Ghouls versus Humans Arcade is a campier take on the horror game mode, retrofitted for Megaman 8-Bit Deathmatch. It introduces redesigned concepts for some of the old classes, new introductions based off of iconic NES characters, and new game systems such as a daybreak timer for the ghoul team to abide by.
Alongside the new gameplay features, the menu has been filled with useful modern conventions, such as info towards each class's mechanics, settings which allow you to modify how certain classes control, and info about what changed between each patch.
Damage Display adds modern shooter features such as hit sounds when hitting enemies, damage number popups in the vein of Apex Legends which detail how much damage you're doing, and a detailed damage report ala Valorant.
While the MM8BDM community is no stranger to addons in this vein, previous addons were either feature incomplete or had issues which broke compatibility frequently. Using features introduced in Zandronum 3.1, this iteration is compatible with many more mods while providing entire client customization. The entire damage report is customizable and all the features can even be toggled individually.
Provided additionally is a version of the file which restricts the features of the addon to only spectators in matches, making it an ideal fit for organized play which does not desire the added features for players, but wants a better spectating experience.
Map Voting as an addon implements a Source game styled map voting feature that can be voted on during a match to determine the map for the next match. It abides by the server's determined map pool, and will try to clear every map in the pool before offering repeat options for vote.
It was initially developed as a test for some of Zandronum 3.1's new features, but continues to see frequent use in servers. Included with the addon is a means for map makers to add their own previews for maps, which has been adopted for many recent packs, allowing more memorability to their maps.
Ping Button does as the name says, and implements the ability to use Valorant/Apex Legends styled pings. In Zandronum where team voice chat is not a feature and likely never will be, it has proved very useful both for public and more organized play.
Four different ping types are provided, while there is option to customize what appears on each type of ping, including disabling name and distance visuals.
Trill Skin Assembler is a GUI-based program to allow people to create skins for Zandronum-based projects, mainly focused for Megaman 8-Bit Deathmatch. It requires far less knowledge of how programming for skins works and allows even new users to go from just a sprite sheet into a fully functioning skin.
The program has support for many extra features of skin-making, such as 8 rotations, implementing a set of crouching sprites, implementing mugshots for addons that display the mugshot as part of the UI, and implementing multiple sounds for each category.
Credits to @peggdraws for the basic usage notes within the README. Additional credits to IamaMedalHunter for usage of his Blues skin as the base assets.
Can't Believe It's Not SLADE (CBINS) is a command line utility that allows users to easily create and manage PK3-based projects in more modern editors such as VSCode rather than SLADE. It does this by providing the ability to create directory structures that can be opened in modern editors and tracked by source control such as Git, but then also providing the ability to compile that directory (including its ACS) into a PK3 file.
Written in Python and designed to be open source, be sure to view the repository below for a full README with usage details. Credits to Russel for writing Doom Archive Manager which inspired this project and credit to Ken Silverman for creating 'PNGOUT.exe' (which can be found here), a utility which this program optionally uses.
QueueUp is a web service created for my CSC-490 class that allows users to sign up then sync their League of Legends accounts to their profile. Our service caches their statistics then uses them to matchmake them with other users on QueueUp to find the perfect duo partner which they can then message and play League of Legends with.
I worked to create the backend environment using Python with Flask, dealing primarily with the MySQL database and Riot API operations. I also pitched in with the frontend development, using React with Typescript, primarily for debugging help as well as with some code contributions.
Assisted Draft Client was a web service created for my CSC-340 class that allowed users to create lobbies to simulate Valorant agent pick / ban formatted player drafts.
Users would be able to join the lobby once given the lobby code, and then various users would be prompted to pick a team coach, ban whichever agents they desired, pick their own agent out of the remaining agents, then to ready up for the game. The lobby creator would then be able to log the result of the game, committing it to the SQL database, which was viewable and filterable on the main page of the website.
I primarily worked on the backend server of the service using Java with the Spring Boot framework, also helping on the frontend to work on the Thymeleaf code for the HTML fragments. Meanwhile, my classmates focused on setting up the SQL server and the CSS for the website, giving a nice framework for the website.
This program was a simple project for my CSC-339 class to create a program that could play out the card game, War. It was written in C++ using classes to represent the card, deck, and game itself. It was designed to be able to handle all different edge cases of the game's war event and track the number of cards that both players had at a given time.
Connecting to 0.0.0.0:0
If you're not properly redirected to a server, it means that you likely have not configured URL redirects for Mega Man 8-Bit Deathmatch / Doomseeker. Download the installer at the bottom of the page to configure it.
Also be sure to allow pop-ups on this website for proper redirect functionality. Otherwise, it will not redirect you to the game server.
Server URL Generator
Doomseeker when properly configured allows users to join servers via URLs of the format 'zan://ip:port'. However, these links do not hyperlink well on social media platforms, and there is no quick way to attain them via Doomseeker. This area allows you to create links which hyperlink and will properly redirect users to the correct server.
Enter in an IP address for a valid server and click 'Generate URL' for a link that can be shared in social media channels for others to be redirected to that server.
URL Redirect Configurer
The download below provides an installer which will configure the ability to open URLs to connect to Doomseeker servers. Be sure to read the info within the installer for perfect functionality.