This repo is for the Game Development Friday's event. This weekly even aims to teach coding concepts through game dev and build actual working game projects from the ground up using Monogame and C#. Free Assets or AI generated assets are used for sprites, animation, and music where applicable and credited (let me know if an asset is uncredited).
Monogame was selected because it gives a developer all the tools required to build a game but doesn't solve the core engineering which are the parts that a future Software Engineer or Game Developer would want to learn in order to improve. Using monogame, an engineer has to learn how to implement core algorithms ranging from object sorting and collision detection to path-finding. Monogame represents a great trade-off between performance and accessibility when it comes to building 2D games and their associated toolsets.
Goals (Vampire Survivor MVP):
- Basic UI using GeonBit.UI if possible
- Basic Controller and keyboard support
- Animated Main Character
- Basic enemies that are spawned in waves
- Basic Enemy movement towards player
- Player can attack and destroy enemies
- basic attack animation
- basic destruction animation
- Game state tracking
- Success (100 waves)
- Failure (HP to zero)
- Basic UI to show HP
Stretch 1 (Gameplay - Polish):
- Background tile or stage graphics
- Background music
- Attack sound effect
- Hit sound effect
- Destroyed sound effect
- Main Menu sound and bg graphic
Stretch 2 (Gameplay - Pathfinding):
- Barriers and environmental hazards
- Enemy pathfinding around environment challenges
Stretch 3 (Gameplay - IO and Threading):
- Save game - utilizing SQLite to save games and sessions locally
- Loading and Deleting Saved Games
- Saving Game Options settings
- Loading Game Options settings
Stretch 4 (Gameplay - Gameplay Systems):
- Power ups which increase damge and weapon effects
- More Weapon types and attack styles
- Dynamic difficulty
Stretch 5 (Gameplay):
- Increased Game Stages
- Multiple selectable characters
- Suggested Features (focus on search and sorting algorithms)
- Suggested Features (localization)