top of page
Search

The Story of Trope Tales

  • Writer: UBTCodeNinja
    UBTCodeNinja
  • Apr 14
  • 16 min read

Since this is my first blog post about a game that has been 5 years in the making (on and off) I think it's worthwhile to give a high-level overview of development up to this point, explain my process, and explain where the game currently is and what to expect this summer when we release.


I do intend to do a bit more "technical" blog posts shortly covering how I addressed limitations of the engine or patterns I found that made development easier along the way, but I will avoid such low-level details for the time being.


The Beginning

For as long as I can remember I've wanted to make a game. My interest began when I was just 3 years old, sitting in front of a Nintendo Entertainment System, pressing the "A" button and watching Mario jump at my command. It fascinated me that lights on a screen could react to my command, and fascinated me further that the lights posses real life and intelligence - reacting to enemies on-screen or changing as I grabbed a power-up.


It was this interest that led me to start teaching myself programming from an early age. I started learning HTML when I was 8 years old from Lissa Explains It All (which I'm surprised to see is still running to this day). When I was 11 I printed off the entire manual for the Ti-83+ calculator (much to my father's frustration given the price of printer ink at the time) and began to each myself Ti-BASIC. By age 13 I was learning PHP, at 15 I took a college-level course on Java offered by my high school, and at 17 I was teaching myself C and C++. I then went on to get a Bachelor's of Computer Engineering.


Yet despite all of the learning that I did, making games was elusive to me. I learned how to construct machine learning models, I learned basic cryptography, I learned how to build a client-server protocol and how to use data structures to reduce time and space complexity for my algorithms... but nothing taught me how to make Mario jump! I even made a StackExchange post once asking someone "how do I maek gaem?" and it was mostly recommendations for engines to try out and not recommendations for where to start.


I didn't really get my first break until I stumbled upon Game Programming Patterns by Robert Nystrom. This book assumes zero knowledge of game development but high level of general programming knowledge, and builds all of the basic components from the ground up.


Years of Back and Forth

From 2012 through 2018 I had an on-again, off-again relationship with game development. Here's a brief summary of a few of my failures:


Generic Voxel Game

Copyright Voxeland
Copyright Voxeland

Around 2012, after reading up on the Marching Cubes algorithm, I was interested in trying to build a MineCraft clone that utilized the algorithm to create a non-boxy world. While many such games exist now, the idea basically didn't exist on Steam at the time. Unfortunately, I was getting in way over my head.


After installing Unity3D I began looking for tips for how to create a world builder with voxels. I spent about 20 hours diving into the Perlin Noise rabbit hole before stumbling upon a link to a Unity3D store asset that did everything I wanted already -- it generated a world, allowed for adding and removing voxels, and even applied Marching Cubes to smooth out the blocks! If I could just add some enemies, an inventory system, and basic progression system then I'd have my game complete...


Although after loading Voxeland into Unity3D and playing around with their demo for 3 hours, I realized I had no idea how to do something as simple as add an enemy to the world. I didn't know how to modify the world they had generated. I didn't know how to change the block adding and removing code to depend on having a pickaxe in your hand or to take longer to destroy blocks based on their strength. I didn't even know how to have a pickaxe that stuck to the character's hand and followed you as you moved. The more things I wanted to do but didn't know how to do, the more distressed I became until the game fell to the wayside.


TumbleBunny

Copyright Gene Levin
Copyright Gene Levin

Around 2014 I was approached by a friend of my brother about making a simple Falldown-style game where you controlled a rabbit descending deeper into an underground borough. I first tried building the game using QuintusJS, then pivoted to Unity3D (which lacked many 2D tools at the time) when I realized how little I knew about creating sprites in code.


The first two hours felt very accomplished when I had a rabbit that would move left and right according to keyboard input. However after that, things devolved. I wanted the rabbit to curl into a ball when moving, but how do you update the collider to respect the new ball shape? I had platforms on the screen, but how do I make them move up against the flow of gravity? I wanted to have more platforms spawn below the screen, but how do I make game objects appear using code? Also why did I need a collider and a rigid body? And why didn't I need to add a transform? I spent another 10 hours hitting my head against a wall before giving up and deciding I had no talent for game development.


RocketMouse

Copyright Mark Placzek
Copyright Mark Placzek

After my first two failures I decided around 2015 to sit down and actually do a tutorial that would help me build a game from start to finish. Surely, this time, I would learn to make a game. So I found Mark Placzek's tutorial on How to Make a Game Like Jetpack Joyride.


