Percentage of coders in the RPG Maker community

Discussion in 'General Discussion' started by MushroomCake28, Feb 3, 2019.

  1. Poryg

    Poryg Dark Lord of the Castle of Javascreeps Veteran

    Messages:
    4,014
    Likes Received:
    10,159
    Location:
    Czech Republic
    First Language:
    Czech
    Primarily Uses:
    RMMV
    In all honesty, it's not just coders that are unappreciated. Graphics makers are stupid, because the art style of their characters is incompatible with X. Plugin makers suck, because even though their plugins do what they want them to do, they're not compatible with X,Y and Z. Kadokawa/Degica is terrible, because the amount of resources they provided is too low. The list goes on forever, everything sucks, because it doesn't work the way X wants.

    Plugin makers receive the greatest backlash though. And it's kind of logical...
    Because an incompatible character is incompatible character. It can be redrawn or slightly altered... Or you can just use it as a placeholder for the time being.
    A plugin can and often even will break your game. So it's something you often have to solve now.
     
    #21
  2. MushroomCake28

    MushroomCake28 KAMO Studio Veteran

    Messages:
    1,795
    Likes Received:
    3,222
    Location:
    Montreal, Canada
    First Language:
    English
    Primarily Uses:
    RMMV
    @Poryg I wouldn't go as far as to say that's it's the creators' fault for not having enough diversity in resources. We just make some stuff, and if you want to use it then do it. When I make public plugins, I don't expect it to be working and perfect for every game. But I do get your point though.

    @bgillisp I think you're on to something when saying you either: do it yourself, pay someone, find an already available resource, or do without it. However, I don't think name recognition is a big part of the equation on this forum: I personally try to help everyone, including all newcomers. On top of that, veterans here (talking about the people that are well known here, not the 30 post thing lol) rarely ask for help, they are generally the ones to provide help. It does happen that we ask for help sometimes, but it's generally for something extremely specific.

    @Sharm I do agree that coders are underappreciated here. The main reason why I stopped making free public plugins is because of all the additional requests I got and all the support it needed (people want plugins to be all be compatible with every plugins). On top of that, many errors people were getting was because they didn't read the instructions. As for the making requests here, I think it's more a matter of asking nicely for something that is reasonable rather than name recognition (not denying that it may play a role).
     
    #22
  3. Poryg

    Poryg Dark Lord of the Castle of Javascreeps Veteran

    Messages:
    4,014
    Likes Received:
    10,159
    Location:
    Czech Republic
    First Language:
    Czech
    Primarily Uses:
    RMMV
    And I hoped that X,Y and Z makes it apparent that I'm not stating my point of view, but citing what I've already encountered. :D
     
    #23
  4. MushroomCake28

    MushroomCake28 KAMO Studio Veteran

    Messages:
    1,795
    Likes Received:
    3,222
    Location:
    Montreal, Canada
    First Language:
    English
    Primarily Uses:
    RMMV
    @Poryg Lol sorry, did not get it :D
     
    #24
  5. Aloe Guvner

    Aloe Guvner Walrus Veteran

    Messages:
    1,626
    Likes Received:
    1,053
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMMV
    Let's keep in mind too that the typical consumer of a plugin probably:
    • Installs the plugin correctly
    • Reads the instructions
    • Does basic troubleshooting/research before reporting issues
    These are the people that you will never hear from as they fix/find the issues themselves. As plugin creators we are subject to selection bias (I think at least, unless there's a better term), to think the other set of people are more common because they are more vocal.

    It's impossible to know the true percent, but I choose to believe that the large majority of plugin consumers do the proper work, don't request ridiculous features, properly troubleshoot, etc.
     
    #25
    Shaz, Sharm, Zevia and 2 others like this.
  6. MushroomCake28

    MushroomCake28 KAMO Studio Veteran

    Messages:
    1,795
    Likes Received:
    3,222
    Location:
    Montreal, Canada
    First Language:
    English
    Primarily Uses:
    RMMV
    #26
  7. Astfgl66

    Astfgl66 Veteran Veteran

    Messages:
    671
    Likes Received:
    517
    First Language:
    French
    A lot of it in my opinion stems from the fact that most people act like coding is so alien it might as well be magic.
    They then proceed to immediately ask for something complicated and expect a one line solution (or a one plugin solution) that does everything as they envisionned. If you want to do something complex you have to get your hands dirty, that's just how things works.

    In my opinion RPGMaker itself does a good job at easing you into programming, because, if you can event well, you can translate that into programming very easily: you've gotten really good at algorithmic reasoning and that's the basics for most things. Then it's just fiddling around in the console for a while until you achieve a decent result.

    I'm mostly hopeful and try not to be jaded much, but then you receive a bug report of people who haven't even bothered to open the console and obviously haven't read the instructions. I mean last time it literally was, "your plugin needing to be named correctly is BS!, no other plugin requires that!", I proceed to point out the obvious, someone backs me up and he still doesn't believe me. Cut to a few weeks later: "okay so I've made a blank slate to try to work with your plugin, here's my list of plugins, is everything all right?". Examine 3 pages long plugin list only to find out my plugins are once again not correctly named. Yes that was the same user. I noped out shortly after, there's no salvaging things like that.
    Sorry for that rant, this topic made me frustrated.

    Anyway, I agree with Aloe Guvner that it's probably because of a huge selection biais that most coders feel like this. I guess the important message is that you should reach out to content creators that you like and thank them. Tell them when you use their work and make awesome things with it. It will make their day.
     
    #27
    Shaz and MushroomCake28 like this.
  8. ChampX

    ChampX Veteran Veteran

    Messages:
    185
    Likes Received:
    117
    First Language:
    English
    As someone who writes code for a living, I found their styles of JS much more intuitive to picking up how the MV framework functions and how JS works. I'm way more familiar with languages like C++ and C# (at least a decade now), so the JS specific quirks felt pretty foreign to me and I had to do lots of googling just for pretty basic things like prototypes. If the JS was more proper style, I would have had a harder time adjusting to it. Of course us coders can generally adapt to any language with enough practice though!

    As for how many coders exist here? I would imagine a small percentage, perhaps the 10% everyone keeps mentioning. As someone mentioned earlier, RM products essentially have low barriers to entry allowing novices to get a head start in creating 2D RPGs with what would be otherwise quite the complex coding task in other engines. This is ok though as anyone with a little bit of game development experience knows that technical skill doesn't create good games but instead design skill and RM products allow people to exercise their design skills more easily.

    As for lack of coding resources compared to number of users? Besides what is also mentioned by Poryg, I also think another part of it is a lot of coders also don't want to do intensive programming tasks for free when their priorities will more than likely be life obligations and their own project, especially the latter. And then the people who do produce more complex plugins and systems for the community to use for free people just take it for granted and give the developers a ton of flack. A lot of users haven't learned yet that free resources like code should never be seen as a priority to the original developers and that they are under no obligation to provide any further support. If a RM update happens and plugin breaks, the developer not providing an update is just something you have to learn to expect from something you are being provided for free and if they do provide support, then they are really going out of their way. Yanfly for example is really committed to providing a lot of features to the community at no cost whatsoever, and he should be commended for it, but most developers would rather invest their time and talents elsewhere, either on their own projects or on something that pays them their worth.
     
    #28
  9. Zevia

    Zevia Veteran Veteran

    Messages:
    622
    Likes Received:
    329
    First Language:
    English
    Primarily Uses:
    RMMV
    Well, that's what I was getting at, though. If you're used to working with primarily JavaScript, writing in Node frameworks and building front-ends out of vanilla JS, jQuery (which, if you are... Why?), Angular, React, Vue, etc., then having a constructor function that returns "This is a static class" is weird.
    Code:
    public class BattleManager {
      public static void processTurn() {
        // code
      }
    }
    
    That looks a lot more familiar to someone who's written Ruby or Java than it does to someone who writes JavaScript. There's no such thing as static in JS - as Aloe Guvner mentioned, proper JavaScript architecture would've warranted that the various Managers just be declared as objects, not functions. It would've made much more sense to see something like:
    Code:
    var BattleManager = {};
    
    than
    Code:
    function BattleManager() {
        throw new Error('This is a static class');
    }
    
    Having a function that literally does nothing except throw errors is bizarre.

    The point, though, was that someone might think, "Hey, I write HTML, CSS, and JS for a living! If that's what MV is built in, this should be no problem." But then you discover that there basically isn't any HTML or CSS, since it's really just a single <canvas> element, and that the JS is written as if someone was trying really hard to write a different language using JS syntax. It can create a pretty big hurdle to try and overcome for people who would otherwise be strong Plugin developers for the community.
     
    #29
    Rixis (릭시스) likes this.
  10. ChampX

    ChampX Veteran Veteran

    Messages:
    185
    Likes Received:
    117
    First Language:
    English
    @Zevia I agree with your point, but I'm also not surprised that MV is written the way it is. The very likely scenario was, "we need to move with the times and make RM an easy to use cross-platform engine." "Oh the Node framework with JS using PIXI seems like a good solution." "Well this is a business so the next RM needs to come out in a much shorter time than it would take to develop properly and we also don't have time (and possibly interest) to learn JS fully." "Instead, just put something together, ship it, and deal with technical debt later, possibly offsetting some of it to users through plugins!". Doing code proper will easily fly out the window often in professional settings.

    We actually see this quite a bit and if you ever wrote C++ code, it has support for a lot of modern features now yet veteran developers will still plague their software with very error prone, harder to read, C-styled code simply because that is just what they know and are more comfortable with. I worked at a company once that had a C++ backend with millions of lines of code, but in reality it only had two objects and everything else was procedurally oriented written in C-style syntax. This is also a profession where people will bias their own favorite language and the language's idioms into other languages because that is what they feel is "proper" i.e. C/C++ developers complaining about garbage collection and lack of multiple inheritance in modern languages.
     
    #30
  11. Poryg

    Poryg Dark Lord of the Castle of Javascreeps Veteran

    Messages:
    4,014
    Likes Received:
    10,159
    Location:
    Czech Republic
    First Language:
    Czech
    Primarily Uses:
    RMMV
    Well, from what I've seen, MV engine was actually developed by people with zero knowledge of Javascript (an official statement that javascript was a new language for them). So they kept it simple. And actually I don't really mind constructors that return an error, because that makes it easier to orientate in for a beginner. And when I developed my OOP understanding, it even made sense for me.
    After all, we're trying to write readable code and seeing
    Code:
    var BattleManager = {};
    BattleManager.whatever = function () {}
    makes it less apparent to say it's a static class than a constructor that throws an error.
    In the end ES6 supports the static keyword, so it made the static classes even more feasible.
     
    #31
  12. Zevia

    Zevia Veteran Veteran

    Messages:
    622
    Likes Received:
    329
    First Language:
    English
    Primarily Uses:
    RMMV
    I actually didn't know that. Was reading up on MDN about it, that's nifty.

    Though if I were writing an ES6 BattleManager class, I think I just wouldn't declare a constructor instead of having one that throws an error.
     
    #32
  13. Sharm

    Sharm Pixel Tile Artist Veteran

    Messages:
    12,615
    Likes Received:
    10,303
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    N/A
    A bunch of this discussion is going over my head, but I'm enjoying it. The bit about holdover code styles is especially interesting, it explains why my dad (a programmer) is constantly complaining about how round about someone else has done something or how bad the code for a database is and such. It also explains why he says he can do javascript but doesn't really know the language. He's the sort who believes very strongly in elegant code and tries constantly to figure out how to do something in as few lines as possible. He'd probably have fits over RM's code if I showed him MV.
    That explains why after a certain point I don't understand events anymore. Maybe someday when I'm at the right point in my projects. I'm really good at learning things when not knowing gets in the way of my vision. That's why I know the basics of how to make fonts.
     
    #33
  14. Astfgl66

    Astfgl66 Veteran Veteran

    Messages:
    671
    Likes Received:
    517
    First Language:
    French
    That's a thing I love with RPGMaker.
    Your dream vision includes an awesome custom menu, but you can't program or find a ready made plugin for it? The reasonable solution, other than wait, beg or pay someone else is to event it.
    If you're like me you'll start by making tons of pictures for every different thing, using a loop to listen to key presses to modify the picture displayed. Then you'll probably transition to only using background pictures and using a plugin to draw text on your evented menu.
    Then you'll realize the limitations of an evented menu and begin to try to modifiy existing code to make your life easier.
    You'll soon find out that if you had a working evented menu, the logic is exactly the same in code.
    Sure there's a lot more to understand, but if you understand the base logic you can make simple modifications.
    You then move on to make bigger modifications, and repeat that process several times.
    Cut to a while later, you've made your very own menu: you've learned how to program in MV, isn't that great?

    This is really simplified of course and happened over several years for me, but I imagine the process for art or music is exactly the same, and I'd wager that to produce good music you'd need a lot more than a couple of years of casually fiddling around.

    I'd say if you have already mastered complex cutscenes with several moving actors and group of events, evented a menu or a similarily complex system, then you already know how to program. It's just a matter of learning js and fiddling with what MV offers until you know the program then.
    This is of course in the limited realm of RPGMaker, I'm not saying it will make you a fully fledged programmer. But, you'll be able to wrestle MV in doing anything you want, and that is the goal.
     
    #34
    Sharm likes this.
  15. Rixis (릭시스)

    Rixis (릭시스) Mecha Queen Veteran

    Messages:
    158
    Likes Received:
    36
    Location:
    Incheon, South Korea
    First Language:
    Korean
    Just thought I may add, and kind of similar what Zevia was saying.

    I can code in languages like C# and transitioning from that to Javascript is particularity easy in other engines and frame works I've used such as Unity or maybe even construct. But every time I look into how RPG maker frameworks is with its system and think about writing a pluggin I just feel left with a headache and pretty unmotivated, especially considering how much work and request has already been done by RM communities top contributors. This could be due to my own lazyniess of just trying to understand MV's system without looking into much tutorials. But I definitely feel like some things are a bit dated and... not very intuitive so to speak?
     
    #35
  16. Shaz

    Shaz Veteran Veteran

    Messages:
    37,914
    Likes Received:
    11,586
    Location:
    Australia
    First Language:
    English
    Primarily Uses:
    RMMV
    So many good posts in here - I want to quote them all to agree with them!

    I'm a programmer. But I specialize in obscure, mainframe languages that most of you have probably never heard of. I don't know Javascript. I don't know Ruby. But I've made a fair number of plugins/scripts for both. What I know - a bit - is how RPG Maker uses those languages, and a lot of the RPG Maker structure. And I can build on that base. So when I do write plugins/scripts, they follow the example set in the RM structure. I have a large manual, and I use Google a lot, to help me figure out the syntax. If people who are experienced with those languages looked at my code, they'd probably be horrified. And that's okay - if the code does what it's meant to do, I'm usually pretty happy. I don't have time to learn the "right" way to do it or get involved with all the discussions on standards or community frameworks.

    There are many reasons why I don't write more of them:
    - I don't have the time, or the interest, in learning how other people's plugins work, and a lot of people throw every plugin known to man into their projects and want them all to work together. I run from those requests.
    - I work full time, have a family, am trying to make my own game, and have a bunch of other interests that I want to pursue. The time I have available to make plugins for others is very limited.
    - I am tired. Really tired. Almost constantly. I don't want to do complex coding. 4 times out of 5, I'll choose the easiest/fastest request.
    - "Make me a plugin like ABC system in XYZ game". I can 90% guarantee you that I haven't heard of that game. And I can 99.9% guarantee you that I haven't played it. No, I'm not going to watch a 20 minute video to see if I can figure out everything about the system (and probably get most of it wrong). Chances are any kind of complex system would take several days to make. If you want me to spend that amount of time on it for free, you can darn well spend 30 minutes explaining, in detail, how you want it to work, and then answer all the questions I send your way. My time is valuable, and I don't want to rework things because you didn't want to spend the time up-front defining it.
    - "Make me this plugin - it should be really easy". Ah, the old "if I can say it in 10 words or less, it must be easy". This generally comes from a non-programmer, and I generally move onto the next thread because these people don't have a clue how complex things can be, haven't thought through their idea/request, and will not want to answer questions about how it should work. Let the person who has to do it say whether it's easy or not.
    - Thread title of 5 words. Post body is "title says it all". Yeah. No, it doesn't. Moving on. See previous point.
    - Modern Algebra spent a lot of time writing up a very good post to guide people requesting plugins. I absolutely agree with everything he said (as did many other plugin makers). It's even pinned. But people still don't read it. The last person who read it got offended that he should actually have to make his request appealing to plugin makers, and was horrified that they might actually say no.

    Here are the reasons why I do write them, sometimes:
    - I have a bit of spare time on my hands and I feel like coding, but don't have any ideas of my own - then I might grab a request that I know will be a fairly quick one
    - You have put a lot of thought into your request and taken the time to write it out well, and it sounds really interesting (see the Modern Algebra comment) - there was actually one request a while ago that was this exactly, and even though I didn't WANT to spend that much time on a plugin, I couldn't help but offer, because of the way the thread was presented, and because it sounded so interesting (even though my commission thread clearly says I will not do battle systems, two of my first commissions were battle systems and I actually did do them, for this very reason).
    - You say please and thank you and don't act like an entitled brat who thinks all plugin makers should fight each other off to do your bidding.
    - If you are a nice person and I see you helping others on the forum, that makes me like you and want to do stuff for you (*cough* @Sharm)


    But this isn't just plugin makers here. I'm sure artists and musicians could say pretty much the same things about why they do or do not fill requests. Some people ask for things, are happy to discuss it in more detail, and are appreciative when you give it to them. Some people are not. For me, it's not so much a distinction between the givers and the takers (those who have nothing to contribute) - but if you have nothing to contribute, maybe don't ask for so much stuff, and maybe try to gain some skills so you can start helping others.
     
    Last edited: Feb 9, 2019
    #36
  17. Zevia

    Zevia Veteran Veteran

    Messages:
    622
    Likes Received:
    329
    First Language:
    English
    Primarily Uses:
    RMMV
    Although there are a handful of reasons that I'll generally skip over requests, this is probably one of the highest on my list. It's already difficult trying to figure out how the default MV framework is put together sometimes (I still don't understand why so much battle processing logic is stored on Window_BattleLog. Why is that controlling sprite movement, turn order, and action processing, or doing anything except displaying text like, you know, a Battle Log?). If I now have to understand how that framework has been heavily modified by someone else, I'm learning a second framework, except this one won't use the same naming conventions, design patterns, and logic flow as the default engine.

    Case in point, Yanfly's BattleEngineCore completely removes the Window_BattleLog.prototype.startAction function. The thing is, I'm in complete agreement with why, for the reasons I mentioned above. Except if I want to do anything that modifies actions, I've now got to write conditional statements that say, "If YEP_BattleEngineCore is present, do something completely different than what I have to do if it isn't."

    It's not bad if I can write a Plugin that simply adds logic to the existing functionality - it's easy enough to say, "BattleManager.startAction now does this one method I wrote, then just calls the rest of the logic that startAction would normally run." But when you have to go in and modify how a method works in the middle of it (get rid of a conditional, change how the order of functions is called or which functions are called), you've just added so much more time and testing.

    And the thing is, I know so many members of the community are using Yanfly Plugins that, if I wanted to make truly all-purpose stuff, I'd have to write it with his code in mind. But that's just way more effort than I enjoy putting in. I spend enough of my professional time having to ensure that my code works on Firefox, Chrome, IE11, iOS, the classic version of the platform, the new version of the platform, and mobile view. The last thing I want to do in my hobby time is write a fun feature, but then slog through the arduous task of creating a thousand workarounds to support something I don't plan to ever use myself.
     
    #37
    Shaz likes this.
  18. Shaz

    Shaz Veteran Veteran

    Messages:
    37,914
    Likes Received:
    11,586
    Location:
    Australia
    First Language:
    English
    Primarily Uses:
    RMMV
    Yep.

    And totally agree with the person who said "learn to do it WITHOUT plugins". There are far too many people who download and install the engine, then start looking for plugins. Someone once asked for some puzzle ideas, and in response someone else posted a series of awesome-looking puzzles. I made some comment about the scripts required for that, and it was pointed out to me that these were done in 2K/2K3 - with no scripting ability at all. Blew me away! I love making plugins and writing code, but I'd encourage everyone to do as much as you can without it.

    I think I have kind of detoured a bit from the topic at hand, but I'm not the first :)
     
    #38
    Zevia likes this.
  19. Zevia

    Zevia Veteran Veteran

    Messages:
    622
    Likes Received:
    329
    First Language:
    English
    Primarily Uses:
    RMMV
    Well, part of the original post was about whether we should have more coders in the community or more tutorials. I think there's been a lot of airing frustrations about the various barriers of entry, followed by barriers of retention by people of why they either have difficult learning code, or know code but have difficulty learning the MV framework, or know the MV framework but have difficulty working with the community for one reason or another.

    Certainly I think there's more value in suggesting solutions than just mentioning problems, but it's been interesting to get a sense of where peoples' feelings are. Seems like Plugin requests in-particular kind of touched a few nerves.
     
    #39
  20. Shaz

    Shaz Veteran Veteran

    Messages:
    37,914
    Likes Received:
    11,586
    Location:
    Australia
    First Language:
    English
    Primarily Uses:
    RMMV
    I don't know that making plugins would be a good or easy subject for tutorials. It's like talking about making a tutorial on how to draw an autotile, compared with making a tutorial on how to be an artist. You can walk someone through one very specific example, but they are far from equipped to take that knowledge and do something completely different with it.

    Maybe a tutorial on the RPG Maker data structure might be helpful - how things hang together behind the scenes - but it's still not allowing someone who reads it / works through it to go out and make good use of it. Like art (or music), there's a lot of study and practice involved. All you can have is someone to point you in the right direction and show you a few tips.
     
    #40

Share This Page