A roguelike, wave-based, platformer built in C# with
MonoGame.
BankShot was built with a team of myself, Machi Dimps,
Michael Robinson, and Aidan Vanburger initially as a class
project over the spring semester of 2021. Over the course of
this project, the team brainstormed several ideas before
landing on this one and producing a planned outline of the
program. Once we had a loose plan down we started building
the various systems.
The core gameplay loop we ended up with was worked on a bit
by everyone and consists of starting at the menu screen,
spawning into a randomly selected wave, fighting 3 waves,
shopping for upgrades during the break, starting the next
set of waves, repeat until death and then repeat from
the menu.
Speaking of which, the wave system was built to read a text
file with a list of wave compositions and then randomly
select from that list for each wave spawned. These wave
compositions are similar to the map files but instead of a
tile id at every spot, its a number representing one of the
enemy types: chaser, pacer, ranged, and flying types, where
they all behave as their name would suggest. According to
git, this was mostly developed by me with misc additions from
everyone.
Similarly, the shop system for upgrades also reads in a file
with a list of possible upgrades and displays three random
selections in each shop. Those upgrades that it selects from
were built to be as flexible as possible, being able to
change any stat we could think of, any number of them at
once, and in either a flat added value or a multiplicative
one. This was also mostly done by me with some foundation by
others.
Maps were planned to be randomly selected from a folder of
tile based map files every so many waves but due to time
constraints we only ended up having one map loaded. The
system to randomly select them is mostly finished so this may
be added in the future as I come back to this project.
To manage and manipulate all of these files, I made an
external tool to edit and make maps, waves, and upgrades.
This tool is made with windows forms, unlike the rest of the
project, and allows the team to easily make changes to
several of the games' core systems. It was also planned to be
able to edit the stats of each enemy class and of the base
player but due to time constraints, this didn't get added
along with some other bugfixes that just weren't priorities
at the time.
The source for the project can be found
here on GitHub
.
A video demo and downloadable exe may be coming soon.