Jump to content

Add .NET 8 support


Andy4Vendetta

Recommended Posts

I am using Arch Linux and I got dotnet-8.0 update recently. But Vintage Story doesn't support it and I had to rollback to 7.0.113 by arch package archives and add all dotnet-related packages to pacman ignore list so they wouldn't get updates. It would be really nice if I could use newer .NET version to run the game.

  • Like 1
Link to comment
Share on other sites

Is there a significant advantage to 8, or is this just to make your install easier to maintain? .NET 7 I could see, because performance was greatly improved, and walking people who don't have your degree of knowledge through the update process was worth it.

But isn't the whole point of Arch Linux a rolling update thing? Rather than you handling the exclusion, wouldn't this force VS development to focus on supporting the bleeding edge rolling release schedule of a product still in its dev cycle, to the exclusion of, say, adding new content or fixing actual bugs? Once into full release, sure, but at this point in the dev cycle?

Edited by Thorfinn
Link to comment
Share on other sites

11 hours ago, Thorfinn said:

Is there a significant advantage to 8, or is this just to make your install easier to maintain? .NET 7 I could see, because performance was greatly improved, and walking people who don't have your degree of knowledge through the update process was worth it.

But isn't the whole point of Arch Linux a rolling update thing? Rather than you handling the exclusion, wouldn't this force VS development to focus on supporting the bleeding edge rolling release schedule of a product still in its dev cycle, to the exclusion of, say, adding new content or fixing actual bugs? Once into full release, sure, but at this point in the dev cycle?

.NET 8 has a lot of serialization improvements, improved randomness and cryptography (that would be important for account security), UTF-8 improvements (I don't think this is needed for VS really) and adds a few new performance-focused types.

So VS doesn't need to update and rewrite itself to new .NET 8 features really, but I think it would improve performance for a bit if new v8 features is used correctly.

Edited by Andy4Vendetta
Link to comment
Share on other sites

  • 2 weeks later...

Also, keep in mind that VS only just moved from .NET 4 to .NET 7 this summer.

The main delay in doing this migration was a third party component which did not support .NET 7 up until that point, but which VS has a hard dependency on.

Chances are, that third party component won't immediately move on to .NET 8, so until it does, VS cannot update either.

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

The devs added a separate package for v7 dotnet to the Arch Linux repositories, so all is good. As for moving to .NET v8, I agree that it is better to do it when it makes sense. And probably not even to version 8 of dotnet, but to wait for version 10 for example and so on. If the difference between two adjacent versions may be insignificant, it may already be a difference between several versions in terms of performance or different functions.

Link to comment
Share on other sites

On 12/14/2023 at 8:45 PM, Streetwind said:

Also, keep in mind that VS only just moved from .NET 4 to .NET 7 this summer.

The main delay in doing this migration was a third party component which did not support .NET 7 up until that point, but which VS has a hard dependency on.

Chances are, that third party component won't immediately move on to .NET 8, so until it does, VS cannot update either.

This ^^^

Moving .NET versions is a large task. We are dependent on around 10 third-party libraries, some of which are open source and maintained by volunteers. And we need to maintain Windows 10 & 11, Linux, and MacOS compatibility (and we shortly hope to support latest Apple Silicon, i.e. ARM64, natively). And Harmony patching needs to be working seamlessly, so that our mods are supported.

If even one of these things is not working then Vintage Story starts to have issues...  I would be extremely reluctant to update .NET versions again without a very strong reason to do it, and obviously it would be sensible to do it only at a time when the third-party libraries are all stable in the new .NET version.

Frankly we are still working through the .NET7 update, there are a couple of niggles remaining ... I'm just thankful the game is as stable as it is in .NET7.  It's largely th3dilli to thank for that!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 5 months later...

The problem is that .NET 7 is not supported anymore: https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core.

I am trying to install the game on Linux for the first time, and there is no easy way to install .NET 7.

I got the binary from https://dotnet.microsoft.com/en-us/download/dotnet/7.0 and did a manual setup, by unzipping the tarball to ~/.dotnet and setting export DOTNET_ROOT=$HOME/.dotnet.

Link to comment
Share on other sites

On 6/9/2024 at 8:44 AM, frafra said:

I am trying to install the game on Linux for the first time, and there is no easy way to install .NET 7.

It seems to heavily depend on the distribution you're using. For example, in Debian-based distros (which are probably the most used ones) you have Microsoft's own package repository which includes .NET 7, and for Arch it's been added to the distro's repos. And as the devs have already stated, migrating so soon isn't exactly feasible because of the dependencies as well as potential incompatibilities, it's simply too much effort right now.

Besides; unzipping a file, then exporting a variable and adding a directory to PATH isn't hard, it's pretty straightforward for a manual installation.

Link to comment
Share on other sites

  • 1 month later...

Yea just recently changed distros and realized oh... I can't play Vintage Story anymore because it requires dotnet7 and Nobara 40 doesn't support this anymore.  Then I was going to change distros (thats how much I love this game) and realized that dotnet7 isn't even officially supported anymore.   Guess I'll just wait until the game updates to dotnet8.  :)

