It’s been almost half a year since we have released Jazzy Beats, with it being our fourth project released here on itch.io. To all of those that have played and downloaded our games, and those which have posted some genuinely great videos showcasing your time with our games, thank you! We’re humbled by all your support and we’re glad most of you are having a whale of a time with our games!
Jazzy Beats was developed for Ludum Dare 40, and, whenever an edition of the event goes by, it’s not irregular for the great majority of us to get the feeling of unfinished business. From changes that could have been made to the final product, to smaller things like posts that we’d like to have written and published, most of us get the feeling there’s still so much more stuff we could have done surrounding our Ludum Dare entries. Unfortunately, sometimes life takes a toll and we find ourselves unable to clean the closet of all those things we wish we had time to invest in.
Our team been continuously haunted by one specific instance of that feeling. Back for Ludum Dare 40 (that’s December of last year!) when we developed Jazzy Beats, one of the things that was left in our backlog to publish was both a Timelapse and Post-Mortem of the game’s development. However, with members of our team exchanging countries for a extensive period of time, to master’s degrees and exams, between other issues
and tons of Fortnite, we kept pushing it back.
That’s exactly what we’re here to fix today. After a seven month delay (!), we’re here to finally post the finished Jazzy Beats Timelapse & Post-Mortem for the world to see. We decided to finish both of them, as even if the game is already past its prime, we believe both timelapse and post-mortem are an amazing tool of retrospect and that there are lessons to learn regardless of how long it has been since we released the game. That being said, let us give way for both! ?
Similar to our previous Petty Puny Planet Timelapse, I once again used Chronolapse to chronicle the game’s development. This time around, however, the program was set to take a screenshot every 30 seconds rather than every minute to make the flow of the development seem less abrupt at times when programs are suddenly switched.
The reason for screenshots instead of video is that having OBS recording the whole action, even with a moderate computer, still takes a considerable toll on the CPU which causes slowdowns when using the Unity editor and considerable increases compiling times. For someone that’s constantly returning to the editor after the slight change in code, that’s a considerable stack of delays over-time. Screenshots also allow me to revise them and much easily cut sections where I get AFK or leave a window open for extensive periods of time (as I am performing stuff on the other monitor) without requiring a bulky video editor.
Once again, the timelapse is only about the game’s development and you’ll mostly be seeing programming scripts starting to compose themselves on screen while the Unity scene starts taking shape and assets are imported. It’s still on the backlog for more members of the team to start making some of these time-lapses more regularly.
It’s still hilarious for us how Lavasama was the very first thing added to the game. The jump in progress between the first and second day is also really noticeable.
Jazzy Beats is an idol-themed beat-em-up game where you indirectly have to defeat your rival idol by fighting against her fans, converting them into your own. Each idol’s fans will walk towards the rival and proceed to attack them, as they attempt to knock them out.
The player, taking the role of jazz-oriented idol Jazzchan (Jazzy), can use punches, kicks, a ranged trumpet attack and an area-of-effect saxophone special to convert fans of her opponent rival, Bluessom, into their own fans. Some of these actions have cooldowns, but they can be used in conjunction to create and increase the player’s combo. The highest combo the player has obtained, together with the time it took them to defeat their rival are displayed in the end results.
However, the player’s rival has similar techniques and attacks at her disposal and will eventually convert the player’s fans back to her side again. Both idols will need to keep converting each other’s fans until one of them gets knocked out.
The game’s development team was composed by three members of the Whales And Games team which had previously worked together on the multiple updates of our Ludum Dare 36 entry, Colossorama. The game’s development and gameplay programming was handled by Jorge, while all of the game’s artistic design, direction and graphic assets were handled by Moski. Finally, but not least, Robin was in-charge of composing all of the game’s audio, from the different tracks in the game’s soundtrack, to the multiple sound effects and their variations.
We once again decided to stick with the tools we use during our day-to-day game development. The game’s development was done using the Unity engine with C# as the programming language, where we used a more inheritance-focused programming structure this time around. Art was created and designed using Krita, a free and open-source digital painting program, which allowed for quickly sketching and coloring the multiple sprites used. Finally, the Music was originally intended to be composed using Cubase, but due to setup problems with the program prior to the jam, the composer instead used their back-up digital audio workstation, Bitwig Studio together with their MIDI controller, which paired-up perfectly with their game jam composing workflow.r
However, in contrast to the workflows of previous events, all the team members had access to the Git repository of the game hosted on BitBucket and had the knowledge of Unity necessary to aid on the implementation of their assets directly on the game’s engine. More details on that on the following sections.
Game Idea and Design
When we look back at the development process of Petty Puny Planet, our Ludum Dare 38 game, one of our personal highlights was how efficient it was to handle the game’s development and design. This efficiency came as a result of having a well-defined game idea, design and vision shortly after the theme was announced, which allowed us to know exactly what we had to do in order to turn the idea into reality.
As a result, we once again decided to stick with a similar starting workflow for this edition of the jam. Once the theme was announced (The more you have, the worse it is…) each of the team members brainstormed several ideas and concepts on their own which were then pitched between all the members. During this concept discussion process, the idea of creating an idol game where you had to attract fans, with setting inspirations from The World Ends With You, Love Live! and the japanese idol industry, struck as the highlight between all of the ideas, although we weren’t able to settle with a solid and enjoyable idea for the gameplay immediately.
After some further discussion in regards to the concept, the idea of adapting the lava lamp inside-joke from the community into an idol character lead to the necessary inspiration to further refine the game’s concept. During this additional discussion, we decided to add mechanics from the beat-em-up genre to the concept, inspired by the likeness of River City Ransom and Skullgirls, only instead of engaging in a direct beat-em-up with the rival idol, you’d instead do it with their fans. This eventually lead to what would be called the indirect beat-em-up design of the game as called by players.
The idol theming of the game, together with the inspiration from multiple and varied sources gave us a flexible concept to work with, which, combined with inspiration from real-life locations such as the districts of Shibuya and Akihabarafrom Tokyo, allowed us to create the unique world and concept that is Jazzy Beats, appropriately titled after the protagonist’s name, Jazzchan and the main action of the game, beating-up. One thing we missed however, was that Jazzy Beats is actually the name of an existing music genre, which lead to some SEO confusion.
The Best Parts of Development
Shared Team Workflow
As mentioned previously in the Tools Used section, the biggest contrast in our workflow as a team in this edition, when compared to our previous projects, was that everyone had access to the project’s repository at all times. In addition to it, both artist and audio composer had newly obtained knowledge of the Unity engine that allowed them to handle the importing and setup of their assets into the game on their own. This allowed for the artist to handle the setup of the graphic assets and animations on the game himself, meanwhile the audio composer handled the setup of audio sources and making sure that the audio was leveled correctly.
On previous events, the programmer would be the one in-charge of importing and wiring-in all of the assets, from the graphics to the audio, which ended up consuming a great chunk of programming time. This not only allowed for the the programmer to invest more time in handling other programming tasks that needed to be taken care off, but also allowed for both of the other members to make sure their aspects of the game were just as they envisioned.
Versatile Structure and Fast Iteration
Described thoroughly in an earlier programming insight, in addition to the shared workflow, another aspect that helped accelerate the game’s development was the versatile structure of the project, especially when it came to object-oriented programming. Likewise to our previous Ludum Dares, one of our main concerns in-regards to the game’s technical design was making sure that content could be easily adapted and iterated upon easily during the game’s development. Adopting an inheritance-focused programming structure helped us make this goal much more accessible.v
In addition, the versatile game’s structure also allowed us to tweak values, cool-downs, and artificial-intelligence parameters on the fly, helping us when balance the game and making sure that Bluessom (the AI controlled character) felt as powerful and skilled as the player. It also helped with the team’s shared workflow, as, while programming tasks were in-development, other team members were able to tweak gameplay values to assure they felt right and balanced.
Multiple Inspirations and Unexplored Genre
Having inspirations from materials of different genres and backgrounds allowed us to handle the game’s concept and mechanics in an unorthodox way, fetching different aspects from each of the inspirations with the intention of creating an unexplored concept with its unique identity. These inspirations affected all of the game’s aspects from the mechanics, to the art and the music, and eventually lead the game to become what we now call an Indirect Beat-em-up.
We originally concerned in regards on how we would make the Indirect beat-em-up gameplay feel solid and fair for the player, mostly due to the fans being automated and controlled by AI. Nonetheless, we feel like we struck an acceptable balance between experimenting with this new concept (together with its setting, art and audio design) and making everything computer-controlled not hinder the player’s experience nor mitigating the beat-em-up genre itself.
What Experience and Feedback Taught Us
Brainstorm and Starting Out
Immediately after the theme was announced, we started brainstorming several ideas and concepts, hoping to plan for a game different from games we had developed before. However, while brainstorming, we kept forcing innovation and differentiation which lead us to spend most of the early hours of the event discussing possible concepts in circles and rejecting ‘standardized’ ideas.
Eventually, we arrived at the final concept, and although the brainstorming process didn’t consume as much time as one of our earlier Ludum Dare games, limiting brainstorming and not-overthinking the concept can help the games development process moving forward faster, something that helped in Petty Puny Planet, one of our previous Ludum Dare games.
Most of the issues starting out however, happened during the first day when we were still converting the concept into actual game mechanics. Since we were still setting up assets and discussing potential gameplay features, there were certain moments where some of the team members were confused about exactly what to work on next, which lead to some early motivational and time losses. By the second day, however, the game’s development accelerated massively, almost to double speed, which quickly restored the team’s spirits and helped prove the game’s vision.
Un-fleshed and Unbalanced Mechanics
While we believe that we have struck a decent balance on making Bluessom behave like the player, there were certain design decisions regarding Jazzy’s abilities that ended up shaping several player’s play-styles in a way that we would rather have avoided.
The most notable example of this case comes from the Ultimate Sax Drop ability, which automatically converts all the fans in an area around the player into their own fans. While we originally thought of making this ability charge by having the player perform combos, we decided to keep is a time-based ability expecting it’d be enough of a constraint players to only use it occasionally. However, since enemies continuously swarm up to attack the player, most players ended up avoiding direct-combat in late game as to play it safe, and instead solely relayed on waiting for the Sax Drop ability to recharge, using it when surrounded by Bluessom fans, and then repeating the process. This lead to a passive play-style that wasn’t exactly of our intention, as we wanted players to remain engaged on active combat from start to finish.
Another case of a mechanic that was left unbalanced was Jazzy’s ranged trumpet attack, which was intended to give the player crowd-control by performing attacks at a distance in case enemies would become crowded. Unfortunately, as we tweaked the values to avoid the ability becoming too powerful, we accidentally made it unreliable, making it strikingly slow to recharge and too small to help in any crowd control.
Going forward, we’d like to implement play-testing in our game jamming routine, as to allow to get some early feedback in-regards to the overall gameplay of the game and help us to better realize what aspects need to be tweaked on and off. We also want to take more risks regarding design decisions, as it was originally the case with the Ultimate Sax Dropability.
Despite all the issues with the games balancing, Jazzy Beats is still our-best running Ludum Dare game to date, setting us a new record in the amount of feedback and ratings we have received in a single entry. We consider it our most unique-looking and ambitious game made in a game jam so far, and even if it didn’t have as much content as some of our previous games, it’s still one we are really proud off.
Therefore, before completely closing off this post-mortem, here are some closing remarks regarding the game’s development, which we suggest taking into consideration as lessons for those looking to participate in future game jams and which we will also be reflecting on ourselves:
- If you’re joining in with a team, allow them to learn and experiment with the tools before the jam period. If other team members, aside from the programmer, also learn to implement their part of the content in-engine, you’ll be not only saving a great amount of time to the programmer, but also allowing those team members to improve their part of the game.
- Try to make the game’s values (such as health variables, cool-down timers, etc.) and aspects quickly tweak-able in the editor you’re using. This, paired with the previous suggestion, allows other team members to also contribute in balancing and tweaking the gameplay without being code-dependant.
- Draw the best from a multitude of inspirations and understand how they can improve your game’s design and aesthetics, turning it into something unique. The reason why our game looks different is solely thanks to the inspirations it was based off, and distilling what made them great in the first place. Jazzy Beats doesn’t shy away from the fact it art’s style is inspired in The World Ends With You.
- Take risks regarding gameplay decisions, and get people to play-test your game as you develop it. This will help ensure and help you get a notion if certain aspects of your gameplay are balanced or not and if they require tweaking that might not be apparent to the game’s team.
- Cut-corners where necessary, especially in art, where assets can be reused and re-purposed to allow the artist to dedicate more time in creating other assets that can be beneficial to the game. Re-purposing assets doesn’t necessarily down-play them either, as you can still perform changes to them to create even more variation, and some changes in color can be beneficial in other ways, as it was the case with Jazzy Beats’ enemies.
- If you’re a programmer, experiment with making the game’s code-base more oriented towards reuse and expandability, especially if you’re working with object-oriented programming languages, even during the jam’s period. Practices such as Inheritance and State Management can give you a workbench to quickly upgrade and re-use already existing functionality without the need to re-write or copy code from one class to another. It also has the added benefit of making each element of the game contained on its own.
- Sometimes, some extra little care in the game’s and material presentation can go a long way. Some of the players have remarked how the title screen animation, interface and even the game’s itch.io page were enough to create them a very strong first-impression.
- Jazzy is clearly the better idol, and Bluessom is clearly pass her stage time. On the other news, would you like to get Jazzy’s amazing new fan-kit?
What Can We Improve On?
While we would like to continue our work into developing an expansion or an update for Jazzy Beats, at the moment we can’t be sure when or if we will be able to get around to it. However, given the opportunity, some of the changes we would implement, together with some player feedback would be as following:
- Improve Jazzy’s abilities and tweak them to motivate and reward players to keep up their aggressive and active play-style all through the game, always making sure that they are converting and dodging fans around.
- Increase the game’s tempo and potentially introduce more music-themed mechanics into combat.
- Expand the fan-cast with more unique fans that would spice up the streets with unique behaviours and characteristics. Maybe have a healer fan that heals an idol over time, or a fan that attacks slower, but is able to double damage each idol?
- Add-in a potential versus mode, where each player would each control their own idol and compete to have the largest amount of fans on their side attempting to defeat the other player.
Jazzy Beats was a wonderful Ludum Dare experience, and we would love to keep up the streak. We are really fond of the universe we have created for the game (including the multitude of characters and backstory that we have discussed between ourselves that isn’t shown in the game) and seeing the feedback and comments come into the submission always reminds us why we enjoy dedicating time and ourselves in game development and participating in Ludum Dare. This was also our best event commenting on other jammer’s games and giving feedback yet, and we expect to keep it up on future editions of the event in which we participate!
That’s our most complete (and longest) post-mortem yet! It was quite troublesome to finally get it done, but we’re glad that we had the chance to finally take something out of our long backlog. If you gave a read through it all, thank you a lot for reading!
Our team at Whales And Games is finally starting to tackle some bigger projects and finally complete several items we left pending around for a while and everyone is really excited and looking forward for it. If you didn’t get the chance to play our previous Ludum Dare game, Wizsnooks, now would be your best opportunity to do it! ? If you’d like to keep up with our game development chronicles, we also have our very own Discord server! We’d love to see you there
and join up with us for some Fortnite. We’ll be starting with some server activities and extra project development soon!
For everyone that will be participating in the upcoming Ludum Dare, we wish you a whale of a time and that you take the most out of it! We won’t be participating as a team for the upcoming edition, but some of our team members will be joining the jam on their own and will be looking around for teams. Keep an eye out for their entries! ?