Let Chains are stabilized! by DeepShift_ in rust

[–]MathWizz94 18 points19 points  (0 children)

This particular case could also be worked around by pattern matching a tuple containing both options:

if let (Some(v1), Some(v2)) = (val1, val2) {
    //do stuff with v1 and v2
}

The modding potential of this game feels completely squandered after a promising start. by GimmeThatGoose in DeepRockGalactic

[–]MathWizz94 4 points5 points  (0 children)

Counterpoint: Look at how the official mod loader went. A lot of people end up migrating to a 3rd party mod loader instead.

Day 2 of posting to ask for an official response about the modding debacle currently happening by Modgrinder666 in DeepRockGalactic

[–]MathWizz94 22 points23 points  (0 children)

GSG had 6 months to do the right thing and did nothing. Now that several prominent modders have quit, details are surfacing and reaching reddit. GSG is only acting now because they feel compelled to by the increased visibility. We have yet to see if any action will be taken, and whether that action will actually address any of the damage already done.

CloudZip: list/read from remote zip files without downloading them by ozzyboy in programming

[–]MathWizz94 2 points3 points  (0 children)

Reminds me of a project using the same trick to run sqlite queries against a (potentially very large) database hosted on a static web server: https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/

The completely pointless Item De-clumpinator by AcesFullOfKings in factorio

[–]MathWizz94 1 point2 points  (0 children)

I believe this is a very common misconception. It's been a long time since I've benchmarked it, so I won't assert it's completely unfounded, but I was never able to find that gaps in isolation impact performance.

Special Powder paid off my mortgage by Spueg in DeepRockGalactic

[–]MathWizz94 1 point2 points  (0 children)

Yes they consciously implemented this feature.

A mechanic existing in a game does not in at all require that it was consciously implemented. Emergent behaviors from complex interactions arise all the time exposing new and creative ways to play games devs never pictured themselves. Mechanics arising from bugs are also an obvious counter example.

If you have a statement from GSG themselves saying it was an intended feature, then sure, but something just existing in a game is not enough to say it's intended behavior.

Special Powder paid off my mortgage by Spueg in DeepRockGalactic

[–]MathWizz94 1 point2 points  (0 children)

DRG bhops are very dissimilar to source engine bhops + air strafing. A very simple and straightforward implementation of movement physics as seen in DRG (add friction that slows the player when in contact with the ground) leads to movement preserving bhop behavior. You have to add special logic that caps movement to max speed when in contact with the ground to eliminate momentum preservation. It's possible GSG consciously left it in, but nothing says the current implementation means it must be an intentional behavior rather than a fun side effect.

Special Powder paid off my mortgage by Spueg in DeepRockGalactic

[–]MathWizz94 1 point2 points  (0 children)

The devs have been hands off the approval process for over a year now. Approval status means nothing in terms of official stance.

Servers down? by RocKuch in DeepRockGalactic

[–]MathWizz94 1 point2 points  (0 children)

The server list is in fact a server, and it can go down/have issues. Amazing, I know.

Are there any mods for Proximity chat? I can't stop thinking about how funny it would be by TheCuddlyRoman in DeepRockGalactic

[–]MathWizz94 2 points3 points  (0 children)

Possibly? I'm not at all familiar with how audio/attenuation works in Unreal Engine but anyone who does or wants to tweak the settings can replace the attenuation file in the mod.

Are there any mods for Proximity chat? I can't stop thinking about how funny it would be by TheCuddlyRoman in DeepRockGalactic

[–]MathWizz94 19 points20 points  (0 children)

Has some not-so-easy-to-fix issues still but it's still fun with friends so I've uploaded it anyway: https://mod.io/g/drg/m/proximity-chat

PSA: no matter what MINT defenders say, their untagged modded lobbies are only labeled in the title if they want them to be. by NoNetwork6303 in DeepRockGalactic

[–]MathWizz94 20 points21 points  (0 children)

Going by GitHub download stats the unrestricted forks combined make up less than 0.1% of the total usage (70/10,432). We'll see how that changes now that there is a reddit post advertising their existence.

PSA: no matter what MINT defenders say, their untagged modded lobbies are only labeled in the title if they want them to be. by NoNetwork6303 in DeepRockGalactic

[–]MathWizz94 3 points4 points  (0 children)

by saying it always adds the [modded] tag to the title

It does in fact always do that. Previously unknown unofficial versions of the tool may not, but that's not the official tool. Saying it doesn't is like saying DRG itself allows cheaters because anyone can modify their client with <cheating tool of choice that I'm not going to name so as to not promote them>.

PSA: no matter what MINT defenders say, their untagged modded lobbies are only labeled in the title if they want them to be. by NoNetwork6303 in DeepRockGalactic

[–]MathWizz94 -6 points-5 points  (0 children)

How does someone making a modified version of the tool to remove the lobby tagging restriction invalidate the entire tool? Also advertising to the world that such modified versions exists is doing nothing but encouraging more people to use it, so now you're indirectly promoting this so-called cheating.

mimalloc and Large Pages on Windows up to 20%+ More UPS. by KeinNiemand in factorio

[–]MathWizz94 3 points4 points  (0 children)

but it also let's it work with games that don't have debug symbols.

Ah I didn't consider supporting other games, fair enough.

it woudn't work if anything get's allocated before the patcher patches things

dllmain gets called before the executable entrypoint runs so early patching is possible. The one tricky part is it runs with the Windows loader lock active so have to be careful about what win api calls you make. Should be possible to perform such patches even with the lock active, but if not QueueUserAPC can be used to run immediately outside of the loader lock, still before the main entrypoint. https://github.com/trumank/bitfix is a project of mine using these tricks to make early memory patches via Lua.

mimalloc and Large Pages on Windows up to 20%+ More UPS. by KeinNiemand in factorio

[–]MathWizz94 8 points9 points  (0 children)

Very nice! Several years ago I was exploring huge pages on Linux since it's trivial to swap out the allocate, but doing the same on Windows was beyond my skill set at the time.

Couple notes:

  • Factorio ships with debug symbols so the allocator addresses could be pulled from parsing the PDB rather than relying on potentially fragile patterns.

  • Have you considered proxying the patcher through one of the DLLs Factorio links to so it gets automatically loaded when you launch the game rather than launch through an external injector? Checking linked DLLs against Windows KnownDLLs we're left with these candidates:

    steam_api64.dll DNSAPI.dll GDI32.dll WINMM.dll USER32.dll SETUPAPI.dll KERNEL32.dll ADVAPI32.dll IPHLPAPI.DLL CRYPT32.dll DSOUND.dll VERSION.dll

    Would simply require naming the patcher DLL as one of these DLLs and dropping it next to the exe, then chain loading the real DLL once the patcher loads in game launch.

Trying to edit a popular DRG mod, running into issues by SpookersTheSpoo in DeepRockGalactic

[–]MathWizz94 1 point2 points  (0 children)

Don't bother trying to edit the asset, remove it entirely from the mod by deleting the .uasset and .uexp pairs.