Friday, May 1, 2026

WING Competition Early Devlog 3: Logo Design & Steam Setup

I took a bit of a break from brainstorming for this project to work on a few other projects, including a couple of months on clean-up for our GGJ26 project, a personality quiz game, and some travel.

Once we wrapped up those projects and took a break, I slowly transitioned back into working on The Note Competition remake... which we're still figuring out a name for. Right now the code name is "WING Competition", but we may need to workshop it a bit more. I was still just working on this on and off while things have been busy the past few months, so this post will have a variety of small things working up to the bigger project.

To start back in, I was thinking about some of the expenses and marketing side of things. I was thinking about us making some social media posts, so I started making some accounts and things to prepare. With that, we decided we might want to redo our logo for The Gek Games. Right now it looks a little too similar to The Nays because we're using that same drawing of The Gek. So to make it a little different, I sketched a few thumbnail ideas for logo concepts.

I took some of those sketchbook drawings into Photoshop and started to turn them into digital versions. These were really rough, but I wanted to figure out the overall layout/feel before I got too far. Some of the designs I liked more originally ended up looking a little busy when I turned them to digital.

Then I took the bottom-right one and cleaned it up a bit and then tried out a few fonts. I was leaning towards the bottom-left but still wasn't sure if it's too busy.

I analyzed other game studio logos and decided to try one that's a bit more simplified with less going on so it could be a bit cleaner and easier to read. So this is what I ended up with for now!

I also started going through the process of making our Steam account! Since it requires many days to verify and have everything go through, I wanted to get that all set up early on so we could start testing the Steamworks SDK while we're developing the game. So I got our account all set up and verified so we officially have access to Steamworks.

Then, because of some of the things I learned from our GGJ26 project, I made a couple of spreadsheets to just organize our information like characters in the database and pictures used. It was honestly pretty refreshing to look back at this project after our intensive GGJ project this year because I set everything up not on a time crunch, so the project files and events were a lot more organized and well-documented. It's also a lot less complicated so far.

I also decided to dive into Steam integration more with some RPG Maker plugins. It was a lot of research, but I eventually found out I had to downgrade my NW.js to version 49.1. I found a few plugins that would help with adding Greenworks, but it wasn't until I found Undermax's Steam Link plugin that I was actually able to figure it all out. Their project file was set up with everything needed so I didn't have to go hunt down a lot of external files. And finally, I got something working where I could print the user's name! I still need to try achievements, DLC, and a few other things, but it was a great start to making sure we could get it all working.

Then we spent a whole night doing a brainstorming session! I'd say this was the start of the "official" development for this game. We really honed in on deciding the new theme and idea for the gameplay and overarching story. We bounced ideas around earlier of transitioning it to be about Tag World instead of PS World, but then we thought... what if it was multiple Worlds? So we decided you'd be riding a linkship around Worlds and be competing in some kind of competition across Worlds instead of it all being in Tag World. This could still keep the competition you're competing in as "WING" being the acronym and still make sense. And it allows us to include a lot more unique locations without being tied to Tag World specifically. It could be a few other acronyms like LINK or CIPO also, so we're not sure which one to go with yet.

I spent some time after our brainstorming session organizing all of our notes into a more official Game Design Document. We've been kind of just having a stream of consciousness notes in our document while talking, so I wanted to really hone in and organize our thoughts a bit better so we could have a more clear direction. So I made a new tab for the GDD and started to organize those notes and drop screenshots and images in whenever we referenced something so it'd be easier for us to keep track of and fully flesh out these ideas more.

Since we made an asset list, I started drawing the character sprite for the second playable character, Urom. We compiled a list of inspirations, so I used those as a guide for coming up with a few variations to try things out. I ended up kind of liking the middle one the most since it seems to have the most personality and shapes that fit.

Then I did very quick sketches of all of the characters we had planned. I was mainly trying to get sizes down in relation to each other and based on the middle Urom sprite above so I could try and get those figured out roughly.

