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.