Hi! Over the last few months I’ve been working on Skorecery, a local multiplayer sports-like video game built around an exciting magic and mysticism theme. It’s been a super great project to be involved in, and the team and I are super excited to share with the world! ✨
Over the last few weeks I’ve been thinking through our spell systems, and how we can experiment with gameplay mechanics to make our magical powerups a bit more unique. As an experiment, I prototyped collectable spells! The idea is pretty simple — take some existing (and in progress) spells and let players pick them up in the game environment rather than just selecting them at game start.
We wanted a simple system to leverage our existing spells in a new and exciting way. Since I have a burning desire to open source all the things I do, I first wrote a basic framework for 2d/3d collectables in a game environment. That lives here.
Once that was pretty stable, I was able to pull that system into the Skorecery codebase, and add some Skorecery specific derivations (like a custom Collector, and a custom Collectable). This got things up and running pretty quickly, with a basic collectable implementation within Skorecery. 🎉
Once we had these components coded up, I defined some collectable spawn points (that we’ll probably want to change in the future) in our level, devised some crude collectable visuals, and wired up the player to have the components correctly configured.
The only thing left was to handle rewiring our existing spell system to swap the spell selected by the player at game start for the collected spell, when it’s picked up. To do this, we’re just storing the old spell as a disabled component on the Player, and adding this new collected spell component. Once the collected spell is used, we undo this change.
Along the way, there were a few systems in Skorecery that needed some tune-ups to support the kind of flexibility needed to have a successful collectables system. I’ll briefly list those changes here:
- Added a concept of “spell triggered and completed” to our spell system
- Prototyped a speed spell that makes the player fast for a duration
- Hardened spell trigger code to prevent errors during the collectable swap
I think spell collectables could be really promising, but I want to stress that it’s just an experiment at this point! I hope this can shed some light as to how we think about testing (and quickly prototyping) gameplay ideas for experimental purposes at Grapplehook Games. If you’re looking to build a collectable system, definitely check out our open source library to get things started, and feel free to ask us questions! If this kind of thing is interesting to you, follow me on twitter!🚀