Skip to content
İçeriğe geç
Bloga Dön
Tarayıcıda Minecraft Oyna, prismarine-web-client ile

Tarayıcıda Minecraft Oyna, prismarine-web-client ile

Alex Maftei
Alex Maftei
@ice
Güncellendi
99 görüntüleme
Hızlı yanıt:prismarine-web-client, hiçbir kurulum gerektirmeden tarayıcı sekmesi içinde gerçek Minecraft sunucularına bağlanan bir web istemcisidir. JavaScript ile yazılmış olup mineflayer ve prismarine-viewer kütüphaneleri üzerine inşa edilmiştir.
TL;DR:prismarine-web-client, açık kaynaklı tarayıcı tabanlı bir Minecraft istemcisidir ve WebSocket proxy aracılığıyla gerçek sunuculara bağlanır. mineflayer ve prismarine-viewer üzerine inşa edilmiş olup, Chrome veya Firefox'ta kurulum gerektirmeden çalışır.
GitHub - Minecraft topluluk projesi<\/span>

prismarine-web-client<\/a> (PrismarineJS\/prismarine-web-client)<\/span><\/h3>

Tarayıcınızda çalışan Minecraft web istemcisi<\/p> <\/div> GitHub'da Yıldız Ver ↗<\/a> <\/div>

⭐ 539 yıldız<\/span>💻 JavaScript<\/span>📄 MIT<\/span><\/div> <\/div>

Okul Chromebook'undan, ödünç alınan bir dizüstü bilgisayardan veya oyun kurulı olmayan herhangi bir cihazdan bir Minecraft sunucusuna katılmak istediyseniz? prismarine-web-client tam bu sorunu çözer. Tarayıcı sekmesi içinde gerçek bir Minecraft istemcisi çalıştırır ve hiçbir yerel kurulum gerektirmeden gerçek Minecraft sunuculara<\/a> bağlanır.<\/p>

prismarine-web-client Nedir<\/h2>

Bu basitleştirilmiş bir 2D klonu veya Flash döneminden kalma bir taklit değildir. İyi kurulmuş iki PrismarineJS kütüphanesi üzerine inşa edilen gerçek bir tarayıcı tabanlı istemcidir: mineflayer Minecraft protokolünü ve istemci mantığını yönetirken, prismarine-viewer 3D dünyayı render eder. Birlikte gerçekten çalışan bir şey oluştururlar.<\/p>

Proje GitHub'da 539 yıldız ve MIT lisansı ile konumlanmıştır, bu da istediğiniz gibi özgürce kullanabileceğiniz, fork edebileceğiniz ve değiştirebileceğiniz anlamına gelir. JavaScript ile yazılmıştır, bu da tarayıcıda çalıştırılmasının neden mümkün olduğunun bir nedenidir. PrismarineJS ekosistemi yıllar boyunca var olmuş ve birçok topluluk otomasyon aracı ile botunu güçlendirmiştir, bu nedenle kopuk bağımlılığı olan hafta sonu deneyi değildir.<\/p>

GitHub Pages'da barındırılan canlı bir demo mevcuttur. Şu anda Chrome veya Firefox'ta masaüstünde açın ve hiçbir şey kurmadan bir sunucuya bağlanın. Bu en basit kullanım durumu ve kendi barındırılmasıyla uğraşmadan önce ne ile uğraştığınızı anlamak için iyi bir yoldur.<\/p>


Arkasındaki Teknoloji (Ve Neden Akıllıca)<\/h2>

İşte gerçekten ilginç olan kısım. Minecraft protokolü TCP üzerinde çalışır ve tarayıcılar sadece ham TCP soketleri açamaz. Peki bir tarayıcı tabanlı istemci gerçek bir Minecraft sunucusuna nasıl bağlanır?<\/p>

prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile
prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile<\/figcaption><\/figure>

Cevap, paketin yerel olarak çalıştırdığı bir proxy katmanıdır. Tarayıcınız WebSocket üzerinden bu proxy'ye bağlanır. Proxy daha sonra WebSocket trafiğini TCP'ye çevirir ve hedeflediğiniz Minecraft sunucusuna her şeyi iletir. Sunucunun perspektifinden, bu sadece normal şekilde bağlanan başka bir istemcidir. Bunun bir tarayıcı sekmesinden yapıldığını bilmez.<\/p>

Bu mimari akıllıdır çünkü istemci kodu çoğunlukla tarayıcınızda çalışır (mineflayer mantığı, 3D rendering), proxy ise tarayıcıların temel olarak yapamadığı tek şeyi yönetir. Temiz bir bölünüştür. Proxy hafiftir ve npm paketinde paketlenmiştir, bu nedenle ayrı olarak ayarlanacak hiçbir şey yoktur.<\/p>

Değer katması: birinin bu proxy'yi bir yerde çalıştırması gerekir. Barındırılan demoda bir sunucu tarafında çalışan var. Kendi barındırma için, kendi makinenizde çalışır.<\/p>


Kendiniz Ayarlama<\/h2>

Node.js yüklüyse, tüm kurulum yaklaşık bir dakika sürer. Paketi küresel olarak yükleyin ve başlatın:<\/p>

prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile
prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile<\/figcaption><\/figure>
code<\/span><\/div>
npm install -g prismarine-web-client
prismarine-web-client<\/code><\/pre><\/div>

Bundan sonra, http:\/\/localhost:8080<\/code> adresini tarayıcınızda açın. Sunucu adresini ve kullanıcı adını sorun bir bağlantı ekranı göreceksiniz. Bunları girin ve bağlan'a basın.<\/p>

Başlamadan önce anlamanız gereken birkaç şey var. Bu, yerel makinenizde proxy sunucusu başlatır. Aynı makinedeki herkes localhost üzerinden kullanabilir, ancak portu açığa çıkarmadığınız sürece başkaları tarafından ulaşılamaz. Bunu yerel ağ üzerindeki arkadaşlarınızla paylaşmak istiyorsanız, LAN IP'sine bağlamanız ve makine adresinizin 8080 portuna bağlanmalarını sağlamanız gerekir. Mümkün, ancak temel ağ bilgisi gerektirir.<\/p>

Geliştirme için veya koda dalmak istiyorsanız, depoyu klonlayın ve çalıştırın:<\/p>

code<\/span><\/div>
npm install
npm start<\/code><\/pre><\/div>

Bu, express ve webpack'i watch modunda başlatır. Bir dosyayı kaydedin, birkaç saniye içinde yeniden derler ve değişiklikleri görmek için yenile. Proje ayrıca hata ayıklama için window<\/code> nesnesinde bir avuç kullanışlı global açığa çıkarır, bot<\/code>, viewer<\/code> ve worldView<\/code> dahil olmak üzere. Chrome DevTools'u açarsanız ve konsolda bot.chat('test')<\/code> yazarsanız, doğrudan oradan oyun içi sohbeti kullanabilirsiniz. Bu, işlerin nasıl çalıştığını araştırmak isteyen herkes için güzel bir dokunuş.<\/p>


Şu Anda Neler Çalışıyor<\/h2>

1.6.0 sürümü keşif için ana döngüyü iyi yönetir. Bloklarıyla doğru şekilde render edilir, hareket gerçek zamanlı olarak çalışır, moblar ve diğer oyuncular görünür ve blokları yerleştirebilir ve kırabilirsiniz. Tam Java istemcisi olmadan rahat keşif veya hafif inşaat için gerçekten işlevseldir.<\/p>

prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile
prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile<\/figcaption><\/figure>

Henüz orada olmayan: envanter yönetimi, sandıklar ve kaplar, sesler ve çoğu dövüş etkileşimi. Projenin yol haritası tüm bunları planlı olarak listeler. Yani eğer tam survival oyun oynama, zanaat, büyülü ve köylü ticareti pictürlüyorsanız, 1.6.0 sürümü bunu karşılamayacaktır.<\/p>

Bu bir eleştiri değil. Tarayıcı sekmesi içinde gerçek zamanlı bir Minecraft dünyasını render etmek, canlı bir sunucuya bağlanmak, teknik olarak kendi başına etkileyicidir. "Çalışan keşif istemcisi" ile "tam Java istemci paritesi" arasındaki boşluk muazzamdır ve sevkedikleri şey bunu yapmak için istediği şey için soliddir.<\/p>

