Ive been working on some game tools to let me make various games quicker without needing to do the same things in every game i make
Above you can see two of them ^ Ive got an achievement system implemented as well as a toolbar that lets you trigger things easily for testing purposes (e.g. giving the player a weapon, spawning an enemy, etc.)
Theres a data persisting system that will persist data in different scopes (e.g. room, level, run, game, permanent) that everything else uses. For example the achievement system looks at a certain category and a trigger (which is a key that the data in the persister is set under) so that whenever data is added to that trigger it sees if its higher than the amount needing to unlock the achievement (and if so unlocks it). The persister is decoupled from everything else by sending signals and then everything that wants to look at what data is set can (this would be the achievements, the unlock system, the dialogue system to see which dialogue is unlocked, etc.)
Main tools I have made:
- palette swapping (allows for swapping the palette of the game so that things like each zone can have different colors)
- unlocks (what weapons, enemies, etc. are unlocked)
- toolbar (debug helping)
- persister (persists data through a scope)
- logger (logs information (separate so other components can show the logs e.g. the toolbar or a terminal)
- leaderboard (keeps track of scores of players)
- data (reads txt files from a data folder for usage in the rest of the game for separation of data and behaviours. e.g. you can define enemies each in their own txt file and have a generic enemy object that has its properties set based on the enemy it is. Makes it so you can easily add new stuff