If I had to pick the most common request in the GBS discord, it would have to be none other than the release of GBA Studio. But if I had to pick a runner-up to that request, it would be the ability to create platformer slopes in GBS! In early November of 2023, I put out a bounty on the code required to allow GBS users to finally do just that. The goal was to find a way to make platformer slopes not only function on the DMG without impacting performance negatively, but also allow users to paint slope collision tiles in the scene editor with relative ease, and then release this plugin to the community at-large for all to enjoy. Within only a few days, there was such a strong response to this call to action, that it was clear a dedicated discord server would need to be created to manage the influx of contributors, contributions and the discussions surrounding them. “The GBS Slopes Initiative” was born!
Thanks to the generosity of coding wizards such as Canight and Gearfo, whose contributions have formed the foundation of a new and improved slopes integrated platformer.c file, to the support of members of the GBS dev team such as Rulz and Pautomas, and also to Hauntology (who’s Platformer+ plugin needs no introduction) Within just a couple of weeks, slopes in GBS went from dream to reality.
Our progress soon caught the attention of Chris Matlby, creator of GBS. He too joined in the community collaboration, expressing an enthusiastic desire to not only offer his time and knowledge, but to merge this code into the official branch of GBS3.2! After some time spent on quality assurance and further implementation of a user-friendly dedicated slopes paint tool, we are proud to present the end result: slopes – by the community, for the community!
How To Implement Slopes in GBS
Applying a slope collision tile is as simple as painting-in any of the various collision tiles, and will automatically snap to either a 22.5° or 45° angle. Simply select the slope brush tool from the collisions toolbar, click-and-hold on a tile of your choice, and drag the mouse in the direction of your slope. Releasing the mouse button will lock your slope collision in and you’re done!
Some additional features to keep in mind include:
- Hold Shift while creating a 22.5° slope to offset it by half a tile (4 pixels).
- Hold Ctrl to quickly switch to drawing vertical or horizontal one-way collision using the slope brush tool (holding Ctrl and Shift together will flip the one-way collision tiles direction).
- Right Click using your mouse to quickly delete existing collision tiles.
The Slopes Initiative Keeps Rolling On
What you see in GBS3.2 is the tip of the iceberg as far as slope integration is concerned. Down the line, the GBS dev team will assess how best to expand on slopes based on the contributions of charitable coders such as Gearfo and others in the community.
Hauntology is also working on an all new version of Platformer+ that will allow for slopes compatibility with his own plugin. Platformer+ is fully compatible with GBS3.2 in its current state, however adding P+ at this time will remove slopes functionality as it overwrites the platformer.c file.
A Special Thanks
Within only a few short months, platformer slopes have become a reality for everyone to enjoy. To see so many talented people put their minds together and achieve such a goal so quickly has been an inspiration.
Thank you to Gearfo and Canight for all their hard work; to the GBS dev team including Pautomas, Rulz, and Chris Matlby; to all of you who joined my discord to help solve coding problems and provide feedback and suggestions; and to those flies on the wall there to watch it all unfold in quiet support.
The Slopes Initiative shows us that the GBS community can accomplish great things when we work together. It makes me wonder what other lofty challenges can be overcome and shared freely to the benefit of our community. Why not head to the GBS discord and suggest some ideas for further initiatives you’d like to see explored in future? With a little time and effort, no slope is too steep!
Independent Games Designer, Artist, Film Enthusiast and Full-time Dad (he/him). Check out my games here!