Link to comment
Share on other sites

34 minutes ago, slatetac said:

Yea just recently changed distros and realized oh... I can't play Vintage Story anymore because it requires dotnet7 and Nobara 40 doesn't support this anymore.  Then I was going to change distros (thats how much I love this game) and realized that dotnet7 isn't even officially supported anymore.   Guess I'll just wait until the game updates to dotnet8.  :)

Might be a long wait. Support for dotnet7 was just last fall. I've recently switched one of my machines to Linux, and as @EzioCoda says, its really easy to set up. And besides, going out of support is more or less the same as your car's manufacturer's warranty running out. Take care of it and you can expect at least a decade or two more use.

Link to comment
Share on other sites

Its always worth having a look at the support terms for DotNet. As DotNet 7 is out of support but DotNet 6 still has support until october this year and DotNet 8 is also longterm support until 2026. Wouldn't it be good to try to go to 8 and have a look at the next longterm support which still has to be announced. 

As I'm working at an IT department we removed all DotNet 7 installations and replaced them with 8. Next thing in few months will be removing DotNet 6 and also replacing it with 8.

Safety always first because we live in rude times and cyber wars attacking every minute thousands of servers and PC and searching for vulnerabilities. Of course game developers focus on the work and not the vulnerabilities of the used tools.

cheerz
Richard TheVoice :)

  • Amazing! 1
Link to comment
Share on other sites

  • 3 weeks later...
On 12/24/2023 at 12:24 PM, radfast said:

This ^^^

Moving .NET versions is a large task. We are dependent on around 10 third-party libraries, some of which are open source and maintained by volunteers. And we need to maintain Windows 10 & 11, Linux, and MacOS compatibility (and we shortly hope to support latest Apple Silicon, i.e. ARM64, natively). And Harmony patching needs to be working seamlessly, so that our mods are supported.

If even one of these things is not working then Vintage Story starts to have issues...  I would be extremely reluctant to update .NET versions again without a very strong reason to do it, and obviously it would be sensible to do it only at a time when the third-party libraries are all stable in the new .NET version.

Frankly we are still working through the .NET7 update, there are a couple of niggles remaining ... I'm just thankful the game is as stable as it is in .NET7.  It's largely th3dilli to thank for that!

.NET had a massive architectural shift between versions 4 and 5, and as such upgrading from 4 to 5 (or in this case 7) was a completely different matter than upgrading from 7 to 8 is going to be. The changes from one version to another after the .NET Framework and .NET Core merge in .NET 5 have been much less dramatic.

The changes between 7 and 8 are listed here: https://learn.microsoft.com/en-us/dotnet/core/compatibility/8.0. Odds are pretty good that updating is literally just a matter of bumping the version number, assuming third-party libraries have updated (which they likely will have by now, because 7 is EOL).

  • Like 1
Link to comment
Share on other sites

From my experience as a Linux user, I can run VS fine on Mint 21.3 since it uses the 6.5 kernel.  However updating to the 6.8 or updating to Mint 22 breaks support for me since NET7 isn't no longer supported on those kernels I'm assuming.  I also run a separate distro Nobara which now uses the 6.10 and the 6.8 which is great for newer hardware and VS won't work on those either.   Even manually installing the NET7 into these distros still won't work as they just don't see them.  

Vintage Story is that game however I will have a separate distro set aside so I can still play.  :)

Link to comment
Share on other sites

I don't think the kernel version has anything to do with it. By manually installing .net7, I can run VS on Fedora 40 with the 6.10.3-200.fc40.x86_64 kernel.

That said, I'd love to see VS switch to a supported version of .net so that it's easier to install.

Link to comment
Share on other sites

I did some research on this prior to purchase, but clearly not enough. Web search claims new versions are backward compatible, but perhaps not?

In either case, the new Ubuntu 24 I'm running does not support .net 7, only 8. I'll go see if the Flatpak works, but it does look like you may start seeing compatibility issues.

I'll happily go deal with a few hurdles though, you people do amazing work and we appreciate all the effort you already put in.

Link to comment
Share on other sites

  • 1 month later...

I found an app named Bottles, allows to run vintage story in a separate runtime environment with compatibility layers.  Works like a charm on both distros I use, Mint & Nobora.  Now it doesn't matter what runtime or framework they use because you can set all of that up in the bottles app for that specific program. 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.