Cultivation icon indicating copy to clipboard operation
Cultivation copied to clipboard

[Feature Request] Linux support

Open RBNXI opened this issue 2 years ago • 25 comments

Probably it's too soon to ask for a Linux port (although I think it should be easy, since the main problem would be launching the game on Linux but that's easy solvable launching the Lutris launcher.bat file of the game instead of the .exe), but could we get a quick guide on how to launch Cultivation with Wine?, it's currently impossible without some tinkering that I don't know (or maybe it's absolutely impossible to run it with Wine for some technical reason?).

RBNXI avatar Jul 03 '22 15:07 RBNXI

Linux/Mac builds are possible, they just have to specifically be built on Linux/Mac. I’ll probably setup GitHub actions at some point to create automated Linux builds

SpikeHD avatar Jul 04 '22 02:07 SpikeHD

at the moment, a few of cultivation's base logic (embedded in src-tauri) is platform specfiic and locked to windows. while it's in theory possible, it isn't well supported at the moment. (only a few methods have os checks)

it is worth noting that cross compatibility is planned (it's on our trello that we don't use)

KingRainbow44 avatar Jul 04 '22 16:07 KingRainbow44

afaik linux require some client patching to make it work

Fanixtar avatar Jul 12 '22 07:07 Fanixtar

afaik linux require some client patching to make it work

You mean to run Genshin on Linux? It doesn't need a patch, only a fix to some registry entries and a redirect to ip 0 for some calls. I mean, I can play Genshin in Linux, the problem is that Cultivation is not compatible with Linux.

RBNXI avatar Jul 12 '22 09:07 RBNXI

afaik linux require some client patching to make it work

You mean to run Genshin on Linux? It doesn't need a patch, only a fix to some registry entries and a redirect to ip 0 for some calls. I mean, I can play Genshin in Linux, the problem is that Cultivation is not compatible with Linux.

Don't they ban linux users? Don't tell me I could've had played all this time without my phone?

ChazyTheBest avatar Jul 13 '22 20:07 ChazyTheBest

Never heard of a linux user getting banned, I played linux myself for a while no problem

SpikeHD avatar Jul 14 '22 00:07 SpikeHD

In general, for most games, even with the most aggressive patches that forces the game to run without anticheat, the worst problem could be that you get kicked of the game some times because the game thinks that your files are corrupted, but you won't get ban if you don't cheat. In genshin I've never have the tiniest problem, and of course I'm not banned either.

RBNXI avatar Jul 14 '22 08:07 RBNXI

Sorry, I was half sleep and couldn't have been more ambiguous.

I may really be gullible. I read last year about having to disable anti-cheat in order to run GI on linux and also read comments of people getting banned and honestly I freaked out, didn't want to loose my ~~whale~~ dolphin (ish) account. You mean to say online games (the ones using anti-cheat) don't ban linux users? I mean the ones that require tampering with the game files. I've read this for some online games, but who knows if it's really true or not. Which is one of last topics I read a while ago about fully supporting gaming on linux, games that require kernel-level access, how it affects linux and its users and solutions such as providing access to some dummy interface.

I also play different online games on linux and it really feels good not having to rely on windows. This could only get better by getting full wine-wayland support :)

Ugh, truth is I don't really have enough experience with rust or I would've opened a PR to replace the windows specific code. Tauri looks like a nice toolkit, I'll have to give it a try some day, my javascript is getting rusty (coding as a whole lol).

ChazyTheBest avatar Jul 14 '22 12:07 ChazyTheBest

You mean to say online games (the ones using anti-cheat) don't ban linux users?

We don't have any firsthand accounts of it happening. This can change at any time and nobody here will be able to do anything for you if you do get banned. I would personally consider getting banned from this game to be a blessing, but I don't blame anyone for feeling differently about that.

It's against ToS, there's more than enough potential ways for them to detect it (normal operation for the Windows client expects remote code execution with admin access), and on the other hand they want paying customers to stay addicted and giving them some forced time off might wake them up to how pointless it all is.

Nobody here can guarantee anything will happen either way, and even if they claim they can, they'll disappear if you ever ask them to pay for a banned account ;)

Birdulon avatar Jul 14 '22 13:07 Birdulon

You mean to say online games (the ones using anti-cheat) don't ban linux users?

For MOST games, that's the case. And if the game is playable without any tinkering, it's probably just running the anticheat with Wine, so it should be legal and you shouldn't get banned. But if the game needs a patch that disables the anticheat, either you get automatically banned (if the anticheat is VERY aggressive, and I've never have this problem personally) or the game let's you play as long as you don't cheat. For genshin... I haven't heard anyone getting banned because of playing in Linux, and you have a Linux patch in the Lutris website, so there are a lot of people using it and no one has reported a ban yet. BUT, in the case of Grasscutter, even when no one should be banned for using it, it's recommended not to use the same genshin installation for playing in the official servers and Grascutter, just in case.

games that require kernel-level access

Like Valorant, right? I don't know if that would be possible in Wine, probably yes, at some point, but if that requires some kernel level patch FOR LINUX... I wouldn't play it.

I also play different online games on linux and it really feels good not having to rely on windows

