Call for testing Minecraft

Description

Minecraft, unless you’ve been living under a rock, you have probably heard of this :wink:

It’s a proprietary game where you punch trees, collect resources, build houses and try to survive.

How To Install

Note: To play Minecraft you need a Mojang account which you can sign up for at the Mojang Store (basically you need to have bought the Java edition at some point). If you haven’t done that, or aren’t prepared to do that, then this snap is probably not for you (maybe get your 8 year old kid to test instead :wink: ).

snap install minecraft --candidate

Notes

  • I have currently only published an amd64 (64-bit Intel) build of Minecraft so far.
  • This will install Minecraft and the Oracle JRE as a snap. That means it’s independent of any existing JRE/JDK or Minecraft install.
  • As it’s a snap, it won’t have access to your ~/.minecraft directory, so won’t see or interfere with existing maps, mods or other things lurking in that directory.
  • The .minecraft directory for this snap can be found in ~/snap/minecraft/common in case you want to add mods/themes etc

How to run

To ensure you’re running the snapped version (as opposed to any other version you may have installed) while testing, you can either:-

snap run minecraft

or

/snap/bin/minecraft

But if you have no other Minecraft packages or launchers installed, you should just be able to click the familiar icon in your desktop.

image

Requested setups

As usual we’re looking for as wide a pool of testing as possible! I’ve tested on Intel integrated graphics and a multi-screen nVidia proprietary setup.

I’ve not tested on AMD graphics cards, wayland or non-Ubuntu systems (yet). So feedback welcomed there.

Known issues

  • Theme support in snaps causes the window to look like a Windows 3.11 / vanilla Java app on some platforms, and in some cases for the latest news in the launcher to not appear, but the game runs.
  • Links don’t open - so clicking ‘Register’ doesn’t work, and the links to blog posts on the right of the launcher don’t work
  • The snap is a little bulky (246MB). I’m looking at ways to slim it down

Reporting feedback

Please report on this thread which I’ll monitor for issues and suggestions.

6 Likes

Heyo! Things seem to be shaping up pretty well :slight_smile: A few hiccups when interacting with links inside the launcher do not appear to work ( log: Ubuntu Pastebin ), but logging in does work and I don’t seem to get any authentication or access errors of any sort. However, the launcher display (for game updates and links, etc) appears blank (as listed in the thread)- screenshot: image

My system: Ubuntu Pastebin

if helpful, my full test-run tty output. this was also reported in telegram.
this run only shows the register failure (Alan noted it in known issues)

[00:29:47 INFO]: Loaded 1 profile(s); selected ‘(Default)’
[00:29:51 ERROR]: Failed to open link https://account.mojang.com/register
java.lang.reflect.InvocationTargetException

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:1.8.0_151]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [?:1.8.0_151]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [?:1.8.0_151]
Caused by: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!

dell 755 (old, dual core 2), old radeon [rv610/hd2400] video, firefox is default browser but I’m running debian 9 (this box is under a ceiling fan!)

1 Like

The Caused by: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform! error seems to be seen in other applications too. I’ve seen some comments to suggest that it’s not a well supported mechanism to launch browsers on Linux. Will need some further research there.

2 Likes

(I’m fashionably late to reply, as always.) Yeah, this would appear to be an issue. I remember having worked with some Minecraft mods in the past that needed to call the browser when linking to wikis and info pages, and Java typically threw fits when it didn’t have the ability to call a browser (not directly, but via BROWSE, as it shouts in the terminal :stuck_out_tongue: ). NOTE, that I’ve launched the game, and links inside of the game (can be accessed in the chat) do not open the browser, and offer the same error. I’m not entirely sure how Snaps work in terms of defining environments, so I wouldn’t likely be much help beyond suggesting that this issue is due to the runtime being separated from the rest of the system somehow, it’s not pointing where it should.

1 Like

Brilliant workx @popey – What would be even more sterling - would be if the program was included in the Education subcategory aswell, but fairplay if you disagree.

1 Like

Haha. Minecraft is educational? Reminds me of the time I asked my mum to buy me a Sinclair Spectrum for my homework. :wink:

5 Likes

Seems fine, little slow though

Tested this on 17.10 with the nouveau driver. Works great! I even installed some mods, which worked just fine.

1 Like

@troop129 slow to launch or slow during play?