I also saved these out as charsets so I could import them directly into the game and get some of those tests there for getting things set up.

Then I started to sketch some of the menu layouts while figuring out what the map layouts could look like. I'm still not sure how the battles are going to look, so we'll have to do a lot of experimenting there.

From there, I wanted to figure out the hub world and some of the basic ideas like challenging the enemy or the VS screen.

I also briefly revisited my debug log plugin because I noticed a couple of bugs with it affecting how you can close the game. So I updated it to allow you to close the game when you're on the title screen or when it's crashing. I also added a new crash report so it'll save a log if the game crashes and print the console error to the log. And it has more information included like the last called event ID and event command and the names of the variables and switches.

I also updated it to add functionality to connect with Google Scripts. This allows us to collect anonymous generic game data such as how long the game was played, what their party was, and if there were any crash errors. And I added a plugin command to call it anywhere in case I ever wanted to get a log at a certain point in the game.

Once I got back from a few trips and busy times, I decided to figure out a rough schedule for the next couple of years. That way, I could have weekly goals that I'm working towards to make sure I know where we're headed on the project. I added some milestone goals for us and deadlines. It's already started to shift quite a bit since I made this and I'm sure it'll continue to as we start working on the mechanics more, but I wanted to get something in there as a starting point so I could better scope and figure out where to start.

And that's where we're at currently! We're still very much in the rough planning stages for this project. Our personal lives have been really busy with work and travel, so that's been delaying progress a bit from our original milestones. But we're not in a huge rush to release this, so if there end up being delays that bump things a bit, I'm not too worried about it.

Our new goal is to officially start full development on this by June, since that's when our life happenings will likely settle down a little bit. At that point, I'm planning to really dedicate a lot more time to it. Until then, I might have a few side project CUPdates in the weeks to come if I'm not working on this quite yet, so stay tuned!

Friday, April 3, 2026

CUPdate 97: Character Personality Quiz

So my friends and I were in a voice chat and we took some online personality quizzes for various fandoms for fun. Then we thought about the idea that it would be fun to make our own personality quizzes about our characters! And thus began this fun little mini project.

This is a personality quiz where you select different choices, and at the end, you can see which character you're most like and learn more about them. This was an iteration I made partway through development:

To take the quiz for yourself, check out my itch.io page here and let me know who you get: 

I started with a very bare bones project because it would really just need text to show up (and maybe some pictures) and would likely be brower-based. So this ended up being what my first text looked like where you can choose the answer to a question and it determines which character you are. I just wanted to start with one question:

So to start, I made a very basic show choices event that adds to specific character variables depending on what choices you make. I figured with numbers, I could also weigh some questions higher than others (e.g., if someone feels strongly about an answer, they could be worth 2 instead of 1). So I used a basic one that I figured the 6 Main M Nays would answer mostly differently for.

Then I had to figure out how to actually determine the top value out of a bunch of variables. I could nest a bunch of if statements that compare them, but I thought that wouldn't be very efficient. So I discovered the Math.max() function where I can essentially find the maximum value of the range, get its index, then find the ID based on that.

This also meant making an array of character names so that I could essentially call that ID and associate it with a character. I made it simple with associating the variable ID. I reserved the first 20 variables for anything I might need to figure this out, so just put those as empty strings in the array so they would line up.

And that was it for the basic functionality! At this point I had the system in place and it was just a matter of adding more characters/questions. I did this all in about an hour, so it was a fun little challenge.

And then... I decided I wanted to optimize. So why not make yet another plugin? I ended up spending the next 2 hours translating this into a plugin so it'd be easier for me to edit the character list instead of that array and list of variables. So I started by translating the list into string list that the developer could input in the Plugin Settings. I later added the instructions in the help area that you can see here too.

