Koppun-50

"Run, jump, dash, and shoot your way through the planet of Koppun-50, stealing your enemies' weapons to survive! Think you have what it takes to defeat 49 other players in this fast-paced battle-royale?"


Koppun-50 is a 2.5D action-shooter 50-person battle royale platformer developed under DigiPen's DES-450 & -420 classes during Fall '23 and Spring '24, with additional development during Winter '23 and Summer '24. This was a solo project, so I created and implemented literally everything in the game (minus sounds), including 52 unique weapons, enemy player AI, difficulty options, an expansive level, all the sprites, and all of the animations. I also documented most of my balancing decisions and have commented most of the code currently in the game.

Koppun-50 Trailer

Overview

Koppun is genuinely the most fun I've had working on any project at DigiPen; both the concept and my execution of it just work so well. My intricate web of script reuse, scriptable objects, and game systems are beautiful to behold.

The general idea for Koppun was as "Mega Man 99," or "Mega Man Battle Royale." It was this concept of stealing the unique weapons of your opponent that would lay the groundwork for what Koppun would become. Throughout development, I also learned quite a bit about how Unity works, allowing me to drastically reduce the game's lag, as well as creating a 2.5D environment that relies on 2D components.

Tech Bible

This is the "Tech Bible" that I submitted in addition to the Unity Project for the class I was working on it for. This largely isn't an internal document, but was used to demonstrate what I had done over the course of the semester. It details all of the major scripts (at the time, though what constitutes as a major script is relatively the same), the coolest programming things I did over the course of the semester, and my ideas for what to work on for the next semester (half of which I already did due to being so excited to work on it)

Koppun-20 Tech Bible

Tech Bible

Big Fucking Gamebalancingspreadsheet

Big Freakin' Gamebalancingspreadsheet

Balancing Spreadsheet

This is the "Big Freakin' Gamebalancingspreadsheet" that I created once I finished implementing most of the weapons. It details all of the weapon properties, as well as calculates their effective dps. There are two pages on it, showing the "before" and "after" of balancing for showcase purposes.

Probably my favorite part of this thing is the formula for calculating accuracy. In order to get a scenario where infinite size or speed results in a miss margin of 0 and 0 size or speed results in a miss margin of 1, I had to use negative exponents, which is something that, quite frankly, I didn't think I'd ever use after Calculus II.

Build Archive

Once a week, I uploaded the current build of the game to my Google Drive, both for archival purposes, as well as eventual access to them for when I update the Development Showcase video.

Koppun Build Archive

Koppun-50 Development Showcase (as of Ver. 1.5)

Build Notes by Version

VER 0.1 (9/10/23)

-Created project, player, and test collision

-Ported base platformer controller over from A Platformer that Was Definitely Not Inspired by Celeste 2: Lani's Trek (detailed in Digipen/Design/DES-350). Something big here is that I split the player's input into another script so I could create a CPU controller that feeds into the same script later on

-Created Semisolid & Moving Platform prefabs

VER 0.2 (9/17/23)

-Added the ability to fast-fall & the ability to drop through semisolid platforms

-Created a scriptable object for weapon types

-Created 4 weapon types

-Added ability to shoot weapon and the ability to switch between usable weapon types

-Added ability to pick weapons up

-Created a dummy player with no player input script to test weapon collision

VER 0.3 (10/2/23)

-Added 7 more weapon types (incl. debug weapon)

-Added basic CPU controller

VER 0.4 (10/9/23)

-Added 4 new weapon types and 3 variations of existing weapon types

VER 0.5 (10/16/23)

-Implemented level layout

-Randomized player starting positions

VER 0.6 (10/23/23)

-Commented all of existing code

-Polished level geometry to prevent clipping

-Created cases for AI to switch weapons

VER 0.6.1 (10/30/23)

-Implemented an "AI Level" option to make CPU Players easier and harder

-Created a method for the AI to to scan for "visible" players using RayTracing

-Created a state machine for AI (Free-Roaming & Targeting) based on if it sees a visible player

-Implemented semisolid platforms throughout level

-Implemented the player switching colors

-Implemented Main Menu, Pause, and Options Screens

-Created Skybox

-Created Weapon Icon sprites

-Polished how Weapon Drops work

-Added debug key to view entire map

VER 0.7 (11/6/23)

-Created sprites for 4 projectiles

-Set up SFX for the player

-Created a way to raise and lower SFX volume using the Options slider

-Implemented Controls, Credits, and Quit Confirmation Screens

-Created various menu sprites

VER 0.8 (11/13/23)

-Fixed bug involving AI Level not being set correctly

-Implemented pixel font

