Vanilla Minecraft is known for being awful for FPS even outside of a browser. There's a reason most people use a whole slate of performance mods just to get actual decent performance.
(I've got a Ryzen 7 with a 3080 and it would frequently hover between 40-50fps even with graphics turned down. Install the performance mods and I can get >120fps with fancy graphics and shaders.)
This one: https://bugs.mojang.com/browse/MC/issues/MC-170134
I now never see below 60 fps when for all my years of playing this bug would bring down my FPS to the teens or 0 all the time no matter what hardware.
A 10 times hit compared to a native C implementation on performance doesn't really matter anymore, but a compounded 10x10 times will.
It's literally just downloading the client from https://piston-data.mojang.com/v1/objects/4a2fac7504182a97dc... where mojang makes it publicly available.
It's an older version so it's not linked on their website anymore, but you can find the same download link on the wiki: https://minecraft.wiki/w/Java_Edition_1.2.5
What makes you think they will have "lawyers in their future"?
CheerpJ is a WebAssembly-based JVM that can run unmodified Java 8 and Java 11 applications. Java 17 will be supported later in year.
I am the lead developer of CheerpJ and CTO of Leaning Technologies. AMA.
Hey I saw a typo on https://cheerpj.com/cheerpj-core-licenses/, it says "liencesees" halfway the page
The issue here is that there is very little Java in JavaFX, it's mostly native C++ code. This makes it actually quite similar to the LWJGL library used by Minecraft.
Our plan is to use for JavaFX the same technology we have developed for LWJGL.
They will allow self-hosting and will be priced on a per application / per website basis. They will be priced to be affordable and ensure that CheerpJ enjoys a wide reach.
If you are interested before the release, please do get in touch (info@leaningtech.com).
Twenty years ago running java in the browser would have just been called "using the internet"
But I don't remember Applets being particularly slow even back then, if you had a decent internet connection and they were written by a decent SDE
An example of full circle would be if wasm apps needed a browser extension so that they could access APIs not allowed by the browser.
The JVM originally also had the goal of providing a security boundary, and even had a relatively complicated permissions/security model enforced via call stack inspection.
That security model was ultimately too complicated for developers to work with, but I don't think the sandbox itself was particularly insecure.
Audio/video codecs are a great example.
Thanks for the nostalgia
That said, it has been a little sad digging into the current state of Java vs Bedrock, Bedrock iPad vs Bedrock Switch. The platform ubiquity is wonderful and the tradeoffs are what they are. But if folks were able to create a touch-capable web-powered Java Minecraft that would be a great fit for the iPad.
Now, it doesn't even use block IDs any more. It uses one whole object per block type, one pointer to one of those objects per block space, and has a lot more block types. The on-disk format stores the entire string name of the block, once per 16x16x16 region it occurs in.
Notch (the creator of minecraft) was angry someone was posting his game online for free. He emailed the owner, Dylan, of the site threatening legal action.
Instead of going down a legal route, Dylan challenged him play a game of quake3 to settle the dispute.
If notch won, Dylan would take the site down. If Dylan won, notch would would leave him alone and let him keep hosting the site.
Notch agreed, won the match, and Dylan followed the promise and took it down forever!
Small correction, Dylan always planned to take the site down. They were playing for Minecraft capes[0] for him and his two teammates. The original livestream of the match is still up on Twitch also.[1]
[0] Cosmetics that used to be very rare and only given out by devs or at MineCon
Like you say, not very relaxing.
Why is this so exciting to me? I started playing Minecraft back in the Java modding days, which really picked up steam around 1.2.5 and, by my estimations, peaked around 1.7.10. There was a veritable cornucopia of mods widely available, to enhance the game in a plethora of ways. I modded my game so hard I undoubtedly ran more third-party code than first-party/Mojang. Minecraft was a platform for creative expression, freeform and unconstrained. The golden age of Minecraft modding!
But it wasn't all unicorns and rainbows. There was a dark side of modding: the ease of use, or lack thereof in getting mods setup. Modpacks helped, but you still had to run untrusted code, and you still had to have a compatible PC. This is what (nearly) killed Minecraft for me. I wanted to play with my friend, but his PC had Windows upgraded and lost Java or OpenGL compatibility, and he eventually dropped his desktop and switched to tablets, phones, and consoles. My highly curated developed modded technical world became inaccessible.
Contrast this unfortunate situation with the browser: with "load and go" functionality as Douglas Crockford calls it, you can just visit a website and play, provided sufficient specs. What if we could play modded Minecraft (preferably 1.7.10), with all the mods to our hearts content, right in the browser, accessible to anyone?! And anyone could develop and distribute their own mods without concern, being safely executed within the browser sandbox.
I don't know how close Eaglercraft is to this utopia, but I find the possibility very enticing.
You are probably thinking about our independent x86 virtualization product CheerpX (https://cheerpx.io)
https://wasmlinux-demo.pages.dev
In other words, using WASM as if it were the CPU architecture in the VM.
https://www.youtube.com/watch?v=7JUs4c99-mo
In it, they showed a functional demo of porting an OSS multiplayer C++ game entirely to the browser with WASM.
Afterwards, I read some of their engineering content and was blown away.
It's been fascinating to watch the CheerpX/CheerpJ progress from afar over the years.
Link to our blog, we try to regularly publish high quality content: https://labs.leaningtech.com/blog
The trickiest issue is input, since the "look around with your mouse" interaction maps very poorly on a mobile platform where "mousemove" implies touching / clicking.
We plan to eventually figure out a mobile-optimize UX, but we will most likely prioritize improving the performance first.
[failed to get system properties (java.lang.RuntimeException: No OpenGL context found in the current thread.)]
Applets were a real vibe. The gradient-blue UI that came out of the box is true nostalgia.In middle school, in an attempt to get around the school firewall, I copied the HTML code from that website to my own to play Minecraft at school. Since my domain wasn't on the blocklist, it worked! But when my friends started using it to play, even after they hadn't bought the game, I resolved to add a login wall.
I built a backend proxy in PHP that would POST their credentials to the Minecraft API to make sure they had purchased the game. I still think it's funny to think I had no ethical qualms about circumventing the school firewall, but piracy was where I drew the line.
https://map.realismc.com/#world:-87986:65:-25312:0:-0.01:1.5...
This is a world featuring llm powered players that make their own plans and constructions (using the terminal)