And from there, I made my very first Plugin Command! It essentially takes a string that they input and searches if it exists in that string list. If it does, then it adds (or subtracts) a set number of points, based on what the user puts in there. I have it set to add 1 by default, but they can change that.

So once I got the code working, I was able to actually see it in RPG Maker, which was exciting. 

Then I translated the last script block into a single line Plugin Command for the user. It stores the character's name in a variable that they can set in the Plugin Settings. And after some testing and optimizing, I updated my event to use these Plugin Commands instead and the results were the same in-game, but so much easier for the user to customize!

The next day, I added a reset function so you can essentially retake the quiz and it would reset your points each time.

I decided to rework how the parameters work and updated the character to be a struct instead of a single parameter so that they could have multiple values associated with them like name and description. I could add to this if I found anything else useful too.

Then I started to design the results page for my own project. I used a few other plugins to add additional windows, clickable pictures, and the character's image that appears based on the variable.

From there, Jinny and I started collaborating and coming up with questions and answers for the quiz. She was mostly working on writing the questions and I would help her brainstorm while setting up our sheets to track our data for inputting into RPG Maker. I filled out responses to the first question with about 30 of my characters to try and figure out what formatting would work best for us.

While working on the questions, we ended up having some questions a bit longer than others. So I made the buttons wider than they had been previously to help accommodate for that.

I also went on a little side track and thought it would be cool to track responses to see which characters are most popular. So I found a way to essentially send data from RPG Maker to Google Sheets! So I added a naming screen so they could write a name and then it would record which character they got. This opened so many doors for me in future projects. I'll have to add some disclaimers about allowing users to opt out of data sharing if they'd like, but I can already envision how much generic data I can gather to look through for analyzing my future projects and how players interact with the game!

 

Then I used the CGMZ_Screenshots plugin to create a share results button so the player can take a screenshot and share on social media if they wish. It saves to their screenshots folder or prompts them if it's a browser version. I also edited the plugin to allow escape characters in the filename so I could use variables to print their player name and the character's name.

We iterated on and wrote all of the questions, then updated our points system as well. We decided we could give points to multiple questions for the same character to make it varied a bit if they were leaning towards more than one option. We also updated the order of the questions a bit so they'd flow into each other better.

Then I went through and answered every question for all of my characters! I tried to stick with a point system of 2 if they really agreed, 1 if they slightly agreed, and then in rare cases if it was completely against what they'd say, I would do a negative point.

And from there, the questions were done! So I imported them into RPG Maker. I imported the questions, then the choices. And then I used my plugin to add all of the points per character. Adding the points was definitely the most time-consuming part.

I wrote all of the results text for the characters, then added a few more quality of life aspects like music, a credits scene, and showing the results at the bottom, compared to other players who have taken the quiz.

I did some final playtesting and decided to update my plugin a bit to help me track character variables in the console. This helped me understand if any characters were popping up more often than others. I also added a new feature where in a tie, it could randomize the results instead of always choosing the first character in the list.

Then after doing more playtesting and finalizing it, I uploaded the final version to itchio! I noticed that if you play it in the web, it will crop it if you don't enter full-screen mode though. So I added a note on the page to account for that.

And that was the end of this project for now! I still need to import all of Jinny's responses with her characters once she finishes those, but for now this project is complete. It turned into a bigger project than I anticipated, but it was a fun little break in between projects. Overall I spent about 40 hours on this project, which is about how long I spend on an Eventure Trailer. But I was able to cut back and not do every wishlist idea I had so I could practice scoping down and making a little finished project.

If you end up taking the personality quiz, I would love to see your results! Click the share button and share your results in the comments below. 

Sunday, March 22, 2026

CUPdate 96: Return to Mr Marcus World

To take a break between projects, my brother and I spent a day just doing random activities with our characters. One in particular that we call Return to Mr Marcus World. It's where we do various prompts with our characters in different mediums.

The first one we did was sculpting our characters in Donkey Kong Bananza! I started with Pigger.

