Having examined MV engine code, I can report that it’s implemented mostly in mimicry of the internals of VX Ace and earlier, complete with objects that only really make sense as C structs (e.g. having numeric “opcode” and “id” attributes instead of just being class instances). The upside is that it also uses a large amount of easily-hacked global variables, which is convenient for plugins.
As bad as the MV engine codebase is (its very bad) it is god damn rock solid compared to the community plugins
Obviously the community has created a really impressive amount of utilities for this engine but dear lord at what cost
The horrors Ive seen… the amount of times people just throw in a bunch of eval
s in code that runs every frame like fuck it lets just never hit 60 fps again
that’s incredible. are they using eval in the place of an import system or something? why would you ever use eval? i am having visions of outsider art javascript that generates code by string concatenation in order to implement currying
Usually its used as a way to have a formula in the plugin settings because the author doesnt know about function constructors
However
I have seen eval
used to convert a string “true” into a bool in an MV plugin
Multiple times
Ive seen shit you people wouldnt believe
that sounds like most aaa codebases
there are rare cases where you might actually want to use eval
but significantly less so in a world where the function constructor exists. (I’m using the function constructor in a js framework I’m making right now though I’m still trying to research an alternative… though I’m like, pretty sure my implementation is safe).
I guess the function constructor ditches scope (which is why it’s a better alternative) but that still leaves room for edge cases where eval
might be necessary. but I’ve seen eval
calls in a lot of popular, well-made js libraries. I assume at least some of those people know what they’re doing. who knows though.
it’s kind of hard to imagine any need for anything like that if you’re just scripting stuff in rpgmaker though?
I got to see a readonly int bob = (int)float.Parse(“500”); at work in production c# code for an application that had cost the organization a pretty penny so while I do think javascript encourages terrible code I’m also convinced life finds a way in all languages.
The Wii was so ubiquitous, that I’m shocked the Switch was able to pull that off.
If anything I hope they just keep supporting it just as long and all the internet people shut the fuck up about how there NEEDS to be a Switch 2.
wack ass praise and worship music
in capslock and font size 64.
I really hope that the compiler does enough optimization to offset such … creative … use of explicit and implicit assigning & typecasting.
The compiler almost certainly does not. string eval-based metaprogramming basically bypasses the compiler and moves its workload and error-checking to runtime
Elephant Peach
foreverially castlized king bowser
it’s too early in the morning to be shown elephant Peach or inflating Mario
can’t believe they made a strand type mario game
The flowers shouldn’t talk to me.