4 पॉइंट द्वारा GN⁺ 2024-10-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Pumpkin केवल Rust में बनाया गया एक Minecraft सर्वर है, जिसका लक्ष्य तेज़, कुशल और कस्टमाइज़ करने योग्य सर्वर अनुभव देना है, साथ ही गेम के मुख्य मैकेनिक्स का पालन करना भी है
  • इसके लक्ष्य हैं मल्टीथ्रेडिंग-आधारित performance, नवीनतम Java और Bedrock Minecraft सर्वर वर्ज़न के साथ compatibility, Vanilla गेम मैकेनिक्स का पालन, ज्ञात security vulnerabilities से बचाव, उच्च configurability, और plugin development के लिए आधार प्रदान करना
  • फीचर दायरा protocol, world, player, entity, server, proxy क्षेत्रों में बँटा है, जिसमें Server Status/Ping, Encryption, Packet Compression, Java/Bedrock, World Loading/Saving, Lighting, Entity Spawning, Inventory, RCON, Permissions, Bungeecord, Velocity आदि शामिल हैं
  • यह फिलहाल 1.0.0 से पहले के सक्रिय development चरण में है; Advancements और Villagers को incomplete बताया गया है, जबकि Mobs, Animals और Non-Living Entities को W.I.P के रूप में चिह्नित किया गया है
  • इसे चलाने के लिए Quick Start दस्तावेज़ का पालन किया जा सकता है, और docs, Discord, GitHub Sponsors, CONTRIBUTING.md के ज़रिए उपयोग, community participation, sponsorship और contribution के रास्ते दिए गए हैं

Pumpkin का उद्देश्य और स्थिति

  • Pumpkin एक केवल Rust में लिखा गया Minecraft सर्वर है
  • इसका लक्ष्य तेज़, कुशल और कस्टमाइज़ करने योग्य अनुभव देना है, और Minecraft के मुख्य game mechanics का पालन करना है
  • प्रोजेक्ट फिलहाल heavy development की स्थिति में है
    • 1.0.0 रिलीज़ से पहले किए जाने वाले काम संबंधित issue में देखे जा सकते हैं

डिज़ाइन लक्ष्य

  • Performance: मल्टीथ्रेडिंग का उपयोग करके speed और efficiency बढ़ाना लक्ष्य है
  • Compatibility: नवीनतम Java और Bedrock Minecraft सर्वर वर्ज़न को support करना और Vanilla game mechanics का पालन करना
  • Security: ज्ञात security exploits की रोकथाम को प्राथमिकता देना
  • Flexibility: गैर-ज़रूरी features को disable करने की सुविधा के साथ उच्च configurability देना
  • Extensibility: plugin development के लिए आधार उपलब्ध कराना

लागू की गई फीचर रेंज

  • सेटिंग्स

    • TOML-आधारित configuration समर्थित है
  • Protocol

    • Tracking: Protocol
    • Server Status/Ping, Encryption, Packet Compression, Java/Bedrock support चिह्नित हैं
  • World

    • Tracking: World
    • Player Tab-list, Scoreboard, World Loading, World Time, World Borders, World Saving, Lighting, Entity Spawning, Bossbar समर्थित हैं
    • Chunk Loading और Chunk Saving में Vanilla, Linear, Pump रूप चिह्नित हैं
    • Chunk Generation, Redstone, Liquid Physics आइटम शामिल हैं
  • Player

    • Tracking: Player
    • Skins, Teleport, Movement, Animation, Inventory, Experience, Hunger, Off Hand, Eating चिह्नित हैं
    • Combat अलग tracking आइटम के रूप में जुड़ा है
    • Advancements को incomplete बताया गया है

Entity·Server·Proxy

  • Entities

    • Non-Living entities में Minecart, Eggs आदि शामिल हैं और इन्हें W.I.P के रूप में चिह्नित किया गया है
    • Entity Effects, Players, Boss, Entity Saving चिह्नित हैं
    • Mobs और Animals को W.I.P के रूप में चिह्नित किया गया है
    • Entity AI अलग tracking आइटम के रूप में जुड़ा है
    • Villagers को incomplete बताया गया है
  • Server

    • Plugins, Query, RCON, Inventories, Particles, Chat, Commands, Permissions, Translations आइटम शामिल हैं
  • Proxy

    • Bungeecord और Velocity चिह्नित हैं

चलाना, दस्तावेज़, community

  • चलाने का तरीका Quick Start गाइड में देखा जा सकता है
  • दस्तावेज़ pumpkinmc.org पर उपलब्ध हैं
  • contributions का स्वागत है, और CONTRIBUTING.md देखने के लिए कहा गया है
  • updates, events और members से जुड़ने के लिए Discord server उपलब्ध है
  • project sponsorship GitHub Sponsors के माध्यम से संभव है