Slow to launch, but i realized that I am running out of space, program’s fine.

Great to see Minecraft as a snap! Works perfectly here on Ubuntu 17.10 on Intel integrated graphics in the Wayland session as well as in the X11 session. I’ve got one (possibly stupid) question: since Minecraft and the Oracle JDK/JRE are proprietary, is this snap endorsed by Mojang? Don’t you have to accept a license agreement when installing the Oracle JDK/JRE? Thanks a lot :slight_smile:

Thanks for testing @TimSueberkrueb!
No, like many snaps in the store, it’s not (currently) “endorsed” by Mojang (yet). No, you don’t need to.

Ok, I think I fixed that bit - or at least made it suck less. This screenshot is on Debian 9. Just snap refresh minecraft to get the updated package.

Next to fix is the link-clicking issue which will be trickier!

Also, the fonts could be improved, but that’s lower priority I think.

Thanks for testing and feeding back everyone!

Ok. Hacking away at this for a couple of hours and I’m stuck.

It seems Java does this browser launcher in the Desktop.java which somehow decides that whatever I’m running isn’t GNOME (or Window) so it refuses to launch the browser. This seems to have bitten other people too with no clear fix.

Things I have tried to trick it (which didn’t work).

  • Create a shell script called gnome-www-browser which is just a shell script wrapper around xdg-open
  • Create a mimeapps.list in ~/.local/share/applications telling it to use browser.desktop for http and https links. browser.desktop being a desktop file I made which launches gnome-www-browser created above.
  • Set DESKTOP_SESSION=gnome, XDG_SESSION_DESKTOP=gnome and XDG_CURRENT_DESKTOP=GNOME
  • Stage various gnome libraries including libgnome2-0, libglib2.0-0, libgnome-2-0 and gvfs-libs

I am a bit perplexed how to coerce Java into thinking this is a gnome environment inside the snap and to just do whatever it needs to do to launch the browser.

Suggestions welcome!

(getting dangerously close to rebuilding openjdk and patching out this stupid behaviour)

Looked into this a bit further and it required digging into the Java runtime. Basically openjdk is doing a dlopen() on gnomevfs-2 (soname libgnomevfs-2.so.0).

It explicitly wants the symbol gnome_url_show in another library. (after it calls gnome_vfs_init in gvfs): libgnome-2.so.0

In your snap you’ll need to ensure you have these legacy libraries. You’ll need a writable HOME and .gnome2 directory within the snap environment too. To help debug this, set G_MESSAGES_DEBUG=all in the environment to check what gvfs + gnome are “up to”.

Now, if all that is still being an idiot, I can quite happily write you a fake-library for the JDK to use to provide the aforementioned symbols, but call an arbitrary command instead. :slight_smile:

1 Like

Yeah, I think I had everything in place in terms of gnome parts. I’ll certainly confirm later today.

I might have to take you up on that offer though :slight_smile:

Heyo! Doing some more fiddling with this. Probably not priority, but something that is probably good to bring up. I’ve not found any way to interact with the .minecraft directory itself. Looking under ~/snap and further, of course. Listed directories appear empty, making interacting with the files themselves somewhat impossible. Installing mods (even those with installers like Optifine) is not possible without being able to point to, and interact with the client directory. Resource packs also seem to be affected by this. Being unable to place a resource pack in the proper directory inhibits their use. I’ve tried clicking on the button in the client that opens the resource pack directory, but this does not work.

Thanks for testing everyone. I’ve pushed builds to the stable channel with the following changes. Many thanks to @jdstrand for helping me debug some silly Java issues from the past.

  • Switched from Oracle JDK to OpenJDK (makes it easier to build)
  • Added further stage packages to ensure clicking links work in most desktops
  • Some desktops (notably KDE) seem to be unable to open links (so registration and tumblr links) inside the Minecraft client
  • Added an i386 build for those people clinging onto their 32-bit systems :slight_smile:

Note that the ‘home’ directory for the game is in ~/snap/minecraft/common so the .minecraft directory is $HOME/snap/minecraft/common/.minecraft where you can put your mods etc. (hope that answers your question @Schyken).

Have fun and remember, don’t dig straight down (or indeed up).

1 Like

Wonderful! I’ll get “testing” or maybe that’s just playing… :blush::stuck_out_tongue_closed_eyes: