Koppun-50

Koppun-50 is a 2.5D action-shooter 50-person battle royale platformer developed under DigiPen Institute of Technology from Sep ’23 – Apr ’24, with some additional development from May ’24 – Jun ’24 for polish.

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.

If you want to mess with the game, you can turn cheats on by pausing and typing “turncheatsonplease”!

Overview

Koppun was genuinely the most fun I 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.

It’s also published on Steam, so you can go play it right now!

Koppun-50’s Trailer

Koppun-50 Gameplay Screenshots

Game Systems & AI

My main goal for Koppun was to make the game super replayable due to the wide variety of weapons both the player and enemies use, and I believe I succeeded in that regard; even I get excited when I see that either I or a CPU nearby has a weapon I really like. As a bonus, the weapons were fairly easy to develop due to how I used Unity’s component system; I could just drag-and-drop reusable scripts onto the weapon’s projectile to give it new properties!

Probably my smartest move in all this was reusing both the weapons and the player controller for the enemy players. That way, I only needed to develop the enemy AI. Plus, the asset reuse let me make both the players and enemies feel better to both control and fight at the same!

After a while, I decided to add difficulty options to the AI almost by sheer necessity, since my playtesters were struggling with the game’s difficulty. All the AI really does is make the CPUs shoot slower and aim away from their targets more, although there are some smaller movement-related things in there. Really, just decreasing CPUs’ DPS was enough to give beginners (including my own mom, who does in fact not play video games) a good time playing!

Inspirations & Innovations

I already mentioned Mega Man as my main inspiration, but I can’t stress enough how influential it, Mega Man X, and Mega Man Zero were to the game’s identity and feel. However, due to the weapons being able to be fired at any angle, I needed to be slightly more creative in how the weapons actually functioned rather than something like Air Man’s “this weapon is really good at shooting diagonally up” gun.

Of course, the midair dash is taken nearly wholesale from Celeste, complete with wavedashing functionality, as well as some of the smaller UX-type quirks with the movement controller. With some of the weapons, I took inspiration from enemies in other 2D platformers like Shovel Knight, Super Metroid, and Kirby, with some extra buffs due to being player-controlled. The stage I based heavily on the Smash Run stage from Super Smash Bros. for 3DS (although it needed to be much bigger to accomidate 50 players), sized specifically so matches would take roughly 5 minutes. Also based on Masahiro Sakurai’s games are the superweapon pieces, being an incentive to get players to move around the map towards POIs.

Koppun-50’s Full Map

Koppun-50’s Hats Menu

Hats!

Funny enough, people on Steam actually really liked the hats, moreso than I was expecting. Honestly? Can’t blame ’em.

Really, I just put these in for player customization (because it was somewhat easy; just plop down an extra SpriteRenderer as a child of the main sprite), but I realized later on that they were actually a fantastic tool for replayability; for instance, I wouldn’t have spent nearly as much time in The Binding of Isaac if I wasn’t constantly unlocking things. Eventually, I decided on a system of unlocking the hats, where the amount of hats unlocked would be determined by the AI difficulty level, the amount of players in the game, and the player’s finishing rank, up to a maximum of 6 hats unlocked per game.

Oh, and of course these things are chock-full of copyright-neutral references, some of which are to other projects I’ve made! Think you can figure ’em all out?

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.

Koppun-50’s Development Showcase

Build Archive & Development Showcase

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 updated the Development Showcase video.

The build archive can be found here.

Scripts

This is if you want to look at the code for reviews and whatnot. The most impressive ones are in the Player folder, especially the polish around PlatformerController and CPUInputter.

The scripts folder can be found here.

Download

I mean you should probably get it from Steam, but if you want it straight from the souce…

The downloads folder can be found here.