A simple Vampire Survivors-inspired 2D game, developed in GameMaker Studio 2. I've been learning bits of game-dev throughout the years, so I gave myself the goal of actually making a game myself - for fun! This challange took about 17 days to "complete".
Note that the actual source code is private due to licensing.
- 4 waves of hostile NPCs
- Boss fight arena
- Random item drops (buffs, debuffs, traps, heals, ...)
- Purchasable upgrades / progression
- Procedurally-generated deals between waves
The player and NPCs all have their own unique attributes, to which we can apply buffs & debuffs via modifiers
I made a custom UI framework based on GMS2's Flex Panels. It is vastly inspired by HTML and JS. You can define re-usable layouts with XML, supply bindings and add dynamic functionallity through GML.
Instead of manually creating loader functions for various classes/resources (sequences, item drops, modifiers, ...), Bluthbaf supports deserializing JSON data into real instances/structs at run-time based on additional metadata.
In the following example, we instantiate the CItemDrops constructor (and populate it with associated data) by loading a .json file via DeserializeFile().
On top of that, the game features some addition custom systems:
- Time management (clocks, tasks & sequences)
- Event bus for game-wide communication
- Console variables (game rules, preferences)
This challange served to combat my inner perfectionism, and was also an opportunity to learn more. Thanks for reading this whole thing. As a reward, here's a screenshot of the game from its first day of development! :D