Then I sculpted Cimc.

After that, we went back to our animation roots with Mario Paint. I made a little animated sequence of Doge and Ted eating a snack of Oreos together.

Then I used more of the copying frames features with the next animation. This is from Mikey's perspective where he thinks Gojo is his best friend.

The next activity was drawing pixel art versions of Hannah and Subeebia in the style of old Pokemon Red/Blue sprites with the same limited palettes.

Then continuing along with the Pokemon theme was Pokemon fusions between two characters. The first one was Mooth fused with Spectrier.

Then I drew Scott fused with Lombre.

So we did all of these on a Saturday after finishing Macca Masquerade, and it was fun to just do some little low-key drawings and things that didn't have to fit into anything. These kinds of projects always help rejuvenate me and keep me feeling creative.

Saturday, March 14, 2026

Macca Masquerade: Post-GGJ Devlog 2

After a couple of weeks of solo work on updates to our GGJ project, Macca Masquerade, we met up for 2 weekends to finalize the game and do some final polish. And then we individually worked on it a bit and did some final playtesting in a final session together.

We officially finished Macca Masquerade! We did a lot of debugging and adding new features, so in this post, I'm going to talk about the final polish and steps we took to wrap up this project.

💾 Download and play the game here:

 

At the start of the first weekend, my brother worked on getting ranged attacks set up for the player, so I helped get some of those events set up. Then I drew the art for Maester Beckon, as he seemed like the next most important character to the story.

Then I helped fix some minor bugs with the battles and mask equipment menus. I also updated the enemy's attacks that don't have a range to now display on the player's space, because it was previously not showing any.

I worked on some polish updates next. I added animations to all of the attacks, when the mask cabinet appears, and when you run out of MP. I just used the built-in ones for now, but I think it helps make the battle a bit more exciting.

Then I made some updates for controllers. My brother tried out his PS4 controller and it was working for displaying the buttons in our custom menus, but not the Options menu. So I made some updates to display that in there.

We also thought the button icons were a little small, so I went into the core files and updated the icon size just so it would be a bit bigger. I had to reposition everything because of it though.

Then I started to work on the individual stats for the masks. I wanted to make them more unique with different stats, so I came up with some base stats like Attack, Defense, and HP per mask, and then Attack multipliers per attack.

I linked these stats to elements in the database and was finding out which parameters were available for reference by typing objects into the console. I found that using class stats for the masks and then skill stats for the individual attacks made the most sense, so I set those up in the Database.

Then I set up the Common Event and streamlined it a bit more so it would set the target and then if there's nothing special that needs to happen and it's just an attack, I set it to move on. And then at the end of every attack, it calls a Common Event that generalizes the attack damage formula so it's easier to keep track of.

I spent a day working on movement ranges. I updated it to allow for you to move 1, 2, or 3 spaces depending on which mask is equipped. It took me awhile to figure out the right ranges and spawning tiles, and I even ended up redoing our movement code so it's more simplified and only checks for the horizontal or vertical axis instead of both.

This fixed the bug where you could move diagonally, and then I started to actually add the movement code update to the specific masks. I tested it out with Meushi's and got it working as intended.

This led me to realizing our base attack code was only really set up for Kali's mask, and that's why none of the code was applying for other masks, even if I added them. So I updated that to optimize it and scale up. I'm still working on getting individual attacks programmed in.

I had a long backtrack to getting the movement range working. For some reason it worked in my tests, but when I actually tested it in battle with the mask abilities, it didn't work. So I had to go back to the drawing board and essentially rewrite all of the code and logic. I finally got it working though after a long troubleshooting night.

I took a break from the programming to make some quick little images like the game over screen and then updates to the options and title screens. These were mostly to update with clearer controls or replace some of the quicker defaults in there.

After another day of working on the project, we tied up a lot of loose ends. I started by implementing many of the different mask attacks like the poison and healing ones. All of them were working for the player other than the traps, and I got most of them working for the player too.