Zaten tarayıcı modundayken pratik bir kullanım: tanımadığınız bloklarla karşılaşırsanız, Minecraft.How'taki blok arama aracı<\/a> başka bir uygulamaya geçmek zorunda kalmadan hızlı aramalar için kullanışlıdır.<\/p>


Sizi Takılacak Şeyler<\/h2>

Sürüm uyumluluğu en büyük gotcha'dır. prismarine-web-client, altında mineflayer katmanı aracılığıyla belirli Minecraft protokol sürümleriyle çalışır. Bağlanmaya çalıştığınız sunucu desteklenmeyen bir sürümü çalıştırırsa, açık bir açıklama olmadan bir bağlantı hatası alırsınız. Proje'nin GitHub'ında mevcut sürümün desteklediği sürümleri kontrol edin, çünkü bu liste PrismarineJS ekibi protokol desteğini güncelledikçe değişir.<\/p>

prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile
prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile<\/figcaption><\/figure>

Önceden bilmeniz gereken birkaç başka yaygın sorun:<\/p>

  • Premium sunucu kimlik doğrulaması.<\/strong> Çevrimiçi mod sunucuları (hesabınızı Mojang-Microsoft'a karşı doğrulayanlar) bu kurulum üzerinden bağlanmak daha karmaşıktır. Demo ve çoğu kendi barındırma dağıtımları, herhangi bir kullanıcı adı seçip doğrudan bağlandığınız çevrimdışı mod sunucuları ile en temiz şekilde çalışır.<\/li>
  • Yoğun alanlarda performans.<\/strong> Bu bir tarayıcı sekmesi içinde çalışan gerçek bir 3D render motorudur. Yoğun arazi, büyük varlık sayıları ve kalabalık sunucular, tarayıcınızın CPU'sunu açık alanlara ve az varlığa kıyasla iyice itecektir.<\/li>
  • Yalnızca masaüstü tarayıcıları.<\/strong> Chrome ve Firefox masaüstünde onaylanan platformlardır. Mobil tarayıcı desteği yoktur ve kontrol şeması karmaşıklığı ve rendering taleplerini göz önüne alındığında, yakında gelemeyecektir.<\/li>
  • Proxy'yi çalıştır tutun.<\/strong> Kendi barındırıyorsanız ve işlem ölürse, tarayıcı sayfası hiçbir şeye bağlanamaz. Bunu düzenli olarak kullanırsanız, bir kalıcı arka plan hizmeti olarak ayarlamak ekstra adımın değerinde olur.<\/li> <\/ul>

    Denemeyi denemeden önce yanlış olan bir şey: Bunun sadece küçük LAN veya kişisel sunucularla çalıştığını varsaydım. Proxy'nin TCP üzerinden ulaşabileceği herhangi bir sunucuya bağlanır, Minecraft sürümü eşleştiği ve kimlik doğrulama engel olmadığı sürece daha büyük halkın kamu olanları dahil.<\/p>


    Zamanınıza Değer Mi<\/h2>

    Bu tamamen neye ihtiyacınız olduğuna bağlıdır. "İstemciyi kurmadan herhangi bir yerde Minecraft oynal" çözümü olarak, mevcut sınırları içinde çalışır. Keşif ve temel blok etkileşimi gerçekten kullanılabilir. Tam survival modu, henüz değil.<\/p>

    prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile
    prismarine-web-client tarafından render edilen 3D Minecraft dünyasını gösteren tarayıcı sekmesi, bloklar ve oyuncu varlıkları ile<\/figcaption><\/figure>

    Sunucu yöneticileri için oyun kurulmayan bir makineden sunucularına hafifçe girmek isteyen bir ışık yolu, bu aslında oldukça pratiktir. Başlatıcı yok, çevrimdışı mod sunucularında hesap istemi yok, sadece tarayıcı açın ve bağlanın. İnşaatın doğru görünüp görünmediğini kontrol etmek veya mobların doğru şekilde çiftleşip çiftleşmediğini kontrol etmek tam istemci deneyimi gerektirmez.<\/p>

    Ve zaten tarayıcıda bulunurken, sunucuda kullanmak için bir skin arıyorsanız, Minecraft.How'taki skin tarayıcısı<\/a> keşfetmek için iyi bir koleksiyona sahiptir.<\/p>

    Bilmeniz gereken ana alternatifler: Eaglercraft en tanınmış tarayıcı Minecraft projesidir, ancak kendi tarihçesi ve etrafında dolaşan uyumluluk soruları var. Saf dünya görüntüleme için oynanmadan, prismarine-viewer bağımsız kütüphane olarak ayrıca bilmeye değerdir. Ve mineflayer, bu proje hangi tabanda bulunur, manuel oyun yerine Minecraft botları için yazı yazmak isteyenlerin seçimi.<\/p>

    MIT lisanslı açık kaynaklı bir proje için bu kadar teknik olarak ilginç bir şey yapan, 539 yıldız radarın altında uçuyormuş gibi görünüyor. Kullanım durumu uyarsa, denemeye beş dakika iyi harcanıyor.<\/p>

Yazar hakkında
Alex Maftei
Alex MafteiBaş Yazar

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

Arkadaşlarınla paylaş!

Sıkça Sorulan Sorular

prismarine-web-client nasıl kurulur ve çalıştırılır?
Node.js yüklüyse iki adımda biter. Terminale npm install -g prismarine-web-client yazın, ardından prismarine-web-client komutunu çalıştırın. Tarayıcınızda http://localhost:8080 adresini açın, sunucu adresi ve kullanıcı adınızı girin, bağlan'a basın.
Tarayıcı nasıl gerçek bir Minecraft sunucusuna bağlanabiliyor?
Tarayıcılar doğrudan TCP soketi açamaz. prismarine-web-client yerel bir proxy katmanı çalıştırır. Tarayıcınız bu proxy'ye WebSocket üzerinden bağlanır, proxy ise trafiği TCP'ye çevirerek hedef sunucuya iletir. Sunucu bakış açısından sıradan bir istemci bağlantısıdır.
Kurulum yapmadan önce deneyebilir miyim?
Evet. GitHub Pages'da barındırılan canlı bir demo var. Masaüstünde Chrome ya da Firefox'ta açın, hiçbir şey kurmadan bir sunucuya bağlanabilirsiniz.
Şu an hangi özellikler çalışıyor, hangileri eksik?
1.6.0 sürümünde bloklar doğru render edilir, hareket gerçek zamanlı çalışır, moblar ve diğer oyuncular görünür, blok kırıp yerleştirebilirsiniz. Envanter yönetimi, sandıklar ve kaplar, sesler ile çoğu dövüş etkileşimi henüz mevcut değil.
Sürüm uyumluluğu nasıl? Her sunucuya bağlanabilir miyim?
Hayır. prismarine-web-client yalnızca belirli Minecraft protokol sürümleriyle çalışır. Bağlanmak istediğiniz sunucu desteklenmeyen bir sürüm çalıştırıyorsa açık bir hata mesajı almadan bağlantı kesilir. Hangi sürümlerin desteklendiğini projenin GitHub sayfasından kontrol edin.
Kodu değiştirmek ya da geliştirmeye katkıda bulunmak isteyenler nasıl başlar?
Depoyu klonlayın, npm install ardından npm start çalıştırın. Proje watch modunda derlenir; bir dosyayı kaydettiğinizde birkaç saniye içinde yeniden derlenir. Chrome DevTools konsolunda bot, viewer ve worldView global değişkenlerine erişebilirsiniz, örneğin bot.chat('test') yazarak doğrudan oyun içi sohbeti kullanabilirsiniz.

Have a Question or Tip about this Guide?Community Q&A

Ask a question or help other players below. Join the discussion and share your Minecraft tips!

Yorumlar

Henüz yorum yok. Düşüncelerinizi paylaşan ilk kişi olun!

Deneyiminizi geliştirmek için çerezler kullanıyoruz. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Gizlilik Politikamızı okuyun