I spent the better half of two days slowly going through this tutorial and trying to read the Unity docs and make sense of everything as I followed along. When it was done I had a cute little mouse that could float to the right while the background slid left behind him... but I had no idea how to really modify or extend this game! What if I wanted to add a cat that jumped up and tried to grab the mouse? How do I even go about finding art for that? Once I have art, how do I properly animate it? How do I build an AI for it?


I found myself, just like with my previous Voxeland experiment, staring at a demo and with no idea how to turn it into a game.


ClickerForge

(No image for this one, sorry)


Around 2017, this time I decided to give up on Unity3D and decided to make a simple game in ReactJS with a UI similar to Trimps. I thought that if I eschewed the art, the sprites, the animations, the particles, the graphics, and generally everything but text and boxes -- surely I could make a simple game with buttons and numbers. I'd been employed as a professional software developer for 3 years at this point post-college and I had written video decoders, network tools, and even a SQL AST parser. There's no way I could mess this up.


My unique idea here was that unlike other clicker games where you directly earn the currency (e.g. click the cookie to get cookies, click the enemy to get gold) I would add a layer of indirection. Clicking levels up your hero, and your hero fights automatically with no input. It was a semi-active / semi-idle game.


So I added a button to represent your "forge", and clicking on this would level your hero. Then I used a simple "setTimeout" loop to have the hero attack an enemy, and tracked the enemy's health. But after getting this far, I had no idea where to go next! Should the enemies attack back? What happens if the hero dies? Idle games usually have exponential progression, but so far my progression was just linear - do you need a way to "upgrade" your forge? Should there be weapon and armor that are upgradeable? What about stronger enemies?


Even after stripping away all of the graphics and physics and leaving myself with nothing but the game logic, I realized that I didn't know the first thing about game design.


Getting Back on the Horse

Everything above is just the handful of game experiments that stick out in my memory. This is completely ignoring that one time I tested out a Python game engine only to realize the state of Python makes writing functional code almost untenable... or that one time I tried to make an Unreal game where you play as a fox only to realize all tutorials assume a bipedal character... or that time I tried to make a Unity3D game where you play as a slime, only to give up when I couldn't figure out how to pause the world physics when you were in a dialogue with the tutorial NPC...


When 2019 rolled around, my wife and I had our first son. At this point I'd been trying (and failing) to make a game for over 7 years. At this point, I was convinced that I would never make a game. However, my wife was persistent that I try again. This time, she was sure she had found a game making engine so simple even I couldn't mess it up! She told me to use RPG Maker MV.


So with a crying infant on my shoulder during many sleepless nights, I started playing around with the RPG Maker engine to try and learn my way around.


I quickly realized that RPG Maker was tailored for making a single type of game: a Final Fantasy VI clone. It lacked many features necessary to recreate other RPGs, and was very opinionated about class systems, skills, combat, movement, and interactions with the world. If you wanted to make a game that looked and played exactly like Final Fantasy VI, this engine would make it easy. If you wanted to make anything else, you'd be fighting with it.


This realization is what led me to my final decision:


Making a Final Fantasy VI Clone

I decided to lean in hard. If the engine was going to force me to make a classic popular JRPG, I would make the most classic, most popular, most JRPG game ever. This meant I couldn't just have a main character - I need a Heroic Mime. I couldn't just have enemies - I needed Goddamned Bats. I couldn't just have a team of recognizable and relatable characters - I needed a Five-Man Band.


So I started fleshing out my story - making sure to keep personal creativity to a minimum and steal as many ideas as possible from the common domain. I started out with The Hero's Journey, added a Twist Ending, made sure you got a chance to Kill the God, and just kept piling on from there. Whenever I had to ask myself "what should the character do next" or "where should the story go from here", I just turned the question into "what's the most expected and unoriginal way to progress from here?"


Before long I had the whole story fleshed out -- a full 18 chapters worth. So I started to build my game.


Over the first two months progress was steady but noticeable. I was able to build out the first three chapters of the game, add in some battles, add fun NPCs and jokes littered around the world to interact with,... when I got bored of working on the main story I jumped to the end of the game and added an Infinity+1 weapon. This is when I had to make the first big split in my development philosophy.


