Skip to content
Sari la conținut
Înapoi la Blog
Joaca Minecraft in Browser-ul tau cu prismarine-web-client

Joaca Minecraft in Browser-ul tau cu prismarine-web-client

Alexandru Maftei
Alexandru Maftei
@ice
Actualizat
29 vizualizări
Răspuns rapid:prismarine-web-client este un client Minecraft autentic care rulează în browser și se conectează la servere Minecraft reale, fără să instalezi jocul local. Folosește un proxy WebSocket care traduce traficul de browser în TCP, astfel că serverul vede o conexiune normală de client.
TL;DR:prismarine-web-client este un client Minecraft open-source bazat pe browser care se conecteaza la servere reale prin intermediul unui proxy WebSocket. Construit pe mineflayer si prismarine-viewer, functioneaza in Chrome sau Firefox fara a necesita instalarea jocului.
GitHub - Proiect comunitate Minecraft

prismarine-web-client (PrismarineJS/prismarine-web-client)

Client Minecraft web rulandu-se in browser-ul tau

Ofera stea pe GitHub ↗
⭐ 539 stele💻 JavaScript📄 MIT

Ai vrut vreodată sa te alături unui server Minecraft dintr-un Chromebook de scoala, un laptop imprumutat, sau orice calculator care nu are jocul instalat? prismarine-web-client rezolva exact problema aceasta. Ruleaza un client Minecraft real in fila de browser si se conecteaza la servere Minecraft actuale, fara a fi necesara instalarea locala pentru jucator.

Ce este prismarine-web-client

Aceasta nu este un clone simplificat 2D sau o aproximare din era Flash a Minecraft. Este un client autentic bazat pe browser, construit pe doua biblioteci bine cunoscute din PrismarineJS: mineflayer se ocupa de protocolul Minecraft si logica clientului, in timp ce prismarine-viewer reda lumea 3D. Impreuna fac ceva care chiar functioneaza.

Proiectul are 539 stele pe GitHub cu o licenta MIT, ceea ce inseamna ca este liber de utilizat, bifurcat si modificat dupa dorinta. Este scris in JavaScript, ceea ce face posibil chiar rularea in browser. Ecosistemul PrismarineJS exista de ani de zile si alimenteaza o multime de instrumente de automatizare si boti din comunitate, deci aceasta nu este un experiment de weekend cu o lant de dependente rupte.

Exista o demonstratie activa gastuita pe GitHub Pages. Deschide-o in Chrome sau Firefox pe desktop chiar acum si conecteaza-te la un server fara a instala nimic. Acesta este cel mai simplu caz de utilizare si, sincer, o modalitate buna de a intelege cu ce te ocupi inainte de a te deranja sa faci autohostare.


Tehnologia din spatele acestuia - si de ce este desteapta

Aici devine cu adevarat interesant. Protocolul Minecraft ruleaza pe TCP, iar browserele pur si simplu nu pot deschide socketi TCP bruti. Atunci cum se conecteaza un client bazat pe browser la un server Minecraft real?

Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori

Raspunsul este un strat proxy pe care pachetul il ruleaza local. Browser-ul se conecteaza la acest proxy prin WebSocket. Proxy-ul apoi traduce acel trafic WebSocket in TCP si trimite totul serverului Minecraft la care se tinteste. Din perspectiva serverului, este doar un alt client care se conecteaza normal. Nu stie ca faci asta dintr-o fila de browser.

Aceasta arhitectura este desteapta pentru ca codul clientului ruleaza in mare parte in browser-ul tau (logica mineflayer, redarea 3D), in timp ce proxy-ul se ocupa de singurul lucru pe care browserele nu-l pot face fundamental. Este o diviziune curata. Proxy-ul este usor si este inclus in pachetul npm, deci nu este nimic extra de configurat separat.

Merită notat: cineva trebuie sa ruleze acel proxy undeva. Demonstratia gastuita are una ruleaza pe server. Pentru autohostare, ruleaza pe propria ta masina.


Configurarea pentru tine

Daca ai Node.js instalat, toata configurarea dureaza aproximativ un minut. Instaleaza pachetul la nivel global si porneaste-l:

Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
code
npm install -g prismarine-web-client
prismarine-web-client

