Earlier this week, GB Studio’s Twitter account posted a short announcement video showcasing some of the enhancements that the team have been working on. Chris Maltby (creator of GB Studio) has been hinting at some of these features on social media, but this was the first time we got to see them in action.
While there are many who contribute to the GB Studio’s development, this latest news is largely made possible by a developer named Toxa. They were able to provide some insights into these new features (as well as a test ROM) and let me tell you some of it is really, really exciting. Let’s break down this announcement and detail what you can expect, and what we know.
This was the first enhancement shown and will probably be the most impactful change to the way GB Studio users build their games. GB Studio’s current music engine uses GBT Player, which provided an easy way to integrate Game Boy music at its initial release. While it is certainly capable, GBT Player requires very specific workflows to get it to function, mainly a template mod file which is fairly limited compared to the capabilities of actual Game Boy hardware. Furthermore, it’s relatively easy to break a mod file which cause headaches to try and solve. hUGETracker is an open source modtracker built specifically for Game Boy. It’s designed to be a step up from OpenMTP (a tracker typically used for GB Studio music creation) in that it only makes music for Game Boy and takes advantage of some of the Game Boy’s hardware features that are lacking in GBT Player. It also holds back on some of the more complex options available in the popular Game Boy music creation tool LSDJ, providing a more game developer friendly option that isn’t as intensive on the CPU. There’s a lot to be excited about with hUGETracker’s integration, including two items specifically noted in the announcement…
Synchronize Scripts to Music
While this may seem novel at first, the ability to have your music trigger scripts can provide many opportunities for development. Perhaps you have an “item get” animation in your game? If you have a short jingle play when the character obtains an item, you can now have it time perfectly with the music and not have to guess or use trial and error to get the timing right. Music based rhythm games are also now potentially possible. I imagine this feature can also be used to get timing down for “non-music” events too depending on how it’s implemented, which again is much more functional than simply playing with 0.1 second increments on a [Wait] event.
WAV Sound Effects
Many members of the community have been asking if this was possible. I downright thought I’d never see it implemented, especially as well as it is done here. The usual reference is to Pokémon Yellow’s Pikachu cry, which does feature a rather clever way of using the Game Boy’s WAV table channel to simulate PCM sound (you can learn about the whole process on Retro Game Mechanics Explained’s video). This method is CPU intensive and causes all gameplay to pause along with the other audio channels. I don’t know how this magic in the engine was achieved, but as far as I can tell the WAV table channel is used to play actual PCM samples which allow the game to continue running, including the other audio channels. While these samples will still have to be extremely small or risk bloating a Game Boy’s ROM, the ability to incorporate these into games now is extremely exciting.
Okay, here’s another one I thought would never be done in GB Studio, but here we are. While the use of parallax type backgrounds in Game Boy games has been done (think of the opening to The Legend of Zelda: Link’s Awakening), trying to get the timing done right on the hardware is very tricky. They somehow managed to pull this off with horizontal scrolling, and from what I’ve seen you’ll be able to define up to three layers of parallax. These don’t work like background/foreground layers on more modern games (or really anything beyond the 8-bit generation of consoles), instead you have three separate horizontal sections of the screen that you will be able to define and set their movement speeds. There are some trade-offs of course. Collisions drawn on the background won’t line up with parallax layers moving at a different speed, so you could wind up with a invisible walls or platforms if you’re not careful. It is possible to still place actors in the scenes to act as collision though. Seeing parallax in action tracking along with your player’s movement is very impressive.
Super Game Boy Borders
Another feature that may seem novel, Super Game Boy borders are awesome to behold when played on real hardware and are supported by most emulators.
Better User Interface
This has been available in the development release of GB Studio’s beta for a while now, but is still a super welcome change to how games are built in GB Studio. Opting for a new sidebar, it is now way easier to navigate between all your scenes and assets and you can access important elements like custom scripts without having to exit your scene in the game world. The UI may also support new themes if Chris’ hints are to be taken at face value.
Many bootleg carts contain modified code that saves to the internal flash storage as opposed to SRAM, providing a cheaper (albeit slower) save option without the need for a battery. Bennvenn recently hinted at ways of modifying a GB Studio ROM to do the same, and it now looks like it’s coming to GB Studio. This should provide game makers a cost effective option for distributing their games should they want to do physical runs or simply offer them a way to test out their ROMs on cheaper hardware.
Complete Rewritten Game Engine
This is really the biggest change coming to GB Studio, but one that most users won’t really see up front. It comes with several enhancements, and this is the core of Toxa’s work for this release. GB Studio originally didn’t allow editing any of the game engine code and all project data was stored in data files that were only really readable by machines. Since the latest updates allow replacing the game engine, the decision was made to make data files human readable too. Using a new game engine called “GBVM”, scene and actor data can now easily be modified from ejected builds and scripting is now stored in an assembly style virtual machine language. What this really means is the engine code is now easier to understand, allowing you to debug your changes and giving the GB Studio developers a better base on which to build future improvements. With the new “Export Data” option in GB Studio and the new command line build tool, people who are more technically inclined can create their own development pipeline while still keeping the core application easy to use for non-programmers who don’t want to go anywhere near these new features.
All of this has us biting our nails in anticipation, but it will most likely be a while before we start seeing releases that incorporate these new features. While some users may be discouraged by the increased wait, it is certainly worth it when it comes to the new engine and other enhancements like music in mind. If you are interested in seeing some of Toxa’s work, including some pretty crazy ideas for multi-threaded processing and 2.5D games on the Game Boy, check out his github page.
Audio Engineer, Mac Technologist and Video Game Developer. Managing Editor of GBStudio Central. (he/him)