PhoenicisOrg / scripts

Phoenicis scripts
GNU Lesser General Public License v3.0
64 stars 49 forks source link

Request: Add Hearthstone running natively on linux #924

Closed Kreyren closed 5 years ago

Kreyren commented 5 years ago

HEARTHSTONE RUNNING NATIVELY ON LINUX!

WARNING - LICENCING CONFLICT!!

Providing compiled binaries is agains blizzard's copyright, we are providing script that compiles the binaries on the user-side which are HUGE! If copyright is resolved we can provide just the hearthstone release for linux.

This script will only compile those from source on the end-user machine.

DESIGN

PROOF OF CONCEPT

image

image

image

image

https://youtu.be/_RGTCceQGac?t=633


RELEVANT

https://github.com/HearthSim/keg

ngdp fetch-all
ngdp inspect hsb
ngdp install hsb 30103 --tags OSX --tags enGB --tags Production ./
diff --git a/bin/ngdp b/bin/ngdp
index 96783bf..28caa6a 100755
--- a/bin/ngdp
+++ b/bin/ngdp
@@ -556,7 +556,7 @@ def inspect(ctx, remote):
 @click.option("--only", multiple=True)
 @click.option("--root/--no-root", default=False)
 @click.pass_context
-def install(ctx, remote, version, outdir, tags, show_tags, dryrun, only, root):
+def install(ctx, remote, version, outdir, tags, show_tags, dry_run, only, root):
        # version can be a BuildName, BuildID or BuildConfig
        try:
                build_config_key, cdn_config_key = ctx.obj.keg.db.find_version(
@@ -607,7 +607,7 @@ def install(ctx, remote, version, outdir, tags, show_tags, dryrun, only, root):
                        root_size,
                ))

-       if dryrun:
+       if dry_run:
                table = ctx.obj.tabulate(
                        entries, headers=("Filename", "Digest", "Size")
                )
@@ -626,7 +626,7 @@ def install(ctx, remote, version, outdir, tags, show_tags, dryrun, only, root):
        if not encoding_file:
                raise click.ClickException("No encoding file found. Cannot proceed.")

-       if dryrun:
+       if dry_run:
                return

        archive_group = build.get_archive_group()
diff --git a/keg/cdn.py b/keg/cdn.py
index 065d9f9..d21c946 100644
--- a/keg/cdn.py
Kreyren commented 5 years ago

RESERVED

Kreyren commented 5 years ago

RESERVED

Kreyren commented 5 years ago

Ping @ImperatorS79, because i think he will be interested in this :p

Kreyren commented 5 years ago

@plata Any idea how we can work around the copyright issue?

ImperatorS79 commented 5 years ago

I do not understand what is the purpose of this. Hearthstone is running fine under wine currently. (AFAIK) I also do not see why you say it is running natively while it is definitely not.

Kreyren commented 5 years ago

I also do not see why you say it is running natively while it is definitely not.

it is running natively take a closer look :p I've exported the libs to linux

Hearthstone is running fine under wine currently. (AFAIK)

Boring

ImperatorS79 commented 5 years ago

I still do not understand. This is an implementation of some kind of download protocols. What does it have to do with Hearthstone ? Even if Hearthstone use it, a game is more than a download protocol.

Kreyren commented 5 years ago

@ImperatorS79 Experimenting with it atm will provide more info then.. practically we are using keg to fetch all required files to make export for linux compatibility, but the issue is that those are physicall property of WeDontCareAboutLinuxzzard so we can't redistribute them without some workarounds.. -> Currently we are fetching 80GB of garbage from which we get 2,3 GB of libs

plata commented 5 years ago

I don't get what this is all about. Please be more precise about the actual content and how it fits to Phoenicis. Also, note that none of us is a lawyer. So if there is (potential) copyright infraction, better forget about it.

Kreyren commented 5 years ago

I don't get what this is all about. Please be more precise about the actual content and how it fits to Phoenicis.

Exporting linux compatibility using phoenicis for Game that doesn't provide native export on linux using phoenicis and procedure that can be utilized for other unity-based games to provide required libs and executables for linux to work without compatibility layers.

Also, note that none of us is a lawyer. So if there is (potential) copyright infraction, better forget about it.

i study law that's close enough :rofl: Investigating the options atm so that end-users woudn't need to download 80GB of stuff

plata commented 5 years ago

Like @ImperatorS79 pointed out, Hearthstone is running fine with Wine. Therefore our users will not gain anything if we implement it in the suggest way (apart from the fact that this has a lot of open questions).

Kreyren commented 5 years ago

They will gain less deps needed to run the game + it runs natively.. Note that we are using said protocol to fetch Hearthstone that is already made on linux from blizzard. -> Re-open

plata commented 5 years ago

Nothing of this will make a functional difference for the user. Also note that it's not the purpose of Phoenicis to run native software.

Kreyren commented 5 years ago

it will make a huge difference for the end-user and users in long run since we can make most of the unity games work this way.. -> More should be supported to encourage devs to support linux natively.

+ insane to not support native apps.

ImperatorS79 commented 5 years ago

@Kreyren I do not even understand how it works, so I propose something: when you fully understand how it works, have something that actually works, and you can explain it perfectly, feel free to reopen this issue to present the idea (also be sure of the legal part) so that we could have a new look at it.

Kreyren commented 5 years ago

fair enough i have like 70% done atm will re-open once finished, busy atm