Wednesday, November 26, 2025

Pixel Eventure Scene: Bobolo River Eventure (Part 1)

I had a week off from work back in August, so I spent some of that time working on mini-projects. Once of those projects being an animated Eventure scene in a game engine. I haven't finished it yet, but I'll start by showing where I'm at so far, then I'll dive into my process for how I made it:

This project started because I was playing some games that had really inspiring art and story, like Meg's Monster and Deltarune. I've been keeping a folder of inspirational screenshots, so I spent some time updating that and just looking through it for inspiration. Through playing these games, there's often a lot of polishing features that make them stand out. That may be the art, but also subtle things like animations in the background or character-specific poses. These are often things that I don't have time to implement for my shorter game projects due to time constraints. So I wanted to make a project where I really focus on the visuals.

So I started out by thinking about locations in The Nays and scenes that I might want to use. I read through some Eventures and came up with a list of backgrounds I'd like to draw and what scenes would be associated with those. I really wanted to find a location that had either a forest or water, because those are locations that stood out to me in some of my inspirations. So I drew some thumbnail sketches of a few different scenes.

The ones that I liked the most were the PS World forest with Scott and his friends in the Death Eventure, Frosty Falls with Pubby and Pearl in the Searching for Home Eventure, and the Bobolo River with Scott and Pidgebeetle in the Bobolo River Eventure. All three of these also could make use of lights because they all take place at night.

Then I played around with some fonts to try and find one that would be fitting. I really wanted to have simple text boxes that are just text bubbles that pop up above the characters' heads. So I typed out some quotes and looked at a few options I already had downloaded to try and decide which to use. I was leaning towards the one at the bottom.

I decided to go with the Bobolo Eventure scene. So I made a new sketch to update the sizing and make sure the text bubble fit well. I looked at a lot of my inspirations for size references of character sprites and text bubbles because I had previously made everything a bit bigger than it needed to be. I also expanded the canvas so I could have a bit more space to work with outside of what's directly on the screen.

Then I started to set up the basic project file and find if there were any plugins I wanted to use. I found some cool particle effects plugins that'll help add the atmosphere I'm going for, so I did some tests to get some timing with some placeholder assets.

Then I added some base colors to my sketch to try and figure out the general color palette. I was trying to keep a fairly limited palette and something that would look good with a darker atmosphere at night.

I started to figure out what plugins I wanted to use for the text box. VisuStella Message Core and Galv Message Style never play nice together, but I at least found someone that had a tip for making them work to the extent that it doesn't crash! I decided Galv's plugin used more of what I was looking for with those text boxes above their heads, so I went with that for the time being. Because this isn't planned to have a lot of text, I may not even really need the word wrapping and might just type text straight in RPG Maker without Ink to keep it simple. I also want to make this playable in the browser, which rules out the Ink plugin anyway since that doesn't work with browser exports. I kept the text box very simple to just black and white for now with a minimal border and text indicator. I also added black bars that animate from the top and bottom to indicate it's the start of a cutscene.

Then I started to concept sketches for the animations for Pidgebeetle and Scott. I maybe drew more sprites than I'll have in the final version and they're still super rough, but I wanted to get something in there to work off of.

I decided to try out Aseprite because animating on multiple layers in Photoshop can sometimes be a bit harder to keep track of and immediately see results for. I had to get used to it at first (especially the tools being on the right side and unable to be moved to the left side), but overall I think it helped for animating. The tagging system helped too so I could look at my animation and know which parts related to which part at a glance.

I started with final art for Pidgebeetle's idle animation. I saved it out as a spritesheet and imported it into the engine with the speed I want him to move at. I also drew some head turns for him that I'll use for later parts of the scene.

From there, I continued to finalize all of the animations for Pidgebeetle. I dedicated time to just finishing the lineart and color for all of his animations before even exporting them as spritesheets or moving on to any of the other characters, because I really wanted to work that muscle memory of drawing him all in a row.

Then I imported the spritesheets into RPG Maker and set up all of the animations with some basic timing in the engine. I still plan to time it out more with the rest of the dialogue, but got something working in there for now. I was having some issues with the animation frames displaying in the proper order though, because of some of the weirdness with how the Set Movement Routes work in RPG Maker though, so I had to do some troubleshooting on that.

It took me a lot of time to troubleshoot the animation issue. I posted on the forums to ask for help with it, and from there, was directed to a plugin. I ended up going the plugin route and downloading multiple until I found the right combination of 2 plugin creators that finally resolved my issue. It involved manually hard coding the frames, using a plugin that allowed for more than 3 frames, and holding a few of the frames to account for any delays/errors that could randomly happen. It's not perfect, but I at least got it looking close to what I wanted from all of this.

I ended up adjusting the explosion animation a bit to delete a few frames so it would look more integrated overall and I changed the smoke to show pictures instead of character spritesheets.

And that's where I'm at so far! I took a break from working on this, but documented all of this, so I figured I would share where I'm at right now and then come back to revisit it later.

Thursday, November 20, 2025

Debug Log File Plugin for RPG Maker MZ

I took a break from working on the menus in The Note Competition remake to make my own plugin for logging data. This was a bit of a sidetrack, so while it was in that project file, it's not officially core to the development, but something I thought would be useful to implement! This is a pretty text-heavy post, so be ready to see some code and not a lot of visuals.

I wanted to create a plugin that could be useful for playtesting and when players demo the game down the line. Information like play time, characters they chose, etc. I'll have more data like variable values likely in here too, but trying to print some basic data. So I started by creating a basic script like I did in #No_Hacks where it prints information to a log txt file. This was just to get the numbering set up and basic text in a text file.

Then I created a while loop where I check if a log number exists, then I iterate up by 1. This way, it could make a new log file for each time it fires.

Then I had to dive deeper into how to detect if the window is closed. I found this forum post where Caethyril details the code on how to create a custom handler to override the default close function. I started with their code just to get it functioning with my current code, then simplified it later.

Then I customized it a bit and moved it into its own function to make it a bit more readable for myself and my specific code. I was also turning this into a common event so I could have it running at all times to check.

I wanted to decide what data is printed in the file, so I created a new script command to store what's in that multi-line variable string. I tested adding some variables and data from RPG Maker in there and eventually added some extras like playtime and current team (which in this game is stored in the first party member's equipment).

It was starting to be a lot of code in these tiny script commands, so I figured because I had recently been learning about how to make a plugin for a different project, that I would turn this into a plugin. Then I could manipulate the data a bit more. So I started by copying all of my code from the first script command into a plugin and reformatting it. From there, I got it all working as a plugin that references that variable. I was having some trouble with some of the scoping, but eventually was able to turn this into a couple of functions to make it easier to look at.

The next step was just converting what was in my script command to set up the variable with plugin commands to make it a little easier on myself for editing what prints, so I wouldn't have to come back into this common event. I decided to store all of the data just in the plugin and then make plugin parameter settings where you can turn these on or off individually. I was going to have users be able to input that data themselves, but it was getting a bit complicated and I honestly will probably just use this internally anyways, so I decided to keep it all within the plugin itself. So I spent some time adding help files and parameters that you could turn on or off.

I had a lot of fun towards the end adding a bunch of parameters and seeing what data might be most useful to print. With the ability to turn them on and off, I figured I could add some that might be useful in some of my projects but not in others. I'm sure I'll continue to add to this list as I think of more parameters to add, but for now I'm calling it done! So below is the log folder with one of the log files opened.

And then because I spent so much time on polishing this plugin up, I decided to officially publish it on itchio! You can download it yourself here and use it in your projects.

So with that, I can officially say that I've finished my first RPG Maker plugin! I did a lot of research and was working on some various other plugins for this project and another one before this, but those were a lot more of learning experiences with a lot of stitched together code. For this, I feel like I understand what everything's doing fully and was able to write it on my own without a lot of coding references, and mostly core RPG Maker and JavaScript code. So I'm happy that I was able to finally do it! I've been wanting to make a plugin for awhile, so this was finally my leap into making one. And I'm hoping it'll be helpful to use across multiple projects. Maybe someone else will even find it useful for their projects too!

I know this blog post was definitely more technical and text-heavy than I usually do without many visuals (and the visuals were just more text!). But thanks for reading through my programming journey on making this plugin! 

Tuesday, November 18, 2025

The Note Competition Remake Devlog 2: Character Menus

I've been continuing to work on updates to The Note Competition remake game. Once I had some of the basic parts converted to RPG Maker MZ, I started thinking about how the menus would work.

I originally coded the characters to be actors in the database, and then each of them would have a class, where I'd set the stats for battles. I was thinking about how I would approach the party menu of selecting your team and moving them around. And then it hit me. I could actually manipulate this into just using the built-in equipment system and have each party member actually just be a piece of equipment with stats on the character and it would make it a lot easier.

So with this, I went down a bit of a rabbit hole of looking at menu customization plugins and trying to make my own layouts. I spent some time on a status window, but then I realized we probably won't need that and can just put it all into the equipment menu. So this was kind of for nothing, but it's there in case we need to pull it back out at least.

I also updated Casper Gaming's encyclopedia plugin a bit from my modified Nay Saga version to make sure it included equipment instead of actors. I also spent some time removing the ability to select the top menu because I wasn't planning to have multiple categories. I still need to work on the specifics of the menu and what's all included, but it's at least laid out enough as a starting point for the equipment. This is what I'm envisioning will be the emblems menu that we wanted to include in the original version of this game.

Then I sketched a few menus out in my sketchbook to kind of figure out what was really needed. This was when I actually realized the status menu wasn't needed and that we could probably just scrap it.

Then I implemented the equipment system fully. This meant updating all of my code for references to actor parameters and using equipment parameters instead. This actually cut down on some of the ID variables and my process really started to streamline for what we'll do for adding new characters. It's easier now, so I'm looking forward to using that!

Then I started to look at the VisuStella Items Equips Core plugin, which I hadn't used before. But because I'm looking at using the equipment menu for the party menu, this one will probably help make that be a bit more customized without having to create my own from scratch. So I played around with moving menus around and also customizing it so all of the character could display below in each category as well. I found some code and stitched it together to make this work pretty close to what I was thinking. Still obviously very placeholder in terms of visuals, but the functionality is feeling better.

   

So then from there I started to make a timeline. We're still very early in this game dev process, but my initial stretch goals in this plan include releasing a demo in 2026 and then the full game late 2027. But we'll see how that goes! We still need to start actual development since I've mostly been just playing around in the project and exploring some ideas. We don't have our solid plan yet, so once we do, then those dates will become more accurate. I'm looking forward to posting more about the process as we go.

Sunday, November 16, 2025

CUPdate 90: Mr Marcus World Continuation

This is a shorter blog post, but it's a continuation of my earlier blog post here revolving around a Nay event that we've been doing recently: Return to Mr Marcus World.

My brother and I wrote the Mr Marcus World Eventure. It was a bit shorter, so we finished it within a few hours one Saturday. We now only have 1 more Eventure to write until we can skip ahead to writing Eventure 26 because of how many early Tag World Eventures we've already written.

Then it was only fitting to do the Mr Marcus World activity after that! We just did 1 round which was drawing one of our characters with a background character we hadn't drawn yet. So for the first one, I drew Clove and then a character who doesn't actually ever appear, Cabrinth. She's a wanted demon that Kali sees in a newspaper.

I also drew Jennie with Gardo. These two have probably actually met before because Jennie and Gojo are on the same hockey team. Gojo's dad is Gardo.

This has been a fun on-going activity and one of our favorites for drawing and random creative events that involve The Nays. We can usually do one or two of these activities in a day too, so it's an on-going one that we can come back to if we want to do a quick creative event. We still have a lot more since we just started this one, so I'll probably have those results in some future posts!

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!