-Implemented copyright-free BGM

-Implemented win screen

-Created 3 more projectile sprites

-Added the ability to drop weapons

-Balancing tweaks (there's usually always balancing tweaks, but these were bigger than normal)

VER 0.9 (11/20/23)

-Implemented ability to give weapon guns sprites

-Modified level layout (added the path on the lower/middle-right)

-Added audio to remaining weapons

VER 1.0 (DES-450 Submission) (11/26/23)

-Added the nessissary bits and bobs for submission like a blurb at the end of the credits

-Fixed a bug causing SFX audio not to scale properly on existing objects

VER 1.0.1 (12/2/23)

-Created & implemented sprite for lava factory zone

-Added method of animating sprites on models

-Created & implemented remaining gun sprites

-Changed player sprite to Koppling design

VER 1.0.2 (12/9/23)

-Created & implemented new sprite for lava zone

-Created big skeleton monster sprite to put in lava zone

-Fixed emission texture on lava

-Fixed animation of lava

-Fixed ground sprites stretching along the X and Y axes (they now loop like with the Z axis)

-Modified Skybox to make the foreground darker

-Added idle animation to player

-Player can now dash after wall-jumping

VER 1.0.3 (12/16/23)

-Added method of equipping hats

-Created & implemented 18 hats (including "None" hat)

-Implemented minimap & toggleable "megamap"

-Implemented player tracker & kill tracker

-Added crystal zone

VER 1.0.4 (12/16/23)

-Added controller support (albeit it only works with PlayStation controllers)

-Polished menu buttons

-Added method of unlocking hats

-Added 12 hats

-Added void zone

VER 1.0.5 (1/7/24)

-Added custom naming for highest & lowest option sliders

-More or less finished the main menu

-Added charge shot functionality

-Added 6 or so weapons

-Created a new, expanded layout for the map

-Added a border sprite-setter for the new Space, Bleck, and Null Zones

VER 1.0.6 (1/14/24)

-Implemented most of the new map design

-Added 30 more player spawn positions (this marks the official expansion of scope from Koppun-20 to Koppun-50)

-Fixed a decent chunk of the lag that occured from having 49 AIs running at the same time

-Added environement objects for Space, Bleck, and Null Zones

-Added 4 or so weapons

VER 1.0.7 (1/21/24)

-Added music gun & easter egg pertaining to it

-Added superweapons (as weapons, not functionally collectible yet)

-Added 9 more weapons aside from the music and superweapon ones

-Added environment art for the Ocean and Gold Zones

VER 1.1 (1/29/24)

-Implemented remaining 10 weapons

-Created and filled out the pre-balancing page of the Big Fucking Gamebalancingspreadsheet

-Created & implemented the remaining weapon icons

VER 1.2 (2/11/24)

-Balanced all weapons using the post-balancing page of the Big Fucking Gamebalancingspreadsheet

-Implemented heal drop functionality

-Added more semisolid platforms to help with game-feel

-Reduced even more of the lag by limiting how often the ai looks for other players

-Created & implemented sprites for most remaining projectiles]

-Added an option to adjust the amount of players per game

-Added accessibility options for aim helper & weapon drop names

VER 1.3 (2/20/24)

-Added even more semisolid platforms

-Added "priority pickup" system to weapon drops

-Added logic for "knockout" healing drops

 VER 1.4 (2/27/24)

-Added full functionality for superweapons & added superweapon parts

VER 1.5 (3/5/24)

-Added feedback on the health bar for when health is removed or added

-Finished projectile sprites

-Added a scarf to the player character to denote dash charge (ie. Madeline Celeste's hair)

-Added a color option to the scarf on the main menu

-Revamped the main menu a bit, adding some labels to the buttons on the bottom of the screen and changing color selection to be its own submenu

-Added a tutorial area accessible to the main menu, complete with unique graphics

-Completely revamped the way the Web Wrecker weapon works due to the scarf script being surprisingly versatile (and the fact that the Web Wrecker was super buggy, ironically)

-Added a gear to the Trash Masher weapon to better denote that it's a charge weapon. Also changed it so projectile speed also increases the longer the button is held down

-Added unique "glitch" text to the Chaos Crasher weapon

VER 1.6 (3/12/24)

-Added the distance to the nearest player to the NearestPlayerArrow instead of just the direction

-Added shoot sounds to remaining weapons

-Assembled showcase videos

VER 1.7 (4/29/24)

-Added SFX for on-hurt and on-death

-Removed SFX for on-death due to weird bug that was going on with weapon drops

VER 1.7 (5/5/24)

-Lots of UI stuff that I will write more specific things about soon!

Downloads Folder