Up until the implementation of the Infinity+1 weapon, I had tried to stick entirely to RPG Maker MV default assets. Default maps, default character sprites, default audio, and no plugins to modify the behavior of the engine. This was not out of laziness, but as a design decision. Remember, whenever I asked myself "what should I do next", the answer was "the most uninspired thing possible". Just because I was relying on default assets didn't mean my game wasn't interesting and fun - but it did mean I had strict limits I had to work around. Like the famous example of Gadsby, a book written without the letter E, I was trying to build a game without having to learn anything new or pay artists for anything.


But in order to get my Infinity+1 weapon working the way I wanted, I had to cave. I had to write a plugin. So I dove into the internals of RPG Maker and learned how it worked. I read up on PixiJS and spent hours reviewing their source code to finally figure out exactly how to do what I wanted.


Development Slowed

After a few months of steady progress I had just completed chapter 4 when my son was old enough he was taking more time and effort each day to watch. I also had a new job that was taking more time and effort each day. So my RPG Maker dream began to fade away. Maybe once a month I found myself launching the editor, tweaking some parameters, fixing a small bug, or adding another collectible... but in general development came at a snail's pace.


I found myself slogging through chapter 5, and I couldn't quite get the puzzles to behave correctly. My scripts were overly complex and making sense of when one event was triggered over another, or how parallel scripts executed, or the state of the game at any time... it started to make progress nearly impossible. So the game fell to the wayside.


Revived Interest

Around 2022 my second son was born, and I remembered how I spent my nights after my first son. So I launched RPG Maker and decided to give it another swing.


At this point we had purchased a new M1 Macbook, and I was frustrated to find that RPG Maker MV didn't work on the M1. So I had to upgrade to MZ, and with it I got a whole new batch of default maps, sprites, animations, and sounds to play with. This also put my game in a weird limbo where half of my stuff was designed to work with MV so it only mostly worked. But I spent a couple of days cleaning up the edges and got my game building in the new engine.


Rejuvenated from my two-year hiatus, I looked at the Lost Woods puzzle that had been causing me so much grief before and was surprised to find that it was incredibly easy to get everything moving and behaving how I wanted. It was strange that I ever found this difficult. Maybe sleep deprivation was a problem at the time, or maybe I had simply learned a bit more in the last couple years. But I was excited by my fast progress and kept working.


I added a new character, a new dungeon, a boss battle, more little jokes, fleshed out more of the world, built new cutscenes... things were going well. I then started sending out copies of my game to a few friends to test.


It wasn't long before critical feedback came back. The early game took too long, the battles were repetitive, there wasn't clear direction on where to go,... I spent my time prioritizing this feedback over continuing to advance the plot. I added NPCs to prevent you from wandering out of the first town during the Hero Draft. I added starting gold and set your starting level to 4 instead of 1 so the early game goes by faster. I added new dialogue to point you towards the next quest objective.


Among the feedback I got were a ton of bugs. An inn that I copied and pasted from one town to another I hadn't updated the door, so it teleported you back to the early game when you exited. The weather effect after meeting the First Villain was never disabled between maps, causing it to rain indoors everywhere in the world. The logic for the Lost Woods puzzle got reset upon entering Einstein's Tower. The position of characters during key cutscenes could be randomly out of place...


This is when I decided to finally turn on my smart brain and figure out what I was doing wrong. Up until this point I had used an eclectic mix of Switches and Variables, never quite knowing when to favor one over the other, and I often reused variables for different purposes on different maps in an attempt to not explode the size of my state.


I settled on a new architecture where key storyline progression would be handled by Switches, while cutscenes would be controlled by Variables that were unique to that cutscene and never reused. I would also use Variables for puzzles and never reuse them. Never reusing a Variable did mean that I would end up having hundreds or even thousands of them, but this prevented weird bugs like entering Einstein's Tower resetting the Lost Woods puzzle - so it was well worth the cost of an extra kilobyte or two on the save file.


My new steam carried me up until around 2023 when my job began to creep into my time once more and I had to put down development around the beginning of chapter 8.


Revived Interest 2.0

Last year, in 2024, I decided to try and motivate myself to finally finish the game I would announce an official release date. I gave myself 1 year. If I couldn't get this game finished by then (six years after I had started development) then it was time to give up.


At this time I also taught myself how to use Adobe Premier and I created our game's first trailer.


I also started expanding my search for game feedback. Instead of asking two or three friends familiar with the JRPG genre, I sent it to children and adults alike who had never picked up a JRPG in their lives. This time the feedback was less focused on bugs, and more focused on how much early JRPGs sucked in general:


  • You can get attacked anywhere on the world map - that's not fair!

  • There's no quest markers or quest log so it's easy to forget what you're doing

  • It's unclear what benefits you gain from leveling up

  • You can't really tell how good a given weapon or armor is

  • All weapons and spells behave very similarly. They just hit once and deal damage

  • Poison does way too much damage!


Once again, I prioritized addressing this feedback. What's the point of making a game if it isn't fun to play? For some of these changes I found I was able to tweak the parameters, add Events, or enable features of the engine to address concerns. However there's no quest marker or quest log in RPG Maker, and adding one with a hand-crafted plugin is non-trivial.


This is when I bit a second bullet. Back in 2020 I had decided that plugins were acceptable and written a few by hand. Now I decided it was time to lean on Visustella to add a plethora of new functionality to my game. Visustella offers paid plugins to do everything from add cooking systems to new movement options to new options menus. I paid for the full Visustella suite so I had access to everything and started carefully selecting what to add.


I frustratingly found that out of the box Visustella enables a lot of features of their plugins that change the look and feel of the game dramatically. It no longer played like an RPG Maker game after just enabling something like Battle Core. So I spent a lot of time figuring out how to disable the new Visustella features so I could only turn on what I needed when I was ready for it.


Having broken the seal on spending money, I went ahead and bought several icon and sound packs, as well. I might as well make the game a bit prettier while I was at it.


Finally, I started to look for a good voice acting plugin. This is where I found myself running into a wall. Visustella provided a plugin for full voice acting, or a plugin to add sound effects as text appears, but nothing that mimics the partial voice acting at the start of dialogue like you would hear in the Persona series or other popular JRPGs. So I had to write my own for this purpose.


Of course having a voice acting plugin meant needing voice acting, so now I was pulling out my wallet once more to pay friends and family for their voices.


The game was starting to look incredibly polished... except I hadn't added any new chapters to the story!


The Current State

In order to understand the state of Trope Tales, it helps to understand the 5-pass system I devised for measuring completion:


  1. The first pass is just building the story, without any game around it. This means adding the maps, cutscenes, and dialogue so that a player can progress through the story from beginning to end

  2. The second pass is adding puzzles, key items, collectibles, and quests so that there's actually a "game" to be played. This includes boss battles and new party members

  3. The third pass is adding random encounters, extra items scattered around the map, NPC shops, and all of the other requirements to be a "classic JRPG"

  4. The fourth pass is adding side quests, secrets, and "extras" so that the game can provide more interest on additional play throughs and there's justification for reading a walkthrough

  5. The fifth pass is bugfixes, polish, tweaking dialogue, and making any minor adjustments to make the game look "cleaner"


At present here's the breakdown for each chapter:


  • Chapters 1 - 4: All 5 phases complete. I may come back and make minor tweaks, but I feel there's a good game here

  • Chapters 5 - 6: First 3 phases complete. There's a game to be played, but it doesn't feel quite as complete

  • Chapters 6 - 9: First 2 phases complete. There are no random encounters or NPC shops so you mostly just walk through the storyline and get a feel for what I plan to do in the future

  • Chapter 10: First 1 phase complete. I have the main story and maps, but no "game" yet.

  • Chapters 11 - 18: Not started yet


As you can see, the game isn't quite ready yet. But I promised a summer 2025 release date, and by God I plan on giving something in summer 2025.


So here's the new plan

Summer 2025 I will release a free demo of Trope Tales with chapters 1 - 6. This is the first 1/3 of the final product and will hopefully whet some appetites for this game I've spent 6 years "working" on.


Before release I will spend my time over the next few months completing all 5 development phases for these chapters so that they are well-polished, balanced, and have plenty of interesting things to discover.


I will then go back into development mode and try to slowly punch out the remaining chapters one at a time.


As each chapter is complete my plan is to update the demo with the new content. So when chapter 7 releases, the free demo will be updated with chapter 7. When chapter 8 releases, the free demo will be updated with chapter 8. My hope is that trickling out the chapters like this will keep my game in people's minds and keep word of mouth spreading to keep me motivated as I continue to build out my game.


When the final chapter is ready, the free demo will end and the game will become a $5 purchase on Steam. This means if you enjoyed the game so far and want to see the epic conclusion, you'll have to pay for it.


Over the coming weeks I will also try to make regular blog posts to keep people informed of the game's status, and also as fun educational posts about issues I ran into with RPG Maker and how I worked around them. I also plan to release all of my plugins that I developed to the open source for anyone who wants a similar effect in their games!

 
 
 

Comments


bottom of page