Topic category: General discussion
Today I found this on a forum >:(
Why are there so many haters for mcreator!!!!
Okay, so if you're reading this, you've either decided to use MCreator, support it or are uneducated as to why MCreator sucks. Or are just curious as to what I wrote for it. Either way. So, why did I write an entire text file? Because I cannot be bothered writing the reasons why you should not use MCreator over and over. This also goes for other generators that make modding as simple as a "click a button" process.
Just a rundown of what I'm going to be talking about (partly for me writing this):
- Limitations on what you can do
- Over-simplifies code
- Allows for crappy, generic mods
- Makes developers think modding is a simple process
- Very hard to catch and fix errors
- Have to bide by the program's ToS
- What / who is MCreator designed for?
- Excuses that do not work
LIMITATIONS ON WHAT YOU CAN DO
As a program that makes things simpler, MCreator naturally has limitations. What MCreator is designed to do is abstract the process of developing mods to allow anyone to do it with little to no previous knowledge of programming. The function of abstraction can be done in a way which still separates those who legitimately cannot learn programming from those who are lazy (see WHAT / WHO IS MCREATOR DESIGNED FOR for what MCreator is ACTUALLY meant to be used for), and MCreator does not do abstraction in this way. See OVER-SIMPLIFIES CODE for what MCreator does wrong.
Abstraction is used with MCreator to make things simpler for you to develop mods, however what it also does is heavily limits you on what you can do. When using MCreator, the only things MCreator can do are the things that have buttons and text fields, you cannot add features that MCreator does not support, and God forbid if you try to code them yourselves outside of MCreator (the code is terribad, horrific, stupidly bad). Writing mods yourself gives you complete customisability of your mod, the only limits are your imagination and knowledge about both Java and modding.
The "code" that MCreator allows you to "write" for your mods is honestly way too simplified. Due to this, as explored in LIMITATIONS ON WHAT YOU CAN DO, things are way too limited. There's no customisability of code, no way to make code more efficient (talked about in CLOSED-SYSTEM), no way to add functionality into your mod that MCreator doesn't allow for. Because of this over-simplification, a couple things also make MCreator bad.
Firstly, it gives developers the wrong impression. When a developer moves from a simplified language (calling MCreator a "language") to a more complicated language, the developer may feel overwhelmed by the difference between the two and may be more inclined to just give up and return back to the simpler language (or just give up completely). Obviously we do not want this.
Secondly, if the language / program simplifies it too much, it actually makes the language / program pointless in the grand scheme of things. Because it simplifies things down to just the click of a button, it pretty much kills the skill and knowledge requirement of modding which means it teaches you nothing, at all. Due to this, it makes MCreator completely useless if you decide to learn programming and write your own mod. The only thing it teaches you is what is possible with modding, which you already know anyways by playing with mods, and it doesn't even show everything! It's useless for programming.
ALLOWS FOR CRAPPY, GENERIC MODS
What happens if you give people who have no creativity the power to create anything? You get hundreds of generic mods that all do virtually the same crappy thing, either that or rip-offs of other more original mods. Neither is good, and neither is what the community wants. PlanetMinecraft is flooded with generic mods daily, the same "obsidian tools", "emerald tools", "plenty-o-ore", pointless, generic, crappy, low-quality mods are uploaded over and over again.
Because of the fact that MCreator allows for anyone to make mods, it really hurts the community by allowing for crappy mods. Imagine what it'd be like if on a single page of the forums, you saw a single decent, high-quality, original mod, and the rest are all crappy generic tool mods. Need I say more?
MAKES DEVELOPERS THINK MODDING IS A SIMPLE PROCESS
While programming is not hard at all (it takes time to learn, but once the ball starts rolling it's really easy to keep it going), people still think that MCreator is better than learning Java and writing the mods yourself. Now, I have already gone over this, but I'll focus more so on the impact that this has on the community.
Imagine if you're a regular forum user that replies to posts and helps people out, and you see someone struggle to do something in MCreator. You politely respond saying it's not possible with MCreator and you suggest they either forget about said feature, or move on, learn Java and drop MCreator. You get a response saying "I can't learn how to code, I'm 13" or something similar. Slightly annoyed, you reply saying that that is not a valid excuse and many other programmers on the forums started at that age. Then, you get the response saying "But it'll take me years to learn". With the levels of annoyance heightening, you reply saying that you can learn the basics in a couple weeks, learn the more intermediate stuff in a couple more weeks, and have enough knowledge to start writing simple mods and expand your knowledge from there. Then, you get the response saying "I tried but it's too hard, pls tell me how to do this" or they flat up ask you for the code. Pretty annoyed, you start to show signs of slight anger and reply saying that you do not give code out willy-nilly as it serves no purpose copy-pasting and they'll learn absolutely nothing. Once ALL of that is over, you get the reply saying "I'll just continue using MCreator". The water boils over and you type out a couple paragraphs explaining why MCreator is a bad choice, with more anger than the first option. This is the worst case scenario, in most cases by the time they pull the "I'm 13" card, they get the message and move on to learning Java.
If it isn't that, it's the person learns Java but just jumped head-first into the pond without learning how to swim, and is now approximately yelling for help because they don't know what a NullPointerException is and how to fix it, and/or request you to literally spoon-feed code to them or hold their hand the entire trip. Me, personally, I'm fine with helping them out along the way, but they have to realise that I'm not going to walk them through EVERY step. And God help them if they ask me to spoon-feed them code...
MCreator is what I personally refer to as a "closed system", which is basically a system (or program, "box", or something similar) that is completely locked shut, as a user you do not know how it works and what the underlying mechanics that actually make it work are and how they function. Due to this, you're bound to what MCreator gives out, which honestly is a steaming pile of absolute crap (at least it was way back when I saw some code generated by it... dear god the memory... *shudder*).
A couple of undesirable outcomes originate from the closed-system style of MCreator, firstly you're stuck with the code it generates for you. You may not like it, it may be stupidly inefficient (not surprised if it is inefficient), it may not be the best code for your exact desires, but you cannot change it. There's 0 customisability in the code it generates, so really it is MCreator's mod, not yours.
Secondly, you don't know what MCreator might slip into your code. For all you know (and this is unlikely, but is just generally a warning about programs like MCreator), MCreator may slip in a couple lines of code that allows THE PROGRAMS DEVELOPERS, not you, to shut off any client that's running your mod. While this is unlikely, what may be more likely is MCreator may be using the completely incorrect code (I have seen errors that have originated from MCreator-generated code).
VERY HARD TO CATCH AND FIX ERRORS
Because of the fact that it is a closed-system, any errors that occur within your mod are stupidly hard to track. Most of the time you'll have to take the issue to the developer(s) of MCreator and let them fix it, as you cannot easily fix it on your end (fixing it on your end would result in decompilation which in itself is a challenge). Even the regulars on the forums cannot tell exactly what's causing the problems (we can of course tell you how it happened so-much-so as to what triggered it, say for instance passing a negative value to a method expecting a positive value, but we cannot tell you HOW it happened as to how the mod itself messed up and caused it to occur, nor why it happened) without code, which as I said is difficult to get.
HAVE TO BIDE BY THE PROGRAM'S TOS
This is a smaller issue, but when using MCreator, you technically have to bide by their ToS, which means they have the greater authority over your mod. If their ToS changes, you have to change your mod to follow suit. Just the way the game plays out.
So, now that I've talked about issues with MCreator, let's go into some things specifically with the people using it.
WHAT / WHO IS MCREATOR DESIGNED FOR?
Any program that abstracts programming is designed for people who ACTUALLY have issues learning programming. This means people with medically-diagnosed problems, people who are of a young age (people in high school / middle school / of at least 12 years of age do not count), or people who legitimately cannot learn how to program. Anyone who doesn't fit this criteria who use MCreator or programs similar to it (even outside of modding) are either JUST learning, or are outright lazy. Now, just messing around making blocks which do nothing is IMO fine to be done with MCreator, the moment you want to do something more advanced, you need to move away from MCreator, ASAP. If you fall in the lazy department, move yourself out of the MCreator community and learn how to code Java. If you want to get into a computer science job, why not use your PROPERLY DEVELOPED mod as an example piece of work? If you don't want to, hey, you now have a new skill that can be useful. No loss except for a bit of time to learn it.
EXCUSES THAT DO NOT WORK
I'm not going to explain anything here, this is just a list of excuses that flat up will not work, with a short reasoning as to why they do not work.
"I'm too young! I'm <insert age above 11>!": Out of all respect, you're one lazy person. I, and many other people, learned Java at at least 12 years of age. I learned it when I was 12 and self-taught myself from then on.
"Learning it will take too long!": No, it won't. Learning the simple syntax of Java takes a matter of weeks, in that time you can write a simple calculator using an input Scanner. Going further on to learning the object-oriented side of Java will take a few more weeks and is the least you need to know to develop mods.
"It's too hard!": I will give you this, as it looks hard when you have no idea about Java. But I will not accept this as an excuse to not learn it. It is no where near hard, want a hard language? Assembly, C, any older, lower-level languages. They're hard, and complicated.
"I don't have enough time!": This is really, really dependent on your schedule. An hour each day for a couple of weeks will allow you to learn the syntax of Java, which is enough to start experimenting writing simple little programs to solidify that knowledge into your memory.
With all that said, I hope whoever that is reading this who uses MCreator is now feeling like they should move on, bite the bullet and learn Java. That's my goal, to make you want to drop MCreator and learn Java, and to make you realise why MCreator sucks. For those who do not use MCreator, I hope you found this a good resource.