4 ms·
Hi 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
by paradust 4y ago
Hi 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/ 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 effects (e.g. Ctrl, W), concurrency, and performance that need to be addressed by browser vendors. I highly recommend installing the native Minetest!
- freedomben 4y agoNeat 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.
- paradust 4y agoThere is definitely a tremendous amount of work going into emscripten/wasm. Minetest is multi-threaded, and so relies on SharedArrayBuffer which only became available in 2020. 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.
- mysterydip 4y agoTwo of the browsers are owned by the same companies that control two of the walled-garden app stores. The better the UX is for web apps, the less need people have to jump through app store hoops.
- satoshinm 4y agoI sympathize with the persistent UX issues with web-based voxel engines. I think what is really needed is a UI/UX expert (unfortunately not me) willing to push forward and drive fixes across the entire stack: the game engine, Emscripten, and even investigating and submitting fixes/enhancements to web browsers - owning the complete experience. For what it's worth, when porting NetCraft I did make an effort to isolate, fix and upstream various UX fixes to Emscripten: https://github.com/satoshinm/emglfwbugs https://github.com/satoshinm/emglfwbugs with _some_ success; the developers of Emscripten are happy to accept pull requests. But I agree there's a lot of papercuts, and tracking down each of the usability nits could essentially be a full-time job... For the keybinding problem, I've found using backquote/tilde key for escape can sufficiently workaround the un-interceptable escape key. It also works well on mobile browsers without escape keys. But the problems with multi-gigabyte world storage, multi-threaded networking, SharedArrayBuffer, may require more invasive architectural changes. At this point, maybe a rewrite focused on web support from the beginning would easier than a port? But _a lot_ of work was put into Minetest over the years, it is great having the library of mods already developed for Minetest, available on the web. Although the same could be said for Minecraft itself. In any case, thank you for your work porting Minetest to the web. I appreciate it moving the needle in the "web-based Minecraft clone" niche. Even if it may not the be all to end all, hopefully the UX blockers can be resolved, fit and finish, if not in Minetest itself maybe it will inspire others to create something anew with lessons learned from your port. One step closer to the metaverse.
- hutzlibu 4y ago"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 emscripten flags, that speed up things, but this is not my area)
- tech234a 4y agoYou 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. [1]: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_command_controller.cc;l=246-304;drc=bca7e40f1be3d84ec01361cc3b6764d346b480f2 https://source.chromium.org/chromium/chromium/src/+/main:chr... [2]: https://dev.minetest.net/Engine/Network_Protocol https://dev.minetest.net/Engine/Network_Protocol
- hutzlibu 4y ago"You actually can't override a few of the events such as Control-W" I definitely did overwrite it in my app, but I just checked and remembered, that you also have to be in full screen mode.
- paradust 4y agoWebRTC data channels would be ideal, so that clients can connect directly to servers (or at least regional proxies) in a UDP-like way. Vanilla minetest would need to include an WebRTC endpoint for this to become universally available. There are lots of details that would need to be worked out.
- harrisi 4y agoAlthough the support isn't amazing [1], I believe you can capture C-w and friends [2]. [1]: https://caniuse.com/mdn-api_keyboard https://caniuse.com/mdn-api_keyboard [2]: https://developer.mozilla.org/en-US/docs/Web/API/Keyboard_API https://developer.mozilla.org/en-US/docs/Web/API/Keyboard_AP...