Warning, this post is very, very long and ranty, and it has not been spellchecked.
I know the title sounds clickbaity but it's the best I could think of.
I am going to use a lot of screenshots from my game “Foundational Agora Premises: Hardware And Resource Dynamics”, to illustrate my points.
Before anything, I want to make something clear:
Whoever plays your game will not care if said game is built in RPGMaker, Godot, Gamemaker, Unity, Unreal, WolfRPGMaker, RPGInABox, or if you coded it from scratch in ASM.
Gamers are not developers, nor are they coders. It is perfectly fine to mess-around with an engine if you just want to have fun, make a game for yourself, your friends or just make a tech demo, but I am writing this from the POV of someone that wants to make a cool game that plays smoothly and can actually be made without having to fight the engine itself. I would advice anyone reading this to also give a read to LogLog's “Leaving Rust gamedev after 3 years”.
Now RPGMaker is advertised as a no-code, beginner-friendly engine. And for the most part this is true, you can make a very basic JRPG in RPGMaker with no experience at all. I myself made a terrible RPGMaker game when I was 13 years old. If you need to squish more juice out of the engine, you can always download plugins to add more capabilities and custom content.
But it's not all sunshine and rainbows, as a matter of fact it's not at all like that. RPGMaker has a lot of limitations out of the box, for example the fact that the engine can only work with spritesheets formatted in a certain way, the fact that you have only a few layers to work with (parallax, background tiles, tiles A, B and C) and the fact that the code blocks you work with are simply terrible and teach you horrible programming practices.
Most of these shortcomings can be addressed by installing plugins, for example a plugin to allow you to use .png files instead of sprite-sheets, a plugin to add more layers, a plugin to allow you to play .gif files in your game, etc. But plugins have problems of their own, some plugins are paid, others are incompatible with certain plugins you want to use, and other plugins simply do not exist at all so to add that functionality to your game you will either need to code it yourself or commission someone to do it. Or find a plugin that does what you want 'close enough' and settle-in for that.
Besides, I know a lot of people are passionate about ARPG in RPGMaker but let's face it, 'Legend of mana' released in 199X plays a lot better than the best ARPG plugin written in 202X, the engine is simply not meant to handle this kind of work, and it shows whenever you try to push it too far from it's intended purpose. To put it simply, just because you can make brownies in a mug in your microwave does not mean it's going to taste the same as brownies made the traditional way in the oven.
Large 'complex' projects also suffer from performance problems, I do not know the details of why this happens but I have seen it enough times for it to become a noticeable problem with games with a lot of complex mechanics, really big maps or just a lot of things going-on.
Now, about the terrible code-blocks that RPGMaker offers:
They surely make everything look very straightforward. Let's think of the 'conditional branch' block, for example, it's basically an 'if'. The code in RPGMaker would look something like this for a simple operation:
If your actor is dead, we game over. Simple, right?
Sure is, but what if we want to add another condition? For example, maybe I want to also check if the enemy's HP is 0 so I can play a sound or something. What would that look like?
Itty bit harder to follow, but not terrible, right? Seems like it in the beginning, but what if you want to check for 4 or 5 conditions? This is normal depending on what you are doing... Your code will end-up looking like this:
Now, this is just a big if, else; if... chain. It takes about 5 minutes to write this thing depending on how far apart the variables are because you have to navigate a few menus, but the problem here is that RPGMaker conditionals do not offer a 'If, else if' by default, nor a switch statement. You have to chain together a lot of conditional branchs to emulate what a simple switch statement would do in any normal language.
Here's what the same code would look like if I used JavaScript instead of events:
Oh wow, with the power of the switch statement, we transformed 5 minutes of navigating menus and searching through variables to make a big chain of else if conditions into... A very short 30 seconds top condition check...
But the gist here is that not only do I need to actually know javascript to write this code in the no-code engine, this code as it is would not work out of the box. I know people love to claim 'you can always use JS if you need to', but RPGMaker makes even this a daunting task.
For something like this to work, instead of switches, difficulty would need to be a variable, and we would also need to use the script box to set the value of 'difficulty' in RPGMaker so even then we will be writing javascript... For this to actually work first you'd have to set the code like this in the game:
Here we set the value of the 'difficulty' variable to hard, because we are not using switches anymore if we are moving to javascript. Now the actual javascript code would look like this, I'm adding variables to make it more readable since now we have to access the variables from the game itself:
Now this looks more in-line to what you can expect from modifying variables in RPGmaker through a script call. Notice that in the end of the switch statement I have to update the actual variable, we only retrieved the value at the start of the function but did not actually directly modify it so we have to assign it at the end.
Here we will run into another tiny problem, the script call box itself, what happens if I try to add my script to RPGMaker?
Hmmmm that does not seem right... What's happening here?Well, you see, for whatever unholy reason the script call box in RPGMaker extends infinitely to the right side, but it's only about 12 lines height. Meaning that any complex scripting you want to make in-game (without needing to mess with plugin writing) will end-up looking like this:
Now that's a tad harder to read innit? It's going to be hell to maintain too. But at least you can always copy-paste it. I had to manually remove spaces here to fit it in the script box, but what about a really big script? Removing spaces manually would be a daunting task, so I would use a tool like JS.minify to do it for me. Take a look at this script for example:
Can you tell what this thing is doing? No?
Well the name of the event is 'Restore power variables' so I guess it does something like restore the power variables? I did not leave a comment here and that's a bad practice on my side. However just by looking at this code you can tell it is impossible to rewrite or extend, if I ever need to add functionality to this I'd have to run the code through a LLM to un-minify it and then I'd be able to edit it.
Of course you could instead just use a service that removes white space from Javascript to make it all a big line, I'm not sure if a service like that exists, but it would make the whole process a little bit simpler if it does... Or you could just write a plugin...Right?
Wait wasn't this a no-code engine...Oh well let's ignore that part.
Now, plugins. Good ol' plugins. I once wrote a whole self-driving car neural network in vanilla JavaScript following a YouTube tutorial, I'll admit JavaScript is not my forte, I like C/C++ best but let me tell you, even if you do know some JavaScript You don't know RPGMaker core.
At first this may not seem like a problem at all, after all you just want to create functions and set variables, right?
Here's a tiny plugin I wrote to convert tenths of a second to RPGMaker frames.
Now it's all standard JavaScript, but you see that window.timestampToFrames = timestampToFrames ? That's what actually lets you call the function from within the game itself, and it's part of RPGMaker. Without exposing your function like this you can only really run the plugin as soon as the game starts.
This is not a big issue when it comes to simple plugins like this one, with a lot of hard-coded values, but if you don't know your way around RPGMakers' core, and how to work with plugin parameters, you will have a bad time writing complex plugins or actually extending the engine at all. I ran into this issue after hitting my head on my keyboard for two hours in my 'last fireplace' game, I made a cute little plugin to make snow fall on the screen but for the life of me I could not figure out how to A: Make the snow fall in the background and not on top of everything else, and B: How to actually stop the snow from falling and delete every snowflake after I added them via scene_manager (My despawn function simply did not seem to work as expected).
This is, of course, a me issue here. I simply do not know enough about RPGMakers' core to extend the engine to allow me to do this sort of thing properly...
Now, darling, please sit down for a second and tell me, when was the last time you have heard a Godot developer tell you 'Damn I don't know enough C++ to extend Godot's core for this feature to work in my game'. Do you see my point?
Why am I trying to extend the game engine in order to make a game? It's a game ENGINE, it's supposed to make the game-making process easier, yet the amount of times I find myself coding everything from scratch is astounding. Simple quality of life things such as being able to play an animation through a sequence of PNGs numbered from 1 to 12 becomes an hour-long plugin development and debugging campaign, instead of the 5-minute experience that is setting-up an animation in other engines, such as Godot (I'm using Godot as an example because it's a simple engine and GDScript is truly a simple language).
Please if you have ever used RPGMaker in the past and DONT TRUST MY POST, just follow one simple Godot tutorial, I know you're going to feel annoyed after reading this post and tell me 'godot sux!!!! I don't want to h4xx0r code!!!' but please, please please just try to follow-through, I promise the code you will actually write is very, very basic and not at all hard to understand, just please try-out a real game engine to SEE by yourself what game-making should look like. I can recommend this tutorial here, it's what made me fall in love with Godot's simplicity: https://youtu.be/LOhfqjmasi0
In about an hour of work you can get yourself a working platformer, I did it myself with 0 knowledge of Godot and indeed I got myself a working platformer in about 2 hours (I took pauses).
Now If I made a similar game in RPGMaker (which I did), how long do you think it may take me?
Answer is, one day and a half (about 24 hours of work) to make this game: https://nxonk.itch.io/the-last-fireplace
And that is with 11 years of experience in this engine under my belt, and knowledge of javascript, C, C++, programming logic and a lot of functions and code I have written for old projects that never saw the light of day
And the end result is...Eh, honestly. I polished it a bit but there are many things that the engine does not like, for example I could not really make use of a pixel movement plugin because it messed-up a lot of the events in the game, so I had to rely on grid-based movement as that is the way the engine likes it (and there is no easy way to modify this).
Please remember that people that will actually PLAY the game don't really care which engine I used to make it, they only care about the game itself. Sure I made a game, I made it fast and slapped-together a very traumatic story about a past life experience of mine, but is the gameplay actually good?
Compared to my 1-hour Godot platformer, no, it sucks and it sucks bad. Maybe one or two RPGMaker devs will find the project cool cause I'm getting the engine to do something it's not supposed to do without 3000 lines of plugin code, but most people will just ignore the game altogether. And I don't blame them, why would anyone play this when they could be playing some other game with better gameplay or innovation?
Well is that all I have to say about RPGMaker?
No, not at all, I have even more bones to pick with this engine, the event system:
Now you may think that is a lot of events...Just wait till you see how many COMMON events I got going-on
removing unused common events (I have a template project with a few useful events I almost always use set-up) and white-space I use for organization, this game is using about 100 common-events to perform some basic tasks. Since some events simply cannot be a common event they are left on the map itself.
Now just by looking at it, you can get an idea of what the common events do, because they have actual names, but what about the map events? Just by glancing at it, it's impossible to tell what they do at all, maybe I know what they do today but will I know in 4 or 5 months?
Of course you can name events, and if you click on said event on the map you can see the event's name in the bottom-right corner:
Here's my event named 'HAHA MY EVENT' I just named it that as an example. Even then to figure out what each of these events do, I would have to click every single one of them and hope I named them all and that the name clearly states what the event is supposed to do.
Now I know it may seem like this map is cluttered with a lot of unnecessary events... Believe me, it's not. Every single event in that map is doing something important for the game, from the first to the last and I am willing to open source the project files just to prove my point. Download here
And as a last tiny bone to pick with the engine, there is no way to preview your parallax mapping as you edit the game, you have to actually launch it to figure out what it looks like. Here's what my game looks like when I launch it:
Not the biggest bone to pick but it is still annoying that I can't tell what's where unless I actually run the game (Takes about 10 seconds but you'll find yourself pressing that run button a lot of times as you playtest).
Speaking of which, you see that little computer screen In the map? I had to really big brain myself to get that simple thing working as intended, it may not seem like that big of a detail but that thing alone took about half an hour of brainstorming. The mechanic is simple, whenever an agent guy appears on the screen and you click them, you 'capture' them and their little icon is shown on the screen:
It looks simple, right?
It is, in theory. In practice it's a nightmare to implement, like every other mechanic in this game. The mouse clicks themselves have a problem if you play it for long enough, and it is a problem with RPGMaker itself:
When an event is moving, it will only execute code within said event if you activate it AFTER it has stopped moving. You can NOT activate events while they move, if you want to do that, you have to write a plugin to overwrite this behavior or find a workaround.
This may not seem like a big deal but if you try and play my game for a while you will notice that it feels as if your mouse is not working properly because sometimes a click will simply not register. This is one of the obscure engine's limitations when it comes to games that are not something that looks like final fantasy 1.
As for some closing thoughts on all of this, if you are a beginner, don't waste your time using RPGMaker. It is painful to say for me because I wasted 11 years in this engine, but all the 'experience' you will gain by using this engine is worthless. The engine will force you into writing bad code, learn bad coding practices and over-rely on third-party plugins.
If you do happen to learn javascript, you will barely learn anything that can be translated to another engine, so you will have to start from scratch on a lot of things such as movement and physics.
The games you make with RPGMaker will look terrible at worst and unpolished at best. And if you do manage to squish the engine into making a game that's not samey and it's actually interesting, people can always just say 'it's an artsy fartsy game'. Plus developing in RPGMaker somehow makes the whole game-making process take twice as long for whatever reason.
EVEN if you want to make an old-style RPG game, you will just make a terrible game!
Please please please actually look-up what 199X RPG games actually played like.
Here's a tiny list of 199X games THAT DO NOT LOOK LIKE FINAL FANTASY:
I know a lot of people think of final-fantasy and final fantasy-like games when they think 'retro RPG' but GOD PLEASE ACTUALLY PLAY OLD GAMES, not every RPG out there was a gird-based final fantasy copy-paste! A ton of RPGs from the time had weird and interesting mechanics, 3d, 2d, grid and pixel movement, VN-style portraits and not, there was a lot of variety besides final fantasy-like games!
The argument that RPGMaker is an engine to make 'J-rpgs' is in itself flawed! RPGMaker only ever shines when it comes to make games that look like a cheap copy of a very old final fantasy game. And final fantasy itself has moved-on from that format for a few decades now. The engine is not even capable of doing something as basic as a retro dungeon crawler without plugins, have you seen what a retro dungeon crawler looks like?
Just take a look at Shin Megami Tensei 1 (1992), do you think vanilla RPGMaker can build something similar?
Please remember that RPGMakerMV was released just a few years ago and that it actually costs money to use, and it cannot even realistically replicate a game that's over 32 years old out of the box!
If you really REALLY want to use RPGMaker to make games, please do, but please, please at least once in your life try using a real game-making engine. You can pick any engine, Unity, unreal, godot even Scratch if you really want to, but please broaden your horizons.
RPGMaker is a terrible engine destined to make terrible games, anything but a VN or a terrible game will be VERY hard to make and take at the very least twice as long as it would take in a normal engine. You are only hurting yourself by using RPGMaker and I make this post because a lot of people don't realize this, using this engine is actually bad for you, and not enough people mention it. As a matter of fact, the amount of people that actively defend this terrible engine is astounding.
EVEN if you want to just make games 'for fun', please TRY A REAL ENGINE, you will have WAY more freedom and even if the learning process takes some time, the end result will be WAY better AND EASIER TO MAKE than anything you will ever produce in RPGMaker.
Do you ever wonder why every time people mention how 'great' RPGMaker is, they mention a very, very few games?
IB, Toiler wonderland, OFF, Hylics, Fear and hunger, Mad father, Witch house, Killer bear, Corpse party...
How long is the list? 50, maybe 100 games? RPGMaker has been out for about 24 years now, that's 24 years of people from all kinds of backgrounds making games, and in all of those 24 years we only got about 100 'awesome' games?
Please, if you want to make a game, if you really really want to make a game and you want your game to be pretty, and you want people to like your game and maybe even form a fan-base around it, please use a real engine. I know we all want to make games because we all want to make something fun, or tell a story, or build an experience, or maybe we just want to learn and have fun making games. Not everyone needs to learn game design, and not every game must be different from final fantasy 1, but please, even if all you want to do is an 1v1 replica of final fantasy 1, or a very simple visual novel, try another engine. Do not fall into the RPGMaker hole, it will only gobble-up your time giving back nothing in return.
In short, RpgMaker is the self-harm of game-making engines, in the long run it is only bad for you, and people that actually talk about this get shoved under the rug.
Here's a devlog that more or less helped me finally take the jump, it's another dev's experience with RPGMaker development and it's totally worth a read: https://yobobgames.com/harvest-island-rpg-maker/
Thanks for reading my post, if I can convince even a single person to try a better engine, that's all that counts for me. I really hope everyone succeeds in their game-making projects, that is the reason why I made this post. After about 11 years I can surely say this engine is never worth it.
PS: I forgot to mention it but some version of RPGMaker are literally just a cash grab, for example RPGMaker MZ and RPGMaker Unite (Unite barely works, MZ is just RPGMaker MV with a few QoL improvements).
Originally posted on my tumblr blog, this post has not been spellchecked, sorry for any and all grammar mistakes.