This looks amazing, great work! A web-based "Minecraft" has great potential, in my opinion, and has long been a dream of mine. My humble attempt at such a project: https://satoshinm.github.io/NetCraft/ (2017) - a port of Michael Fogleman's Craft, a simple Minecraft clone written in C, ported to the web using WebAssembly and Emscripten. It works, reasonably well (after a few small enhancements/fixes to Emscripten) but…
Minetest for the Web
21–30 of 42 posts
Re: Minetest for the Web
#22This looks amazing, great work! A web-based "Minecraft" has great potential, in my opinion, and has long been a dream of mine. My humble attempt at such a project: https://satoshinm.github.io/NetCraft/ (2017) - a port of Michael Fogleman's Craft, a simple Minecraft clone written in C, ported to the web using WebAssembly and Emscripten. It works, reasonably well (after a few small enhancements/fixes to Emscripten) but…
I guess you never played the early alpha versions of Minecraft. It used to run as a Java applet back when that was still kind of a thing. It ran just fine in the browser 13 years ago. Of course, you'd have to put in a bit of effort to be able to run an applet today, as that tech has been shut down due to security issues quite a while back.
Re: Minetest for the Web
#23Hi all, I made this. Surprised by the sudden interest. It has been live but unchanged for 6 months. There's an updated launcher. It's not finished yet, but it is nicer for exploring single-player community-made games: https://minetest.dustlabs.io/ez/ I'm not actively working on this, as I have concluded it is not (yet) possible to create a good web experience. There are problems with storage, network, keyboard side e…
You can intercept and cancel the standard browser events and therefore prevent closing the tab for example with Strg W.
Storage option on the web for more data is indexedDB. It is quite fast and stable by now.
What kind of network issues do you have?
But general performance I would not suspect to go drastically up anytime soon, since you already use wasm. (Unless you find some emscripten flags, that speed up things, but this is not my area)
Re: Minetest for the Web
#24Hi all, I made this. Surprised by the sudden interest. It has been live but unchanged for 6 months. There's an updated launcher. It's not finished yet, but it is nicer for exploring single-player community-made games: https://minetest.dustlabs.io/ez/ I'm not actively working on this, as I have concluded it is not (yet) possible to create a good web experience. There are problems with storage, network, keyboard side e…
Neat project! And thanks for the explanation :-) Do you think the browser issues are being addressed already or will be addressed soon? or do you think it's a low priority for them? I would think enabling complex WASM apps would be a priority (especially for Google/Chrome) but you never know.
The UX issues do seem to be stubbornly persistent though. I ran into the same issues long ago porting games with NaCl and asm.js. I'm not sure what is preventing progress there.
Re: Minetest for the Web
#25Hi all, I made this. Surprised by the sudden interest. It has been live but unchanged for 6 months. There's an updated launcher. It's not finished yet, but it is nicer for exploring single-player community-made games: https://minetest.dustlabs.io/ez/ I'm not actively working on this, as I have concluded it is not (yet) possible to create a good web experience. There are problems with storage, network, keyboard side e…
"keyboard side effects(e.g. Ctrl, W), " You can intercept and cancel the standard browser events and therefore prevent closing the tab for example with Strg W. Storage option on the web for more data is indexedDB. It is quite fast and stable by now. What kind of network issues do you have? But general performance I would not suspect to go drastically up anytime soon, since you already use wasm. (Unless you find some…
This port uses a proxy for networking, as the main game uses UDP-based networking [2]. Perhaps it would be possible to upstream basic WebSocket/WebRTC packet-wrapping support to the servers in the main Minetest project?
I am also curious about the storage issues.
[1]: https://source.chromium.org/chromium/chromium/src/+/main:chr...
Re: Minetest for the Web
#26Wait... this is amazing. Is there Lua addon support?
All Minetest games consist purely of Lua, so of course there is. I don't know if there's a way to "sideload" games and mods into the browser storage but installing them from ContentDB works.
Re: Minetest for the Web
#27Earlier quoted context omitted.
"keyboard side effects(e.g. Ctrl, W), " You can intercept and cancel the standard browser events and therefore prevent closing the tab for example with Strg W. Storage option on the web for more data is indexedDB. It is quite fast and stable by now. What kind of network issues do you have? But general performance I would not suspect to go drastically up anytime soon, since you already use wasm. (Unless you find some…
You actually can't override a few of the events such as Control-W [1], however that could easily be fixed by using an alternate keybind for the game instead. This port uses a proxy for networking, as the main game uses UDP-based networking [2]. Perhaps it would be possible to upstream basic WebSocket/WebRTC packet-wrapping support to the servers in the main Minetest project? I am also curious about the storage issues…
I definitely did overwrite it in my app, but I just checked and remembered, that you also have to be in full screen mode.
Re: Minetest for the Web
#28Hi all, I made this. Surprised by the sudden interest. It has been live but unchanged for 6 months. There's an updated launcher. It's not finished yet, but it is nicer for exploring single-player community-made games: https://minetest.dustlabs.io/ez/ I'm not actively working on this, as I have concluded it is not (yet) possible to create a good web experience. There are problems with storage, network, keyboard side e…
"keyboard side effects(e.g. Ctrl, W), " You can intercept and cancel the standard browser events and therefore prevent closing the tab for example with Strg W. Storage option on the web for more data is indexedDB. It is quite fast and stable by now. What kind of network issues do you have? But general performance I would not suspect to go drastically up anytime soon, since you already use wasm. (Unless you find some…
For storage, a bare minimum Minetest world needs 1GB, grow-able to multiple gigabytes. I don't think IndexedDB is meant for that.
The network issues are specific to Firefox. Multiple threads in Minetest do network I/O. In Chrome this works fine, but on Firefox only the main thread can do I/O, and so network requests are proxied to the main thread (this is done transparently by Firefox, using a mutex internal to firefox). Unfortunately this arrangement leads to a deadlock given the particular way it is used.
Re: Minetest for the Web
#29Earlier quoted context omitted.
"keyboard side effects(e.g. Ctrl, W), " You can intercept and cancel the standard browser events and therefore prevent closing the tab for example with Strg W. Storage option on the web for more data is indexedDB. It is quite fast and stable by now. What kind of network issues do you have? But general performance I would not suspect to go drastically up anytime soon, since you already use wasm. (Unless you find some…
You actually can't override a few of the events such as Control-W [1], however that could easily be fixed by using an alternate keybind for the game instead. This port uses a proxy for networking, as the main game uses UDP-based networking [2]. Perhaps it would be possible to upstream basic WebSocket/WebRTC packet-wrapping support to the servers in the main Minetest project? I am also curious about the storage issues…
Re: Minetest for the Web
#30https://minetest.dustlabs.io/mt/minetest.js(1) : Uncaught RangeError: WebAssembly.Memory(): could not allocate memory