StrangerFromTheInternet

Members
  • Posts

    55
  • Joined

  • Last visited

Posts posted by StrangerFromTheInternet

  1. Sounds like yet an other issue caused by only using single-precision floating point numbers, even when very small numbers are repeatedly added to a larger number.

    There also used to be an issue a while back where some food items would never degrade on Pilgrim while the time is not accelerated, and funnily enough, it was a performance optimization that fixed worked around this issue 😀

  2. 4 minutes ago, jeffpeng said:

    I never got it finished, and hence never released it, but I had something rather similar for Minecraft 1.7, which basically could do bytecode manipulation from JavaScript - among other things. Maybe not horrendous, but "tedious" is probably an apt description. Basically the sheer size of the undertaking killed it. 

    Funnily enough, we actually used to do that in some places with Harmony when the usual Prefix / Postfix methods wouldn't cut it: we take the method's IL (think bytecode, but C#) and modify it, and Harmony would install the new method after doing some checks that we wouldn't crash the VM 😄

    Messing around with Java bytecode is extremely interesting, too. Writing Java Agents to modify a program's instructions using ASM (https://asm.ow2.io/) is such an awesome hack! (using the original meaning of hack)

    8 minutes ago, jeffpeng said:

    What you people could do .... is play pre 1.60 via TimeCapsule. But I guess that's obvious.

    Yup, a lot of people are already doing that, and I've written some instructions on how to download TLD v1.56 to a different location using the Steam command line, as well. That way, people can have both the current and an old version of TLD installed at the same time 😀

  3. 1 hour ago, jeffpeng said:

    If - and by this time I doubt it - The Long Dark gets modding support they will want to have it restricted to what you are supposed to mod. Like adding some food, tweak weapons, add new maps, things like that. Removing breath, for example, probably isn't in their playbook. Also godmoding, teleporting, or what have you that was possible with the right mods which you can't really consider modding, but more like cheating, is something they will want to avoid with all means neccessary.

    Yeah, but then again, it's not like you'd even need modding tools for that 😛

    But on a serious note, anything beyond the most basic mods will require some code to be written to enable custom functionality, and if that's not possible with Hinterland's mod support, then it's pretty much DoA. Most stuff that the community has been requesting for years (and which ye olde mods provided), like binoculars, more food items with special effects on the player, new firestarting items, etc., all require some code to be written. From what I've been able to tell, most people aren't just looking for "more of the same", which is the only thing you could do without writing code.

    2 hours ago, jeffpeng said:

    It is possible to do binary modding (maybe the most popular example of this is SKSE), but you kinda rightly point out that this is a job hardly possible for a signle individual unless comitting to it full time (maybe patreon the project? Crowdfund?). But if that was done actual modding could be done in a simpler language like JavaScript.

    Yeah, something like that would obviously be sweet, but I wonder how well this would really work for a game like TLD. Many TLD mods don't just extend the game's code in some way, but also change the game's existing functionality. Doing that from a scripting language but targeting a native binary - without having to embed asm into the scripting language and without ruining the game's performance - sounds like a horrendous task.

    -----

    1 hour ago, DerpyLemon115 said:

    Bring back what mods exactly? I might not be entirely in the know about, this but the only "mod" for TLD that I ever heard of is a save editor, and that doesn't really count as a mod (And from I understand the editor still works to this day). So were there any mods out there that are actually worth bringing back? Genuine curiosity. 

    There were around 80 mods written for TLD by about a dozen modders, but they're not that easy to find. Part of the reason why you've never heard of them is because talking specifics about modding or even linking to mods is a big no-no on this forum.

    • Upvote 1
  4. 18 hours ago, jeffpeng said:

    People have already figured out how to bring back mods to The Long Dark after IL2CPP.

    Yeah, there's a mod loader that allows people to read from and write to game objects (I think the published version actually only supports static fields for now) and that allows you to manually rewrite the game's assembly at runtime, but that's it. That's a far cry from what was possible with Harmony. Also, having to write mods in C++ is a huge hurdle for people who want to get into modding and who don't have tons of experience yet. Having to install IDA / Ghidra / whatever to disassemble the game's binary to make sense of what the game's various methods do is a huge annoyance, as well. Also, these mods would then rely on fixed offsets within the game's binary, so they'll almost certainly break after every ever-so-small update to the game.

    18 hours ago, jeffpeng said:

    It won't take too long until most of them are back.

    Yeah, no. We're sitting on thousands of lines of legacy code written by modders that either aren't around anymore or don't have time or motivation to work on modding anymore. We simply don't have the manpower to rewrite all of these mods in a different programming language, with a different modding framework that has fewer features, and worse modding tools overall.

    For a game that's eventually supposed to get mod support, that's a pretty rough deal.

    • Upvote 2
  5. 10 hours ago, KinoUnko said:

    OP's suggestion does make me wonder... why isn't there a custom mode setting where nights get longer over time until it's all night all the time? like temp getting colder setting.

    Not sure if you're aware of this, but there used to be a mod called Relentless Night that did exactly that (and more) 😀

    Unfortunately, mods don't work anymore after Crossroads Elegy :/

    • Upvote 1
  6. The second bug you've shown in the video has been in the game for ages. Basically, when you go through a loading screen, the game "forgets" that there is ammo in your rifle and just calculates its weight as 4 kg. When you later examine or use the rifle, the game notices that the rifle is loaded and updates the weight to the correct 4.2 kg, which includes the weight of the loaded ammo.

    I have no clue what causes the first bug where you're left with 4 kg of carry weight despite not carrying anything, though.

    • Upvote 1
  7. I had a similar idea 2 years ago (decoupling hunger & stored calories), and I used some MatLab code to simulate that system. With some tuning, it worked fairly well!

    I feel like overhauling the hunger system is definitely something Hinterland should consider, as it would make for more interesting gameplay, and seeing one's stored calories dwindle could add another layer to the whole "constant depletion of resources" aspect of the game that Raph really seems to like.

    • Upvote 1
  8. 6 minutes ago, ManicManiac said:

    If sheltered locations retained heat generated by fire and it perhaps dispersed at a much slower rate, I think it would make the game easier over all.

    I agree, but this could be balanced by reducing the "default" temperature in these locations. For example, it could be -10 °C inside the camp office. To not freeze there, one would have to light a fire in the stove every once in a while to keep the house warm. Just like in real life 😄

    To prevent this from making the game more difficult in the early-game, one could have all houses start warm-ish and only cool down after some time.

  9. 1 hour ago, ManicManiac said:

    If you have noticed issues with burn time consistency (taking into account for the outdoor bonuses), perhaps then that is a bug of some kind.

    I don't think it's a bug.

    Fires last longer when it's very cold outside, and this seems to be an intended mechanic, but the increased burn duration is not shown to the player (which makes sense - it's based on the current temperature, so it changes all the time).

    I think that's all I can say about this mechanic here without getting ban-hammered 😅

    • Upvote 1
  10. 14 hours ago, Raphael van Lierop said:

    I also don't think Modding is necessarily protected (or not) under those ownership rights.

    I'm not a lawyer, so take everything I'm saying here with a grain of salt, but...

    While the mods themselves may (or may not) be derivative works, they are still protected by the same copyright laws that also protect The Long Dark.

    Whether or not the act of modding is legal is a more difficult subject, and it varies wildly by jurisdiction. For example, I think that it would be protected under fair use in the USA: Mods are transformative in nature; all of our mods are non-commercial; The Long Dark is a published work; mods do not userp the market for The Long Dark, but rather stimulate it; we copy the least possible amount by only referencing the game's classes and methods without copying (that's the entire point of the mod loader), and only reference what we actually change to create our mods; and so on.

    However, Hinterland is not based in the US, but rather in Canada. Then again, if a game studio in Canada offers a game on a storefront in country X, and a user in country X purchases it there, then I don't think Canadian copyright law applies, but rather the copyright law of country X, which complicates this even further.

    And that doesn't even get into the complicated mess that are implied licenses.

    But I mean, what it boils down to is - if neither party is interested in pursuing legal action against the other party, does it even matter?

    Like, for example, I think that Hinterland is technically in violation of the software licenses of some of their 3rd party libraries like Json.NET or TinyJSON, which are licensed under the MIT license, according to which

    Quote

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    as I wasn't able to find any third party licenses included in The Long Dark.

    But again, nobody is interested in pursuing legal action over not including a license file. After all, the MIT license is often specifically chosen because the software is meant for other people to use in any way they see fit. So in the end, does it even matter?

  11. 2 minutes ago, Raphael van Lierop said:

    People seem to be forgetting that the reason why mods are currently broken is that the "re-wrapping" I mentioned above protects our code from manipulation, which is pretty standard for software. It's an oddity of Unity that it's only recently that they've been able to protect the code this way. I've never worked on a game in my career where the players could literally crack open the game, decompile the code and assets, modify whatever they wanted, repackage and distribute. This is common in open source development but not in the kind of development I've been doing for years. So, the reason why mods are currently broken is because...you aren't supposed to be able to do the things you're doing in creating the mods. :) 

    I mean, all of the asset stuff still works perfectly fine even with the IL2CPP backend. That's just down to how Unity packages its assets. And I'm not sure that you could even say that the code is protected. It's just an x86 binary. If you really want to find out how something works, or if you wanted to extract some secrets or whatnot, attach a debugger to it and go to town.

    But what is changed fundamentally in IL2CPP is that the excellent interoperability and tooling support that C# (or rather .NET IL) provided, is gone. There's no easy way to reference the game's classes, to call the game's methods, to communicate with the game in any form, basically.

    Most of our mods also relied on the Harmony library to change the code that the game executes. Being able to run your own code before or after any method, to change the basic IL instructions that a method is made up of, is incredibly powerful, and it has enabled the creation of so many excellent mods. But what worries me is that Harmony, and runtime code generation in general, doesn't work with native binaries, i.e. with IL2CPP. So I'm worried that most of the mods we currently have would never work with the IL2CPP scripting backend, or that enabling such mods would require a huge modding API that would be just unreasonable for Hinterland to create.

    I understand that you and all of Hinterland want to pursue the absolute best performance for The Long Dark, this is absolutely obvious, and that this can never be outweighed by enabling better mods for a small part of the community. So I fully accept the move away from Mono and towards IL2CPP.

    But what I'd like to ask you to at least consider would be to maintain two separate branches of the game on Steam - the main, default branch running on IL2CPP (once it has stopped crashing 😋) and a second one running on Mono or .NET that people would have to explicitly opt into - at least until Hinterland's official modding tools are ready. That way, we could keep our current mods for now and then smoothly transition to Hinterland's tools once the time is right.

    Anyway - Raph, thank you so much for having this really open discussion with us tonight. You could've shut down this conversation, locked the thread, and started handing out warnings ten times over, and I really appreciate, and it really has changed my perception of you, that you didn't.

    I'll go catch some Zs. Have a good one!

    • Like 5
  12. 9 minutes ago, Raphael van Lierop said:

    We have a really strange sense of ownership these days, believing that "liking" something and streaming something or modding something is the same as the fundamental act of creation of a thing (that comment is not targeted at anyone here, it's just a general sentiment about "internet culture") and I'm sure it sounds arrogant of me to say so, and maybe it is arrogant of me to say so, but I don't see those being the same thing.

    I don't think modding is comparable to the original act of creating a game, either, but we've still poured our hearts and souls into these mods, into our little sub-community, and into everything in-between.
    Sure, they may just be silly little mods, and none of this would exist if it weren't for The Long Dark and Hinterland, but they're our little mods, and they really mean a lot to us.
    When I found out that all existing mods would not work on v1.48, that "the era of modding" might end forever and that all of our creations essentially vanished over night, I was genuinely in a depressed mood.
    Mods are what connects me to so many people that I otherwise would've never got to know. I love creating mods, I love getting feedback, and I love talking to people about modding.
    I honestly couldn't care less if we'll ever get an official modding API or anything like this - I just don't want to lose all of my creations, our little community, our heart and soul, over night, just like this.

    • Upvote 2
    • Like 3
  13. 1 minute ago, ManicManiac said:

    I have a feeling that the calculations and interaction of options and variables are probably a little more complex than we know.

    Nah, it really isn't. Selecting a value from an array and then multiplying stuff together really isn't all that complicated 😋

    Seriously, I've analyzed and re-analyzed this bug so many times now, from decompiled code over asset files to mods that just print the time between respawns for each spawner. Since the bug has been first reported over a year ago on the test branch forum, and then again later on the bug tracker, nothing has changed.

  14. Just now, FINDarkside said:

    They could simply change it to "respawn interval" or something like that. So it could be fixed with different language.

    Yeah, it could be fixed at different levels. Either by renaming the setting, or by replacing a "*" with a "/", or by changing the tuning values, and so on, each with slightly different implications :)

    I think just renaming the setting wouldn't be a good idea, as that wouldn't fix the issue for players who've selected a "high" respawn frequency in the past but always got a "low" respawn frequency instead - but that's just my opinion. Either fix is absolutely fine 😃

  15. 3 minutes ago, Raphael van Lierop said:

    We did a pass on those recently and updated the language/tooltips to try to clarify all of the settings, but do let us know if it's still not working: hinterlandgames.com/support

    The language really isn't the problem here, the problem is maths: frequency = 1 / time  😃

    When players select "animal respawn frequency = low", they instead get "time between respawns = low", which means a high respawn frequency, which is the opposite of what they wanted.

    I just checked, and this bug is indeed still in the game. Respawn times are 4 times longer when selecting the "Very High" respawn frequency, so the respawn frequency on "Very High" is just 25% of what it is on "Low"

  16. 10 minutes ago, Raphael van Lierop said:

    Yup -- all bugs that have since been fixed, to my knowledge.

    The head clothing slots are still swapped 😋

    Most of the bugs on my list have definitely been fixed, but I haven't been able to check all of them yet 😃
    I'm especially curious if the "wildlife respawn frequency" setting finally does what it's supposed to do. That bug goes all the way back to the test branch update where custom modes were first introduced :)

    • Upvote 1
  17. 5 minutes ago, ThePancakeLady said:

    And if I shipped an update to MY software, it is meant to work with MY software, not any modified version of it. As a dev, I am in no way responsible for an update that works with the product I create breaking a modification that someone else tacked onto it. Period. 

    "'How to make your company immediately lose a large number of clients and get fired' in 1 easy step!"

  18. Just now, ThePancakeLady said:

    You did not buy a copy of the game, you do NOT own the game, You bought a licence that allows you to play the game. 

    That's not how this works. Legally, you do own a copy of a game. Games are goods, not services.

    3 minutes ago, ThePancakeLady said:

    Yes, my analogy is valid, yours is not. 

    You can gladly replace bought a copy of my painting with bought a license to download and indefinitely use a copy of my painting. It doesn't change the fact that your initial analogy was wildly inaccurate.

    • Upvote 1
    • Like 1
  19. 30 minutes ago, ThePancakeLady said:

    As an artist, if you came into my house, took my art, ripped the canvas out of the frame, crumpled it up, ripped it, and drew a smiley face on it, because you think it looks better that way, then came to me and complained that the painting is now crumpled and won't go back in the frame and hang properly again... get out of my house. 

    I just need to fix this false analogy:

    As an artist, if you came into my house, bought a copy of my painting, and then drew a smiley face on it because you think it looks better that way, then I take your copy away and give you a new copy with a sharpie-repellent coating, and you then complained about it... get out of my house - why exactly?

    Kinda doesn't really work that way when it's adjusted to reality, does it?

  20. 2 minutes ago, ThePancakeLady said:

    But until then, the modders who have already done so are THE ONLY ones responsible for their mods not working, and THEY need to do the work to fix them, or create new ones. NOT Hinterland.

    Hi, mod dev here. In general, I'd agree with you. If v1.48 had been any other update, sure.

    The difference is that they didn't just make changes to the game's code, but they switched the Unity scripting backend. It used to be Mono, so the game's DLLs all contained .NET IL that was easy to work with and write mods for. For v1.48, Hinterland switched to IL2CPP. That's a Unity-developed AOT compiler that takes that .NET IL and outputs platform-specific x86 assemblies. I assume you know just as well as me what such a change means for modding.

    This isn't a software issue, this is a software distribution issue.

    12 minutes ago, ThePancakeLady said:

    As a SW dev, if someone modified any of the programs my business sold, and then distributed the modified software to the public, who then came to my business when the modified program did not function properly because of a conflict created by the modifications.

    ???

    No, we modify the game that they sold, but we don't distribute the modified software. We distribute our modifications. People still modify the game themselves, as they see fit.
    You wouldn't say that someone who hands out colorful curtains for people to hang in their houses distributes "modified houses".

    Also, no, we're not here to talk about "a conflict created by the modifications". We're here to talk about them possibly removing any possibility of efficiently creating mods for the game without any replacement.

    Seriously, especially as a software developer and modder, you should know what such a fundamental change how software is built and distributed means to other code that depends on that software.

    • Upvote 2
  21. 2 minutes ago, Admin said:

    We are looking forward to doing mod support justice with proper tools at a later stage.

    This has been Hinterland's position for literally years now.

    Can you at least throw us a bone and narrow down the time frame that we should expect? :)

    Also, do you plan to still support dynamically changing the game's code, which is what mods currently do using Harmony, or will the planned mod support be more restricted than our current tools?

    6 minutes ago, Admin said:

    To fix the current PC crash, we may have to roll that back and mods may work again for a short period of time.

    If creating builds with Mono isn't too much of a hassle: Would it be possible to have two builds of the game, the default one using IL2CPP and a deprecated one still using Mono that people would have to opt into using Steam, at least until the official mod support is released? That way, we wouldn't just lose all our mods basically over night.

  22. Basically, the thing I don't understand is - if Hinterland is truly committed to adding mod support at some unknown time in the future, why are they trying to essentially get rid of the current modding community? And why switch to a scripting backend that will make modding exponentially more difficult? Do they just not see the impact this will have on their future modding API?

    Or was all this talk about adding mod support just PR, and there never were any genuine plans to add mod support?

    • Upvote 4