Dupa aceea, deschide http://localhost:8080 in browser. Vei vedea un ecran de conexiune care te intreaba adresa serverului si un nume de utilizator. Introduce-le si apasa conecteaza-te.

Cateva lucruri de inteles inainte de a incepe. Aceasta porneste serverul proxy pe masina locala. Oricine pe aceea masina poate sa-l foloseasca prin localhost, dar nu va fi accesibil pentru altii decat daca expui portul. Daca vrei sa-l impartasesti cu prietenii de pe aceeasi retea locala, ar trebui sa legi la IP-ul LAN si sa se conecteze la adresa masinei tale pe portul 8080. Posibil, dar necesita cunostinte de retea de baza.

Pentru dezvoltare sau daca vrei sa te adanci in cod, cloneaza depozitul si ruleaza:

code
npm install
npm start

Aceasta porneste express si webpack in modul watch. Salveaza un fisier, se reconstruieste in cateva secunde, si reimprospatezi pentru a vedea modificarile. Proiectul expune, de asemenea, o mana de globale utile pe obiectul window pentru depanare, inclusiv bot, viewer, si worldView. Daca deschizi DevTools si tastezi bot.chat('test') in consola, poti folosi chatul in joc direct de acolo. Asta e o atingere frumoasa pentru oricine vrea sa-si inzeceasca cum functioneaza lucrurile.


Ce functioneaza chiar acum

Versiunea 1.6.0 se ocupa de bucla principala pentru explorare bine. Blocurile se redau corect, miscarea functioneaza in timp real, mostrii si alti jucatori apar, iar tu poti plasa si rupe blocuri. Pentru explorare pasnica sau constructii usoare fara client-ul Java complet, este cu adevarat functional.

Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori

Ce nu este inca acolo: managementul inventarului, cufere si containere, sunete, si majoritatea interactiunilor de lupta. Harta de drumuri a proiectului listeaza toate acestea ca fiind planificate. Deci daca iti imaginezi jocul de supravietuire complet cu crafting, incantariri si negociere cu negatori, versiunea 1.6.0 nu o sa acopere asta.

Asta nu este o critica. A reda o lume Minecraft in timp real in fila de browser, conectata la un server in viu, este impresionant din punct de vedere tehnic in sine. Decalajul dintre "client de explorare in lucru" si "paritate completa cu clientul Java" este enorm, iar ceea ce au lansat este solid pentru ceea ce se propune sa faca.

O utilizare practica in timp ce esti deja in modul browser: daca intalnesti blocuri pe care nu le recunosti, instrumentul de cautare de blocuri pe Minecraft.How este util pentru cautari rapide fara a fi nevoie sa treci la o alta aplicatie.


Lucruri care te vor incurca

Compatibilitatea versiunilor este cea mai mare capcan. prismarine-web-client functioneaza cu versiuni specifice de protocol Minecraft prin stratul mineflayer de dedesubt. Daca serverul la care te conectezi ruleaza o versiune care nu este suportata, vei obtine o eroare de conexiune fara explicatie clara. Verifica GitHub-ul proiectului pentru care versiuni sunt suportate de lansarea actuala, pentru ca lista aceasta se schimba atunci cand echipa PrismarineJS actualizeaza suportul protocolului.

Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori

Cateva alte probleme comune de stiut in prealabil:

  • Autentificarea serverului Premium. Serverele online-mode (cele care iti verifica contul impotriva Mojang/Microsoft) sunt mai complexe pentru a te conecta prin aceasta configuratie. Demonstratia si majoritatea implementarilor cu autohostare functioneaza cel mai curat cu servere offline-mode unde alegi orice nume de utilizator si te conectezi direct.
  • Performanta in zone ocupate. Aceasta este un renderer 3D real rulandu-se in fila de browser. Teren dens, numere mari de entitati, si servere aglomerate vor pune CPU-ul browser-ului tau sa lucreze vizibil mai greu decat zone deschise cu putine entitati.
  • Doar browsere desktop. Chrome si Firefox pe desktop sunt platformele confirmate. Suportul browser mobil nu este acolo, iar dat fiind complexitatea schemei de control si cerintele de redare, nu vine in curand.
  • Tine proxy-ul rulandu-se. Daca faci autohostare si procesul se termina, pagina de browser nu se poate conecta la nimic. Daca folosesti asta des, configurarea lui ca serviciu de fundal persistent merita pasul suplimentar.