Same :D

I would've opened a PR to replace the windows specific code

If you do so, you have my gratitude :D

RBNXI avatar Jul 14 '22 13:07 RBNXI

Has this progressed since then?

RBNXI avatar Aug 28 '22 07:08 RBNXI

Nope

SpikeHD avatar Aug 28 '22 08:08 SpikeHD

Ok, I compiled the launcher and it works (Arch Linux).

My next step would be patching the game once I download it from official launcher.

And final step would be trying to launch the game from Cultivation.

But of course there's no built-in Wine/Proton to launch this game for Linux, so, I might need some hints about which source file should I modify to add the ability to execute Wine/Proton by pressing "Launch" button.

If somebody is interested in cooperation to launch the game in Linux, feel free to DM me in discord: Алладин#8211

I hope soon I'll be able to send PR.

hetake2 avatar Sep 01 '22 08:09 hetake2

My next step would be patching the game once I download it from official launcher.

From my discoveries while working on #83, client patching seems to be completely broken currently. So I don't think you'd have much luck with that unless you fix it yourself.

I might need some hints about which source file should I modify to add the ability to execute Wine/Proton by pressing "Launch" button.

I'm not sure myself what files you'd need to modify, but it might be a good idea for when Linux supported is implemented to automatically patch the game for Linux support. If you need help with developing the patcher, feel free to contact me and I'll see what I can do when I get time.

4Benj avatar Sep 01 '22 12:09 4Benj

This is still actively being worked on, and I already have ideas on how I will handle it. The best way to get linux support is to just wait for me to finish it :P

SpikeHD avatar Sep 01 '22 15:09 SpikeHD

Sent a message to subscribe to this issue :floppy_disk:

Edit: oof, looks like i can subscribe w/o doing that, sry :pray:

ArjixWasTaken avatar Sep 16 '22 17:09 ArjixWasTaken

I'm so hyped for Linux Support, finally no VM needed

TropicLegend avatar Sep 19 '22 12:09 TropicLegend

If y'all need some base to work with, I can PM you some an anime game launcher

TropicLegend avatar Sep 19 '22 13:09 TropicLegend

But of course there's no built-in Wine/Proton to launch this game for Linux, so, I might need some hints about which source file should I modify to add the ability to execute Wine/Proton by pressing "Launch" button.

No need to reinvent the wheel, there are other projects that do exactly the same, launch a windows game using a wine prefix with dxvk, for example: https://github.com/goatcorp/FFXIVQuickLauncher

@SpikeHD If you need more ideas or just are curious, the ffxiv launcher does exactly this (except the patching).

ChazyTheBest avatar Sep 19 '22 16:09 ChazyTheBest

If you need specific examples for this game you can look at https://github.com/an-anime-team/an-anime-game-launcher or the GTK alternative written in rust https://github.com/an-anime-team/an-anime-game-launcher-gtk

Mar0xy avatar Sep 28 '22 16:09 Mar0xy

If you need specific examples for this game you can look at https://github.com/an-anime-team/an-anime-game-launcher or the GTK alternative written in rust https://github.com/an-anime-team/an-anime-game-launcher-gtk

It's specifically said that you should not send links to their project publicly. Please delete them.

TropicLegend avatar Sep 28 '22 19:09 TropicLegend

If you need specific examples for this game you can look at https://github.com/an-anime-team/an-anime-game-launcher or the GTK alternative written in rust https://github.com/an-anime-team/an-anime-game-launcher-gtk

It's specifically said that you should not send links to their project publicly. Please delete them.

I am one of the devs and admins so no I won't.

Mar0xy avatar Sep 29 '22 01:09 Mar0xy

Didn’t know about that. Thanks for making it.

TropicLegend avatar Sep 29 '22 06:09 TropicLegend

Besides a fully supported game launcher for Linux, is it possible to port Grasscutter patcher only and release it individually?

paletteOvO avatar Oct 14 '22 19:10 paletteOvO

Would it be possible to pack cultivation into flatpak? :O For steam deck! :)

GarnetSunset avatar Oct 15 '22 22:10 GarnetSunset

Yeah, that'd be awesome. Is there any update on Linux support for Cultivation?

TropicLegend avatar Oct 22 '22 14:10 TropicLegend

I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!

That's like saying an apple is not an apple, but it is the combination of an apple and a pear...

ArjixWasTaken avatar Mar 27 '23 16:03 ArjixWasTaken

That's a very bad analogy. Linux is a kernel. However, it would be more accurate to say that Linux is not the OS, but the several other free components are what make up the OS, and that they are all equally important, but that including them all in the name would make it a mouthful.

Still

Kernel = kernel + software

Is what this copypasta says

And then we have alpine Linux.

ArjixWasTaken avatar Mar 27 '23 16:03 ArjixWasTaken

I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called Linux, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!

Did you seriously revive a 6 months old issue just for saying Linux != GNU/Linux wtf

tamilpp25 avatar Mar 28 '23 06:03 tamilpp25

Can we please shut up about this, I don't want emails about this shit. @SpikeHD can you limit conversation on this please.

GarnetSunset avatar Mar 28 '23 14:03 GarnetSunset