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.





















No comments:
Post a Comment