6 ms·
I feel like everyone is trying to do things in the most inefficient way possible and it is starting to make me a little bit batty. WASM is awesome, but if I'm
by naikrovek 1y ago
I feel like everyone is trying to do things in the most inefficient way possible and it is starting to make me a little bit batty.
WASM is awesome, but if I'm reading this right, they're choosing not to write DLLs so that they can create WASM modules which are recompiled into DLLs prior to runtime.
I think our entire industry has taken banned-by-the-Geneva-Conventions, weapons-grade Stupid Pills.
The only reason I can think of to do this, is so that you can't have arbitrarily malevolent code running in the DLLs that mod authors write. But we can't run the whole game in a sandbox such as a VM because of Nvidia GPU licensing disallowing virtual GPUs in consumer grade GPUs.
If that's why this work is being done, some serious muscle needs to be used to twist Nvidias arm so that they stop being knobheads and start being part of the solution to security issues, instead of part of the problem.
If I pay for that GPU, I should be able to issue work to it however I please. I should be able to split it up among VMs all day long without concern for anything Nvidia wants.
- Cieric 1y agoWhen the modding community is so heavily plagued with mods that are malicious in some way, I don't think having a modding api that can be safe by convention yet recompiled to be fast would be a bad idea. So while I'm not sure it was the smartest choice, it's not so inanely stupid as you seem to be putting it.
- diggan 1y ago> When the modding community is so heavily plagued with mods that are malicious in some way Is it? Granted, I'm a heavy mod user myself for various games, but only created mods myself for Cities Skylines and Cities Skylines 2 so I guess I know that ecosystem the best, and yes, there been a few cases of malicious mods, but "heavily plagued"? What ecosystem are you talking about?
- Cieric 1y agoMost recently in my memory it's been minecraft. There was a wave of mods that were stealing things like discord access tokens, I don't have clear memory on all of the cases that I've been through, just that I always try and verify all mods I can now. I think I remember one for Lethal Company and looking online I'm seeing some referenced for Dota 2, Sims 4 and Slay the Spire. Just learned Nexus mods is also pretty good about handling anything that's virus like, most of my modding experience has been external to that though.
- Scramblejams 1y agoYep, this really bums me out. Wanted to try plenty of Minecraft mods but never wanted to go to the trouble to set up a secure environment, so I never did either. As an only-tangentially-related aside, the difficulty of making mods for Windows games work on Proton also bums me out. I wish some kind of cross-platform, sandboxed modding ecosystem existed solving enough problems that most modders would prefer to use it. I'm not sure that's even possible, though.
- naikrovek 1y agoIf you’re saying that there’s no other way to create a mod API with clear security boundaries, I disagree. The mod API should not have to do this anyway. The OS should do this. It is beyond belief that most operating systems just allow programs to do anything they want simply because they’re being executed. And if the OS can’t do this, you run in a VM which nvidia disallow you to do in a performant way.
- Cieric 1y agoWhile I agree that it's not the best situation, (and I'm wholly against nvidia in this case.) And yeah this isn't about the mod-game api boundary, this is more about the mod-os boundary since that is harder to control against. WASM from my research so far doesn't allow any of that by default and it has to be passed through by the runtime. In this case it would be passed through to the retargeting compiler. This can give additional benefits like allowing mods on consoles in a more secure way and allowing for targeting the game to future cpu architectures without requiring all mods to recompile their code (not that I think the latter is a reason microsoft cares about.) But the idea of recompiling code when launching a game is already kind of standard on the gpu side of things.
- spullara 1y ago"The only reason I can think of to do this, is so that you can't have arbitrarily malevolent code running in the DLLs that mod authors write." This is the only reason and you go on to show that it is a reasonable thing to do given the state of the world.
- yellowapple 1y agoThe other reason is that it allows these modules to be cross-platform, rather than being limited to Windows on x86-64. I doubt Microsoft cares much about other operating systems, but they do seem to care quite a bit about ARM.
- naikrovek 1y agoWhat I said is a solution but it is in no way the best solution.
- spullara 1y agoAbsent fixing the vGPU problem (since Nvidia is unlikely to change their stance on this), what would be the best solution? WASM seems like a reasonable compromise to me.
- naikrovek 1y agothe true fix here is to have an OS that doesn't let running code do anything it wants without at least asking for permission and then getting the OK from the user. MacOS doesn't allow that. Linux and Windows are much more what I'm talking about. That's much harder than what Microsoft is doing in this situation, so I understand (kind of) why they're doing this. Malware overall isn't going to get better, or become less of a problem; it's going to get worse. Every day that these things are delayed, the more damage is done by malware that runs before this kind of OS level security gets implemented. If this were in place, we could run DLLs all day long and if one of them decides that it needs full disk access or superuser access, you can simply not allow it when prompted. Or, Microsoft could recognize that in the context of a game that this is never ok, and simply not show you the prompt to begin with. But no, because the OS is so fucking stupid we all have to think about these things. The OS is supposed to handle this level of thing. The OS should run the applications I tell it to run, and protect me from them if they try anything stupid. The OS is supposed to sandbox applications and protect the rest of the system from any malevolence they may contain. Instead we have game teams innovating solutions like this, which are entirely unnecessary if the OS team would do their fucking jobs.
- sorenjan 1y agoNvidia is supported on WSL2, which is a VM, so that shouldn't be the issue. https://docs.nvidia.com/cuda/wsl-user-guide/index.html https://docs.nvidia.com/cuda/wsl-user-guide/index.html
- naikrovek 1y agoWSL is a special case, the only case where this is allowed, to my understanding, outside of datacenter-class GPUs. Early in WSL2's life there was a special NVidia driver you had to download from Microsoft which allowed the GPU to be partitioned only by WSL. Now this functionality is built into the normal driver that NVidia distribute and doesn't require a special download.
- Pannoniae 1y agoyou're being downvoted sadly, but you are 100% right ;) long gone are the days of games with actual modding support (think of games like CS:1.6, half-life, civ4 where you had a dll src with the game) the whole "mods can have malware" with them is just an overblown risk assessment, most people do the right thing. there's been like fewer than 10 malware incidents with minecraft modding over the years and most of it has been recently because trust in that modding community has basically evaporated. it's a much better stance to just let mods do whatever and hold their authors accountable with their reputation. srsly.
- NanoCoaster 1y ago> long gone are the days of games with actual modding support I'll disagree here. Kerbal Space Program, Rimworld, Minecraft all have gigantic modding communities, just to name a few. There's many, many games like that. In the case of Rimworld, it's official support and in the case of Minecraft it might as well be at this point. > where you had a dll src with the game Agree :) But I don't see how that pertains to moddability in practice. In many cases, the existence of standardized modding APIs instead of everybody just poking around in the game's source is actually an upside, as it makes interoperability much easier. I also agree with the malware side, at least for the time being. At some point, we'll probably have to deal with this and I don't mind starting the technical side now, but I don't subscribe to the idea that mods are riddled with malware.
- Pannoniae 1y ago> Kerbal Space Program, Rimworld, Minecraft all have gigantic modding communities, just to name a few. I see what you mean, but there's a reason why I said modding support. From these, only Rimworld really counts - KSP's modding is unofficial and without support from the developers, Minecraft modding is also unofficial (you still don't have code or an API, you have to decompile! you do have datapacks but those can't do shit compared to proper modding) Point is, all of these have unofficial modding communities because they are written in managed languages which are easy to reverse. But they don't give you a modding API to target, they don't give you documentation and they don't give you a clean/stable API. Look at how much Minecraft mods break with every minor update, it's nowhere near "official support". > In many cases, the existence of standardized modding APIs instead of everybody just poking around in the game's source is actually an upside, as it makes interoperability much easier. You're right but that's mostly just a consequence of the time which has passed. We no longer load just one mod. But the old model does work perfectly here - even if the modding is just "here's the DLL, replace it", the community can easily build a modloader on it which does support multiple plugins. > At some point, we'll probably have to deal with this and I don't mind starting the technical side now, but I don't subscribe to the idea that mods are riddled with malware. Semi-agree, it is a risk and one which can definitely be a huge issue, but I'd say this is much more of a social issue than a technical one. All these "lock things down to ensure security" initiatives throw the baby out with the bathwater, they don't really allow for anything substantial or creative to be made. And that's a huge loss, a way bigger one than malware spreading for a few days before getting inevitably found out and removed. this convo is funny considering I'm working on a blocky game similar to Minecraft and one of the big design principles I have on my mind is drastically lowering the bar of entry for creating stuff. Even if you can theoretically modify many things, most users won't go and whip out a development environment on a whim, they'll just give up.... there's a few things which can make it drastically easier for users to become tinkerers, one of them is a compiler included with the game. If something is in the files, people can play around with it without friction, even better if some samples are included. IMO the benefits way outweigh the costs.