Twenty years ago running java in the browser would have just been called "using the internet"
Twenty years ago running java in the browser would have just been called "using the internet"
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.
[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.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"?
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
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.
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!
Audio/video codecs are a great example.
Thanks for the nostalgia
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)
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
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.
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.
The fact that the file comes from Microsoft's server is one of those "technicalities" that you've heard about some people sometimes, but not usually, getting off on.
Microsoft will probably argue that the login prompt is a technological protection measure, which makes it blanket illegal to work around, due to the over-broad DMCA. That technicality is about as likely to work against you, as the "it's from their server so I didn't distribute it" technicality is to work for you...
Mandatory disclaimer: I am not a lawyer and this is not legal advice.
You are probably thinking about our independent x86 virtualization product CheerpX (https://cheerpx.io)
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.
A 10 times hit compared to a native C implementation on performance doesn't really matter anymore, but a compounded 10x10 times will.
Hey I saw a typo on https://cheerpj.com/cheerpj-core-licenses/, it says "liencesees" halfway the page
Right now I am playing Enigmatica 2: Expert, which is a mod pack for Minecraft 1.12
Today I need to teleport to my spaceship which is in orbit around a distant planet and then fly it back to our solar system and visit Mars, as I have neglected to obtain materials from Mars which I need to build this end game item I'm working on.
It's still recognisably Minecraft even though I'm working with a 9x9 crafting grid. It has internal consistency, dragons hoard rare metals, Plutonium is a rare metal, therefore make sure to bring hazmat handling equipment if you're about to plunder a dragon's hoard.
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.)
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.
Also you should probably advice mojang to put some authentication on their download URLs, which have been publicly documented for more than a decade by now.
There is no login prompt. This project is over a year old. You are just misinterpreting the situation. This is like threatening to sue Mozilla because you can use Firefox to click on a download button, or Microsoft because double clicking on an exe on Windows runs the application.
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.
huh. Minecraft is the taylor swift of video games. the last big star before big tech took over discovery and access for an industry.
Like you say, not very relaxing.
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.
https://wasmlinux-demo.pages.dev
In other words, using WASM as if it were the CPU architecture in the VM.
It's fundamentally just a big array of one entry per block space. It was never too big for an average computer to handle - otherwise Minecraft wouldn't have been able to exist yet (maybe that's why it didn't exist until the time that it did) but they've gotten a lot less efficient since then, in the name of flexibility.
Before Minecraft existed I played Cube 2 on "coop edit" mode. Its world structure is an optimization you might be interested in: it represents the whole game world (of fixed size) as an octree. So the map starts as a node with 8 child slots (one for each corner of a cube); each is either completely solid, completely empty, or another node, recursively down to some maximum depth. Therefore Large empty areas and large solid areas are stored in about the same amount of space as small empty areas and small solid areas.
Consent is everything?
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.
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.
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).
DRM-free Minecraft launchers exist, mostly forks of MultiMC5. Now if only offline installers existed...
Good to know that they're finally considering performance fixes but obviously involves moving to 1.21.5 and until there's mods to disable the bits I don't like, I'll be sticking with 1.20+mods.
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.