The road to feature complete


Hello again! After the previous introductory devlog I’m here again with an update on the work we’ve been doing over the last couple months to bring Playdate rhythm game Agents of Groove closer to being feature complete. Feature complete for us means that everything the player is meant to be able to do in the game, they are in fact able to do, even if the art around that is still a placeholder, the game difficulty is all out of whack, or not all settings are available. We therefore prioritized our work with that goal in mind.

Levels and gameplay

The first goal for feature complete was to nail down the gameplay mechanics for all level types: I felt like we were already mostly in a good spot there, but could still afford to add some variety to the mix. There was a fourth level type that I meant the game to have, but, as it wasn’t as well-formed as the others in terms of gameplay yet, we had to weigh different options to understand what would fit best.

I briefly touched on this in the previous devlog, but the three original level types that we had already decided on were:

  • the basic single screen dance level type, where the player matches the rhythm of a background tune with buttons and crank
  • the dance-off level type, i.e., our version of boss fights, which in terms of gameplay works similarly to the basic dance
  • the traversal level type, with free movement in rhythm with the music

all of which we catch a glimpse of in the teaser trailer. To serve the story better I wanted to see if we could add another type of traversal level that would be sort of a blend of the one we already had prototyped and the regular dance; however, it wasn’t immediately obvious if this would work well alongside the other level types. To really understand where the strengths and weaknesses of this hybrid lie, we had to not only iterate a few times on a prototype, but also go beyond that and try to create a fuller, more complete level.

Additional tooling

To do all that more easily, I first put together a quick level editor in Python: this was something I wanted to have anyway, so that we could create the rest of the levels visually and more easily. I added in support for the new gameplay pieces that the different iterations needed, and we tried them all.

A view of the level editor using some temporary art for the new level

While the editor won’t win any graphic design accolades for its visual appearance, and indeed is very much unpolished, it functionally ended up working out quite well and it helped us iterate faster. It turned out, perhaps predictably, that some of the more complex concepts for this level type don’t work too well, and trying to do too many things at once while following the music rhythm can be confusing! In the end, we went with a simpler variation that I think gives the best compromise, and fits the vibe the game is going for, which sees our friend Daley Bellbottoms essentially move on rails and animate as needed as he avoids obstacles during the traversal, while the player pays attention to the rhythm and matches the button prompts that are coming in. Nothing else in the game moves on rails, so that’s an example of a set of features that needed to be added to both game and editor. At this stage, this is still using temporary art, but here’s what the result looks like in game:

A screenshot of what the resulting level looks like in game

This level type seems promising so far, and I’d like to say it will absolutely, one hundred percent work well, but in reality there will remain some open questions regarding whether this will gel well with the flow of the game, that can only be answered as we create more game content. In addition, in the way I visualize it in my mind this level type is likely to end up requiring more art and animation work than the others, so there’s some additional risk inherent in that (there’s still only two of us after all, and we do want to ship this game eventually). Fortunately, it wouldn’t be hard to convert these levels to the other traversal type if we later find out the game works better that way, and regardless, this was important work that needed to be done to vet the concepts we still had floating around.

As part of this work we also nailed down the rules for progression from one level to the next, which may differ slightly based on the level type, and the gameplay stats that the game keeps track of for each level and for the lifetime of gameplay. Different game elements can react to how the player is doing, and there are now a few main drivers that define the player’s performance: we might touch more on that in a later update.

Art and Animation

The art department (i.e. @nethercatt) has been busy with the art requirements for all level types, including the new level type we were testing and trying to get (features-wise) fully developed. We had a background and some props for it that we were testing with before, but as part of the gameplay iterations we also tested different lengths for the level, in a quest to find what felt best, and we took the opportunity to create additional items and obstacles that will be seen as the level progresses, to add variety. This work extended also to the three level types we had already decided on, which we re-evaluated and ensured they had all features and enough representative content to move forward with.

Conversations between levels are also a big part of Agents of Groove, so we did more work on portraits for additional characters and systems to support the occasional portrait animation or special effect. In the previous devlog I mentioned how I liked the clean and readable look that conversations had in our teaser trailer, and we prototyped a few additions to test, with the goal of keeping the general clean look and feel while adding in a background and trying additional fonts. Here’s what that looked like in the trailer:

The original conversation screen as seen in the trailer

And here’s a simple example of one of the options we looked at, which we’ll continue iterating on:

An updated conversation screen we’re testing

While working on conversations we tested a variety of fonts for many UI elements, both in game and with a trivial font visualizer tool I wrote for the Playdate, with an eye toward localization coming later down the line. This is a topic that could warrant its own post, and deals heavily with our custom tooling, so I won’t spend too many words about it here; suffice it to say that on Playdate it’s not as easy to work with (and have immediately available) multi-language fonts with thousands of glyphs that are as readable as we’d like, so we’ll continue testing and iterating as development continues. For this portion of the work it was important, however, that we’d have all the necessary features for switching languages and have the UI react correctly, and despite a few additional tweaks needed we’re essentially there.

Accessibility

Accessibility is important for us at Synaptic Sugar, so I wanted to incorporate as many features to improve accessibility as I could into this game. On the road toward feature complete I added some extra modes that can be turned on in the game options for players who can’t or simply don’t want to use the crank, and one that allows players to press any button instead of the ones shown on screen, as long as they do so with the right timing. “Right timing” is also a relative concept that can be tweaked to be more or less lax with additional options, and I plan to add difficulty levels that are essentially presets while still allowing players to customize each setting as they wish. Visually, the “any button” mode currently just replaces the regular button prompts with blank button icons:

A game screenshot using “any-button mode”, with the regular button prompts replaced by blank button prompts

These were easy additions to make, but there may be more subtle accessibility features that I haven’t identified yet but that could be useful, and I’d be happy to add them in as they surface.

Final words

We did do a lot of work in the last couple months, but there are still a few things that we couldn’t get to. We have the foundation of a save system, but it’s not yet possible to save game progress; memory usage and loading times are not optimized, and could benefit from better resource management; there’s still work I would like to do on audio and music, very important areas for a game like this. We’ll now take a short break, but when we return these are some of the things we’ll focus on, as well as creating and polishing more of the art, now that most of the development doubts have been removed. Until the next devlog, follow us here on itch.io or check out our homepage for more updates!

@wildbat



© 2024 Synaptic Sugar LLC. All Right Reserved. Synaptic Sugar™ and Agents of Groove™ are trademarks of Synaptic Sugar LLC.

Leave a comment

Log in with itch.io to leave a comment.