Then I worked on the enemy movement system and trying to make the enemies smarter so they wouldn't always move towards the player. There were still some bugs, but they would at least use attacks sometimes before moving!

I also updated the enemy turn icons to use the specific enemy you're fighting against instead of them all using the default Snull ones.

And then while my brother was working on the traps, I was helping with troubleshooting, but also drawing all of the remaining characters. I finished all of the face drawings of the characters.

And from there, I finished the character select drawings too! I added all of them into the game so they're officially all there.

Then we decided we really just wanted to wrap this game up. We had so many wishlist things left and a lot of polish we still would've liked to do, but we had a lot of other projects we wanted to work on, so we really just decided to give ourselves a deadline and finish it.

So during that time, I finally added the defeat animations for all of the characters. Once you defeat an enemy, you unmask them and take their mask, which you can use in battle. I drew the faces previously, it was just a matter of saving assets out to use here.

I also fixed some of the abilities like Meushi and Orangin, where their movement range wasn't set up yet. I did a pretty rough string of events to basically detect if they're out of the grid or going to move onto the player. I probably could've made this code a little more efficient, but I didn't want to spend too much time on it while we were in our final days of wrapping up the project.

I worked quite a bit on trying to fix up the movement overall. I was able to figure out how to prevent the enemy from stepping on the Mask Cabinet space and I updated some of the AI to be a bit smarter with the mask abilities so they wouldn't necessarily always use the ability that costs 0.

Then I updated the battle UI. Some of the buttons were previously overlapping and I wanted to rearrange the buttons so they'd be arranged like you'd see on the keyboard or controller. So I ended up redesigning the buttons a bit to work with that.

When I was making the buttons, I came up with the idea that if you run out of Mask Points, it should gray out the mask abilities to further indicate that you can't use them until you refresh your MP. So it changes the color if that's the case.

I also wanted to update the challenger select screen's HUD to match the battle and the rest of the game. I originally made it before we had done any of the other UI and I wasn't really happy with it. So I updated it to meld it into our theme a little better.

Then I wrote the rest of the story in Ink! There were a few characters I hadn't written story parts for yet, so I wrapped all of those up and then tested the full story.

While doing this, I was fixing some bugs and things that came up with the story, since I wasn't fully testing that. I also added blur effects to the background during the character dialogue to further focus on the characters in the foreground.

Then I finally fixed the bug we were having with the movement squares not showing up on the left after the first battle. I ended up just adding it to call again with a wait and switch because I think it was the timing of how it was loading. This seemed to fix it.

I spent a lot of time working on the enemy AI to try and make it smarter. This involved a lot of condition checking. Essentially I didn't want them to just stop moving if they were backed into a wall. So now it checks if they can't move away from the player and if they're against a wall. If that's the case, then they move the other direction. For example, if they're up against the left wall, they can still move up or down. This helped make them move around and chase the player a bit more and prevent them from using their non-mask abilities.

I did a bit more balancing and updated the values to higher numbers to make the attacks feel more impactful and fun. I also updated the start positions of the enemies so they're different for each character to make the battles a little less predictable.

We did one last night of bug testing and got almost everything finalized and working! We ended up finishing the final tests offline in the next couple of days and then officially finished the game.

Because I had been doing so much testing and playing through the battles, I was also coming up with strategies and having fun with it. So I decided to make a little fun strategy guide here based on what I used to play through the game. I also added an easy mode for anyone who struggles.

So after about 200 hours, the game was officially done. So while we took about 4x as long as the typical GGJ weekend to finish it, this was the most ambitious GGJ project we ever created.

We're happy with what we ended up creating for this project, but we both agreed that we're looking forward to a more simplified project next so we can scope back down and scale it back next time.

I learned a lot while working on this project, and I'm really excited to using that knowledge going forward into my next projects. Thanks for reading through my extended GGJ26 journey this year!