1 टिप्पणियां

 
GN⁺ 2024-10-16
Hacker News की राय
  • https://dayssincelastrustmcserver.com/

    • 10 साल पहले Minecraft modding काफी करने वाले के तौर पर, यह देखकर अच्छा लगा कि community अभी भी इतनी सक्रिय है कि इस तरह का इनसाइड जोक बन सके
      गेम के पैमाने को देखते हुए किसी भी भाषा में Minecraft server बनाना आसान काम नहीं है, और यह हैरान करने वाली बात है कि सिर्फ Rust में ही पहले से 7 मौजूद हैं
  • benchmarks में performance gap काफी प्रभावशाली है, लेकिन लगता है कि world generation और save functionality गायब हैं, और ये दोनों महंगे operations हैं
    खासकर chunk generation कमजोर VPS को सीधे ठप कर सकता है। benchmarks शायद idle state में नापे गए होंगे, इसलिए जब ये features जुड़कर वास्तविक इस्तेमाल में आएंगे तो comparison देखना दिलचस्प होगा
    block तोड़ने/लगाने का support भी नहीं दिखता, इस स्थिति में server पर lighting recalculation और chunk updates की जरूरत पड़ेगी
    आखिर में, scoreboard, teams, command block parsing जैसे advanced features जोड़ने की योजना है या नहीं, यह भी जानना चाहूंगा। Mojang ने इसके लिए Brigadier को open source कर रखा है
    उम्मीद है कि यह इतना mature हो जाए कि low-end hardware पर भी server चलाना आसान हो

    • benchmarks खुद देखने पर भी काफी प्रभावशाली हैं
      block placement और breaking पहले से supported हैं, लेकिन lighting अभी supported नहीं है, इसलिए फिलहाल सब कुछ अंधेरा दिखता है। इस पर काम चल रहा है
      scoreboard, teams जैसे features भी जोड़ना चाहता हूं, और commands के लिए Brigadier जैसा इस्तेमाल हो सकने वाला API पहले से मौजूद है
      मैं चाहता हूं कि low-end hardware पर भी players server host कर सकें, और किसी दिन Raspberry Pi जैसी जगह पर Pumpkin test करने का सोच रहा हूं
    • chunk generation को आखिर में implement करना, या बिल्कुल न करना भी समझ में आता है। अगर आपको high-performance Minecraft server चाहिए तो वैसे भी सारे chunks पहले से generate करने पड़ेंगे
      chunks में inhabited time save रहता है, इसलिए बाद में updated chunk generation logic apply करना हो तो केवल उन chunks को फिर से generate किया जा सकता है जिन्हें अभी visit नहीं किया गया है
      Minecraft server reimplementation काफी दिलचस्प है और हर बार नया implementation निकलता देखना अच्छा लगता है। technical Minecraft के लिए fast redstone compilation हेतु MCHPRS जैसे specific-purpose server implementations भी हैं
  • जानना चाहता हूं कि benchmarks हैं या नहीं। vanilla server से कितना तेज है?
    Minecraft server में players की संख्या बढ़ते ही resource usage अत्यधिक बढ़ जाता है, और बहुत powerful server चलाने पर भी अक्सर TPS खराब आता है

  • हाल ही में Pumpkin develop किया है। यह Rust में scratch से पूरी तरह लिखा गया efficient और fast Minecraft server है, एक बार देखेंगे तो अच्छा होगा

    • शानदार। multithreading कैसे काम करती है, यह जानना चाहूंगा। क्या सिर्फ आसान हिस्सों को बांटा गया है, या world-related actual work भी parallelize किया गया है?
    • लिखा है “Pumpkin क्या नहीं करेगा: vanilla या दूसरे servers का drop-in replacement बनना”; अगर यह drop-in replacement नहीं है, तो इसे Minecraft server कहना मुश्किल नहीं हो जाता?
      Uno deck, Hearts deck का drop-in replacement नहीं है, लेकिन दोनों सिर्फ card games हैं; दोनों Uno deck नहीं हैं—कुछ वैसा ही
      या फिर मतलब यह है कि network को छोड़कर Pumpkin vanilla से अलग behave करता है, इसलिए vanilla में बने worlds शायद Pumpkin में open न हो सकें?
  • मैं इस project को पहले से जानता था और Discord में भी था। अभी mental health के लिए Discord account delete कर दिया है
    Hacker News पर लोगों को यह project काफी पसंद आ रहा है, यह देखकर खुशी हुई। 140 upvotes हों तो काफी अच्छा माना जाएगा
    याद पड़ता है कि Rust में लिखा कोई और server भी था, लेकिन पक्का नहीं
    आखिरी बार जब देखा था तो यह सचमुच early alpha software था, लेकिन development speed अच्छी थी। अभी की स्थिति नहीं पता, और याद है कि author exams देने गया हुआ था

    • बहुत खुशी है कि इतने लोग project को पसंद कर रहे हैं। यह अभी work-in-progress project है, लेकिन हम मेहनत से बना रहे हैं
      पिछले हफ्ते exams खत्म किए और अब छुट्टियां हैं, इसलिए commits भी फिर से सामान्य pace पर लौट आए हैं
    • यह C में लिखा Cuberite हो सकता है
  • जानना चाहता हूं कि क्या main thread को region के हिसाब से shard करने का तरीका है, जैसे Paper Folia में होता है। या फिर सिर्फ non-block entities को अलग thread में split करने भर की बात है?

  • इंतजार है कि Minecraft इतना reverse-engineer हो जाए कि कई server और client implementations बस compatible अपना protocol जैसे बन जाएं

    • Bedrock का network protocol documented है: https://github.com/Mojang/bedrock-protocol-docs
    • यह पहले से ऐसा ही है। पूरा protocol reverse-engineer हो चुका है, code को automatic deobfuscate करने वाले tools भी हैं, और Minecraft का complete reimplementation भी पहले से है जिसमें server support तक है
  • इसे एक बार इस्तेमाल करके देखूंगा। pure vanilla server jar की performance बहुत खराब है। चाहता हूं Mojang इसे improve करे
    जहां तक पता है, new chunk generation कम से कम multithreaded है
    SMP server के लिए basic controls का official support भी मिलना चाहिए। दो vertex coordinates से define किया गया region, और place·break·interact जैसी basic permissions ही काफी हैं
    एक simple config file हो तो काफी है, requests या updates को दूसरे tools से manage किया जा सकता है। admins के लिए simple in-game command-line utility भी ठीक रहेगी
    बस इतना चाहिए कि हमेशा closed whitelist ही इस्तेमाल न करनी पड़े। Paper/Waterfall आदि में plugins हैं, यह पता है, लेकिन pure vanilla बनाए रखने के अपने फायदे हैं
    मैं server को लंबे समय से लगातार जिंदा रखे हुए हूं

    • बस ध्यान रखें कि यह अभी complete state में नहीं है और बहुत features missing हैं
      आपने जो चीजें गिनाईं, वे सब config file से configurable बनाना चाहता हूं, इसलिए शायद आपको पसंद आए
      अगर समस्या हो तो https://snowiiii.github.io/Pumpkin/troubleshooting/common_is... देखें या Discord पर मदद मांगें
  • Rust में लिखा नया Minecraft सर्वर आए हुए 0 दिन हुए हैं
    https://dayssincelastrustmcserver.com/

    • मज़ेदार साइट है, लेकिन थोड़ी अन्यायपूर्ण भी। इनमें से “यह तो पहले से है” कहने लायक असल में सिर्फ Valence ही है
      कुल 7 में से शुरुआती 3 मर चुके हैं, और सबसे नए 3 — Pumpkin सहित — सभी 2024 के प्रोजेक्ट हैं। 2024 के प्रोजेक्ट सभी Valence से अपना फर्क साफ बताते हैं, जो modularity पर केंद्रित framework जैसा है
      सबसे नए 3 आपस में friendly, healthy competitors जैसे दिखते हैं
      released stars last_update
      feather 19aug 2,614 2 years ago
      mchprs 20jun 1,632 last month
      graphite 22jun 160 2 years ago
      valence 22sep 2,731 3 days ago
      hyperion 24mar 361 today
      pumpkin 24jul 965 today
      ferrumc 24sep 673 today
    • इनमें से काफ़ी का “क्या यह Minecraft server है? नहीं। यह अपना Minecraft server rewrite बनाने के लिए framework है” होना काफ़ी मज़ेदार है
    • Pumpkin पहले से ही उस सूची में है
    • इसे देखकर सोचने पर मजबूर होता हूं कि Rust वाकई इस काम के लिए सही tool है या नहीं। बल्कि Elixir/Erlang इसके लिए perfect tool जैसा लगा, और असल में किसी ने इसे पहले ही बना भी दिया है
      BEAM पर ऐसी चीज़ें कैसे की जाती हैं, यह सीखने वालों के लिए अच्छा reference material है: https://github.com/thecodeboss/minecraft
    • सोचा था कि Bevy से बना Minecraft server हो तो बढ़िया होगा, लेकिन वह भी पहले से था: https://github.com/valence-rs/valence
  • यहां modern का मतलब क्या है?

    • आजकल “modern” शायद “$thing को [Rust में] फिर से लिखा” के लिए एक ढीला-ढाला adjective बन गया है
      Minecraft 2011 में बना था, और Wikipedia के मुताबिक ‘classic’ edition का आखिरी version 2017 में आया था। तो 2017 के बाद की हर चीज़ पुरानी नहीं मानी जाएगी
      किसी चीज़ को rewrite करना अपने-आप में ठीक है, लेकिन “modern” को value proposition की तरह पेश करना काफ़ी ढीला है, और objectively बेहतर है या नहीं, यह अक्सर बहस का विषय रहता है
    • मतलब यह कि इसे शुरू से लिखा गया है, और vanilla Minecraft server code के उलट इसका साफ-सुथरा foundation है
      multithreading या Rust जैसी modern capabilities भी इस्तेमाल करना चाहते हैं। Rust को मैं एक modern language मानता हूं, जिसे पुरानी languages की गलतियों को सुधारने के लिए design किया गया है
    • software में modern का लगभग हमेशा बस यही मतलब होता है कि यह पिछले कुछ सालों में लिखा गया है। software को describe करने वाले adjective के रूप में यह बहुत उपयोगी नहीं है
      उदाहरण के लिए SQLite को शायद modern नहीं कहा जाएगा, लेकिन सब उसे पसंद करते हैं, इसलिए फर्क नहीं पड़ता