Thursday, October 9, 2025

The Note Competition Remake Devlog 1: RPG Maker MZ Updates & Optimization

So after attending the GDEX (Game Developer Expo) in Columbus, my brother and I were very inspired to make games. After seeing all of the indie developers with tables, showcasing their games, we also thought it'd be cool to do that some day with one of our own games. We haven't released any of our personal projects commercially, and we've just had them all on itchio for free. But we were thinking it would be fun to use one of our existing games as a starting point, and then expand upon it and publish it to Steam.

From there, we were playing our game jam projects and I was taking notes on areas each of them could expand or improve. Many of them were contained within the project because we intended them to be short, so expanding some of them might've felt unnecessary. We thought about World Bub mainly because it's the most fun to play and our best one, but it's also really the one that's most complete.

So then we decided on the one that was the least complete and the most prototype-like: The Note Competition.

This was our first time making a game that was very different from the several mini-games formula that our previous ones had been. You can check out my portfolio page for it here and read the devlog, watch the dev vlog, and even play the original game for yourself there.

But basically, it had a lot of potential to be something bigger and was the start of our more ambitious game jam projects. So this seemed like a really great place to start.

This was also our last game jam project that we made in RPG Maker MV. So I started by converting the project to MZ, as we wanted to ensure we were using updated plugins that we were used to and just all of the overall improvements that MZ offers. It was pretty straightforward to copy the events over.

The main area that didn't fully copy over was the plugins. So I updated the title screen to use the new title screen plugins. The title screen was one of the aspects I liked most at the time because it was the first time I really did something different. So I was glad to get that working. We might change some aspects of it once the game is finished, but the functionality is there.

The rest of the plugins were for areas of the game that might change anyways, so I didn't want to spend too much time on updating those areas. I took a lot of notes on areas we could be more efficient with our code and overall process, so I imagine a lot of this will be reworked anyways. I played around a bit with zoom scripts because one of the areas I wanted to improve was on the art direction for this game. The sprites are currently pretty small, which makes them hard to see, so I thought maybe a zoom plugin could fix that. None of them really worked how I wanted, so I decided just doubling the sprite size is likely the way to go. I might redraw a lot of the sprites anyways, so I can just create the new ones at a larger resolution in the end anyways.

From there, I went on a sidetrack and figured out how to event my own local multiplayer system! I was looking for plugins and couldn't find any that did local multiplayer, just a couple for online. I found 1 but it was a paid plugin for commercial use, so it motivated me to figure it out on my own. At first I was using different common events for each keyboard press, but then I realized you could actually hard code keys in conditional statements with Caethyril's Keyboard Inputs plugin.

So I started with basic movements with the IJKL keys. Then I used a combination of conditional statements and JavaScript code to check if the event was facing a specific event and would start that event's code if it was. I had to do some precautions to activate a self switch and use a switch so they couldn't move during the conversation, and so it didn't activate twice.

So after that sidetrack, I did some brainstorming and came up with a new direction for this game. Instead of it being The Note Competition and about repairing the Party Place, I thought about the game USA Jr that they would compete in within Tag World. It's usually part of the Master Bird Tournament, so I thought it made sense that this could be around that game and with a Tag World theme instead. This could also add more mechanics like choosing party members and having different abilities. So I thought about how to rename it to make it make more sense. I thought about acronyms that would be fitting for Tag World, so like BIRD or WING. I decided it'll probably be WING and stand for Warrior, Investigator, Nay, Guard. These are the different positions they can have.

So from there, I decided to dive back into the original game and how it was laid out. I knew we would still be using some of the same functionality like spawning items in a region, so I fixed that mechanic using the VisuStella Events Move Core. It was very straightforward to get it all set up!

I also knew we would be using health bars again, so I updated that visual using our previous projects like World Bub as a guide. I even simplified the code a bit and then also added our specific features like showing a character picture depending on the state and changing the visual of the base.

The next big task was optimization. We hard coded a lot of areas to work for just this one battle. As you do with game jams and time constraints! So I wanted to work on really streamlining this so it'd be a lot easier for us to reuse the same map and just pull data from the enemies and your party so we could really just plug and play with it all set up. I used a combination of World Bub, Compass Nays, and Biggert City Battle Show as my inspiration on how I wanted to set up my events. I was actually pleasantly surprised with how organized I was in the Biggert City Battle Show code, so it was really easy to parse through and reuse.

While optimizing the code, I wanted to change the resources in the corner to use text instead of typing it on the image so it'd be a little easier to update and change later in the engine. I spent way too much time trying to figure out how to center the text, because the ExtraWindow plugin wasn't playing nicely with the VisuStella Message Core plugin. So eventually I just modified the ExtraWindow plugin to include a new switch that you can choose to center the text. This will be useful for future games, and maybe even within this one, so I was glad that I spent the time on it.

I optimized various other areas as well, such as which sprites show up on the map, images that are displayed, etc. I also spent some time making classes for the characters and pulling data like attack stats, HP, etc. so it'd be easier to control from 1 area.

I was slowly deconstructing our code from 5 years ago to really just modernize it with how I make projects today. There are still some areas I need to update, but a lot of those are really specific to the mechanics. So I didn't want to dive too deep there until we figure out if we're still using those mechanics for the new gameplay style. So I want to think through that a bit more before getting too deep into that. So far it's been fun to really update all of this.

I'm looking forward to making more updates to the game in terms of mechanics, story, look, and more!

No comments:

Post a Comment