5 ms·
This is something that I think is extremely under-appreciated: the ability of a user to dive into the code of what they’re using and try things out. Like the ty
by ryukafalz 4y ago
This is something that I think is extremely under-appreciated: the ability of a user to dive into the code of what they’re using and try things out. Like the type-in games of the 8-bit micro era, or like Scratch, or like Emacs; each of these allows the user to tinker with little overhead.
Modern software, by contrast, is usually too opaque - even free software! The barrier to entry is way too high.
- deleted 4y ago[deleted]
- whimsicalism 4y agoMuch of my coding was started with modifying the Minecraft & Wii internals and I would call that "modern software."
- bckr 4y agoYou're an outlier for sure. Wii internals sounds very hard.
- ryukafalz 4y agoMinecraft is also slightly an outlier, I would say; its modding community has put a lot of work into making it easier for people to get started. It’s still a far cry from having a “view/edit source” button, though.
- messe 4y agoIf I remember correctly the early days were painful as well, with it being necessary to manually unpack the jar file, and work with deobfuscated decompiled code. I'm not sure what the state of it is nowadays, but I hope its more pleasant. My favourite game from a modding perspective is Kerbal Space Program. Just drop a Mono/.NET DLL into its GameData folder and you're good to go, and code completion works automatically during development as long as you have Squad's own DLLs in the right paths.
- whimsicalism 4y agoI remember having to unpack the jar but I don't remember the function names being obfuscated or anything like that. Then again, this was a while ago.
- GranPC 4y agoAs far as I know, they've been obfuscated since, at the very least, the initial alpha release of survival mode netplay, back in 2010 or so.
- josephcsible 4y agoIf you used the Forge development environment, then it did the deobfuscation for you. They have it set up so well you basically don't even realize it happened.
- whimsicalism 4y agoThis was definitely pre-forge but I might not be remembering correctly around the obfuscation
- Alphaeus 4y agoThese days Mojang provides obfuscation maps, so you can work with proper class and method names (though no parameter or local variable names). There's also been a lot of effort been put into the tooling. Nowadays there exists Gradle plugins that will download the game jar, decompile it and deobfuscate it using the official mappings. You develop against the deobfuscated code, then the plugin will turn the unobfuscated names back into their obfuscated versions when you compile. There's also been technology developed that lets you easily modify specific parts of a method in the game, so you can e.g. insert calls to your own functions at runtime.[1] This saves from you having to modify the game jar itself. [1]: https://github.com/SpongePowered/Mixin https://github.com/SpongePowered/Mixin
- whimsicalism 4y agoDefinitely harder than Minecraft as it was in C and also a more adversarial environment bc Nintendo made it very challenging
- vintermann 4y agoYeah. I have a lot of respect for all the Nintendo emulator makers and homebrew hackers, but for the platforms themselves, I can't help thinking the world would have been better if something else won out.
- mch82 4y agoWii actually had a web browser and JavaScript API for the Wiimote controller. This comment made me remember a basic website I made for it back in the day. It was cool to use the Wiimote to interact with the page! The web games didn’t really take off though. I wonder if Wii emulators have the browser app? Video out broke on the Wii consoles in my family…
- quickthrower2 4y agoThe browser lets you do this interactively with a web page too in console tools.