Un lucru pe care am avut gresit inainte de a-l incerca: am presupus ca functioneaza doar cu servere LAN mici sau personale. Se conecteaza la orice server pe care proxy-ul il poate atinge peste TCP, inclusiv servere publice mai mari, atata timp cat versiunea Minecraft se potriveste si autentificarea nu este o piedica.


Merita tiempo tau sau nu

Depinde complet de ce ai nevoie. Ca o solutie "joaca Minecraft oriunde fara a instala clientul", functioneaza in limitele curente. Explorarea si interactia cu blocuri de baza sunt cu adevarat utilizabile. Modul supravietuire complet, nu inca.

Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori
Fila browser aratand o lume Minecraft 3D redata de prismarine-web-client cu blocuri si entitati de jucatori

Pentru administratorii de server care vor o modalitate usoara sa se conecteze la serverul lor dintr-o masina fara jocul instalat, asta este de fapt destul de practica. Fara launcher, fara prompt de cont pe servere offline-mode, doar deschide un browser si conecteaza-te. Verificarea daca o constructie arata bine sau daca mostrii se genereaza corect nu necesita experienta completa a clientului.

Si in timp ce esti deja in browser, daca cauți o arina de folosit pe un server, browserul de arina pe Minecraft.How are o colectie solida de explorat.

Principalele alternative de stiut: Eaglercraft este cel mai recunoscut proiect browser Minecraft, desi are propria sa istorie si intrebari de compatibilitate plutind in jurul lui. Pentru vizualizare pura a lumii fara a juca, prismarine-viewer ca o biblioteca independenta merita cunoscuta separat. Si mineflayer, pe care acest proiect se bazeaza, este solutia pentru scripting boti Minecraft in loc de joc manual.

Pentru un proiect open-source cu licenta MIT care face ceva atât de interesant din punct de vedere tehnic, 539 stele simte ca zboar sub radar. Daca cazul de utilizare se potriveste, cei cinci de minute pentru a-l incerca merita investi.

Despre autor
Alexandru Maftei
Alexandru MafteiRedactor șef

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Distribuie cu prietenii tăi!

Întrebări frecvente

Cum se conectează prismarine-web-client la un server Minecraft dacă browserele nu pot deschide socketi TCP?
Pachetul pornește un proxy local. Browserul se conectează la el prin WebSocket, proxy-ul traduce acel trafic în TCP și îl trimite serverului țintă. Din perspectiva serverului, e doar un client normal care se conectează.
Cum instalez și pornesc prismarine-web-client?
Ai nevoie de Node.js instalat. Rulezi `npm install -g prismarine-web-client`, apoi `prismarine-web-client`, și deschizi http://localhost:8080 în browser. De acolo introduci adresa serverului și un nume de utilizator și apeși conectează-te.
Pot folosi prismarine-web-client fără să instalez nimic?
Da. Există o demonstrație activă găzduită pe GitHub Pages pe care o deschizi direct în Chrome sau Firefox pe desktop. Te conectezi la un server fără să instalezi nimic pe calculator.
Ce funcționează în prismarine-web-client și ce nu?
Poți explora lumea, plasa și rupe blocuri, și vedea mobi și alți jucători în timp real. Managementul inventarului, cufere, sunete și interacțiunile de luptă nu sunt disponibile încă în versiunea 1.6.0.
Pe ce biblioteci se bazează prismarine-web-client?
Se bazează pe două biblioteci din ecosistemul PrismarineJS: mineflayer gestionează protocolul Minecraft și logica clientului, iar prismarine-viewer redă lumea 3D în browser.
Pot partaja prismarine-web-client cu prietenii de pe aceeași rețea locală?
Da, dar implicit proxy-ul e accesibil doar local prin localhost. Ca să-l împarți cu alții din rețeaua locală, trebuie să legi aplicația la IP-ul LAN al mașinii tale și ei se conectează la acea adresă pe portul 8080.

Comentarii

Niciun comentariu încă. Fii primul care își spune părerea!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy