3 पॉइंट द्वारा GN⁺ 2024-01-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Boardzilla एक ऐसा framework है जो ब्राउज़र में बोर्ड गेम खेलने और विकसित करने की सुविधा देता है, ताकि डिजिटल बोर्ड गेम बनाना आसान हो सके
  • इसका लक्ष्य ऐसा workflow देना है जिसमें डेवलपर गेम के नियम व्यक्त कर सकें, और खिलाड़ी सरल interface में उपलब्ध विकल्प देख सकें
  • सार्वजनिक example games में 7 Wonders Duel, Cursed, Dyngus Day, 27Panic, Hearts, Hex, Power Grid, Skirma, Stunt Kites आदि शामिल हैं
  • हर गेम के लिए समर्थित खिलाड़ियों की संख्या 1-player से 4-player तक अलग-अलग है; 7 Wonders Duel, Hex, और Skirma 2-player हैं, जबकि Hearts 4-player है
  • जो उपयोगकर्ता अपना खुद का बोर्ड गेम बनाना चाहते हैं, वे दिए गए docs और introduction page के जरिए development शुरू कर सकते हैं

Boardzilla क्या प्रदान करता है

  • Boardzilla डिजिटल बोर्ड गेम आसानी से बनाने के लिए एक वेब-आधारित environment है
  • इसमें ब्राउज़र के भीतर बोर्ड गेम play और develop किए जा सकते हैं
  • यह गेम नियमों को व्यक्त करना आसान बनाता है और खिलाड़ियों को उपलब्ध विकल्प एक सरल interface में देता है

खेलने योग्य गेम उदाहरण

डेवलपमेंट शुरू करने के रास्ते

  • जो उपयोगकर्ता अपना खुद का गेम बनाना चाहते हैं, वे Boardzilla docs से शुरू कर सकते हैं
  • सेवा का परिचय What is Boardzilla में देखा जा सकता है

1 टिप्पणियां

 
GN⁺ 2024-01-30
Hacker News की राय
  • मेरे हिसाब से landing page का सबसे प्रमुख संदेश “Discord से जुड़ें” call नहीं होना चाहिए
    examples और source/docs के links पहले दिखने चाहिए। ऐसे projects में “Discord से जुड़ें” को बहुत ज़्यादा highlight किया जाए, तो निजी तौर पर मुझे उल्टा दूरी महसूस होती है। लगता है सिर्फ मैं ही ऐसा नहीं सोचता

    • मेरे साथ भी यही है
      Discord मुझे सचमुच पसंद नहीं, सिवाय इसके कि वह दोस्तों के बीच disposable communication platform जैसा इस्तेमाल हो। लेकिन लोगों में support questions ही नहीं, documentation तक के लिए Discord को मुख्य platform की तरह इस्तेमाल करने की प्रवृत्ति है। Search quality भी खराब है और search engine indexing भी नहीं होती, इसलिए जब कोई solution ढूँढना हो तो यह सचमुच सबसे खराब है
  • अच्छा लग रहा है। Feature scope बड़ा है, इसलिए moving parts भी बहुत होंगे; लगता है काम काफी ज्यादा रहा होगा। कम-से-कम tabletop games पर focus करने वाला, लेकिन सिर्फ rendering पर focus न करने वाला game engine होना अच्छी बात है
    हालांकि cards और dice games को pure HTML/JavaScript में online playable बनाने वाले के तौर पर, इस system में वही चीज़ कैसे reproduce करनी होगी, यह अभी मुझे साफ नहीं है। Docs देखकर लगता है cards support हैं, और abstraction भी इतनी generic है कि कई तरह के games में fit हो सकती है, लेकिन step-by-step tutorial बहुत मददगार होगा। Actions, Flows, selections, conditions, prompts जैसी abstractions क्यों चुनी गई हैं, यह समझ आता है, लेकिन जब तक उन्हें सच में assemble होते न देखूँ, यह अंदाज़ा लगाना मुश्किल है कि जिस point को मैं बदलना चाहता हूँ, उसे कहाँ बदलूँ। Tutorial के बिना निजी तौर पर मुझे ज्यादा progress करना मुश्किल लगेगा

    • Physical board game के context में देखें तो core दो मुख्य classes पर आधारित लगता है। जो चीज़ें हाथ में होती हैं या players (Player) के बीच move करती हैं और table के spaces (Space) पर रखी जाती हैं, यानी Piece को handle करने वाला structure
      Cards और dice को Piece inherit करके define करें, players को Player inherit करने दें, और deck manage करने वाले Teller जैसे entity को भी Player बनाया जा सकता है। फिर सोचना होगा कि rules के लिए ज़रूरी Space instances को board पर कैसे place किया जाए। Rules Game class instance के अंदर जाते हैं, और उसमें Action class instances के रूप में actions का concept होता है। ये actions user prompt, legal execution conditions, और execution effects define करने वाले arguments लेते हैं। इसके अलावा pieces ढूँढने, compare करने और अपेक्षित convenience functions काफी हैं, और बाकी game logic पर निर्भर करता है। Examples देखकर लगता है कि Space और Piece को filter करने वाले functions भी हैं, जिससे UI logic जल्दी बनाया जा सकता है
    • मैं docs और बढ़ाना चाहता हूँ, लेकिन इसमें बहुत समय लगता है। समझता हूँ कि simple दिखने वाले games को भी structured API में ले जाना daunting हो सकता है। पता नहीं मदद करेगा या नहीं, लेकिन मैंने game का कुछ हिस्सा बनाते हुए एक video record किया है
      https://docs.boardzilla.io/game/creating-a-game
  • Project name में *Zilla जोड़ना अच्छा नहीं है। Godzilla copyright holders “Zilla” suffix इस्तेमाल करने की कोशिश करने वालों को actively track करने के लिए जाने जाते हैं। Mozilla ने भी बहुत पहले सबक सीखा था और अलग agreement करना पड़ा था

    • मुझे बिल्कुल पता नहीं था। मैंने कुछ और काफी अच्छे domain names भी तैयार रखे हैं, तो शायद अब फैसला लेना पड़े
    • मुझे समझ नहीं आता कि इसका Godzilla या उसके copyright से जरा भी क्या संबंध है। यह किसी giant nuclear monster से बहुत दूर है
      Toho ने जो एकमात्र trademark case हारा था, वह ‘trashzilla’ नाम की garbage bag company के खिलाफ था, और कारणों में यह भी था कि वह Toho के business interests के लिए खतरा नहीं था। Edit: logo नहीं देखा था। यह निश्चित रूप से problem हो सकता है
    • यह काफी चौंकाने वाला है। मुझे नहीं पता था कि *Zilla copyright इतना aggressive है
    • Meta भी ‘book’ पर खत्म होने वाले trademarks के applicants के खिलाफ trademark rights actively enforce करता है
    • Revzilla और Partzilla ने भी *zilla names को लेकर लंबी legal dispute झेली थी
  • आप TypeScript+CSS इस्तेमाल कर रहे हैं। उम्मीद थी कि गेम लॉजिक वाले सर्वर के लिए Python सपोर्ट होगा। अभी टाइमिंग अच्छी है, क्योंकि BGA इस्तेमाल करने वाले डेवलपर और पब्लिशर Asmodee के बिजनेस मॉडल की वजह से असहज हैं
    BGA Studio स्टैक JS/CSS + PHP(क्लाइंट और सर्वर) + MySQL है [0]
    Yucata.de JS + HTML + सर्वर पर .NET 4.5 है [1]
    TTS ने Lua इस्तेमाल किया था, लेकिन देखने पर वह अजीब और सीमित लगा। वह ऑब्जेक्ट-ओरिएंटेड भी नहीं है, तो समझ नहीं आता कि बोर्ड गेम्स के लिए नॉन-ऑब्जेक्ट-ओरिएंटेड भाषा क्यों चुनी जाए। 2021 की साइट/फ्रेमवर्क समीक्षा “VassalEngine: Survey of other boardgame software” भी उपयोगी है [2]
    अगर सर्वर पर Python के साथ इंटीग्रेशन मिल सके तो बहुत अच्छा होगा
    [0]: https://boardgamearena.com/doc/Studio
    [1]: https://www.yucata.de/en/FAQ#t17
    [2]: https://forum.vassalengine.org/t/survey-of-other-boardgame-s...

    • “बोर्ड गेम्स के लिए नॉन-ऑब्जेक्ट-ओरिएंटेड भाषा क्यों चुनी जाए” की बात करें तो Lua गेम डेवलपर्स के बीच पहले से काफी लोकप्रिय विकल्प रहा है। एक वजह यह है कि गेम के अंदर scripting language को आसानी से embed किया जा सकता है
      classes के बिना भी object-oriented programming संभव है [0]। और सिर्फ इसलिए कि कोई नई programming language नहीं सीखना चाहता, यह उम्मीद करना कि डेवलपर पूरा प्रोजेक्ट Python में port करके maintain करे, उचित नहीं है
      [0]: https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...
    • सर्वर Python में नहीं है, क्योंकि boardzilla में गेम को क्लाइंट और सर्वर के लिए दो बार व्यक्त नहीं किया जाता। इसके बजाय TypeScript में सिर्फ एक बार लिखा जाता है, और वही code सचमुच सर्वर और क्लाइंट दोनों तरफ इस्तेमाल होता है। क्लाइंट, hidden information के बिना सर्वर जैसा व्यवहार करता है
    • उत्सुकता है कि backend में Python की इतनी मजबूत जरूरत क्यों महसूस होती है। TypeScript backend और अलग-अलग frontend पर चलती है, इसलिए यह काफी logical choice है। web के अलावा Unity जैसे game engines में भी इस्तेमाल की जा सकती है। type system भी Python से बेहतर है
    • Asmodee का business model क्या है, और उसका BGA से क्या संबंध है, यह जानना चाहूंगा
    • TypeScript खुद समस्या नहीं है, लेकिन React वाला हिस्सा चिंता पैदा करता है। गेम frontend के लिए लोग React की बजाय Svelte, Marko, Solid जैसी हल्की चीजें नहीं चाहेंगे?
  • अच्छा है। मेरे पास बहुत सारे board game prototypes हैं जिन्हें कभी web games में बनाना चाहता हूं, इसलिए मैंने board game बनाने के लिए कुछ general-purpose library functions लिखने की कोशिश की थी। grid generation, custom dice rolling, card drawing, tournament functions, कई scenarios दिखाने वाले tests और कुछ अन्य चीजों तक पहुंचकर रुक गया, लेकिन दूसरे projects के साथ-साथ इसे ठीक से बनाने का समय शायद नहीं मिलेगा। देखना होगा कि इस library को इस्तेमाल करना कितना आसान है
    मैं सहमत हूं कि BGA platform सीखना काफी दर्दनाक है। 1) platform से बंध जाते हैं, इसलिए game को कहीं और नहीं डाल सकते, 2) सब कुछ PHP है, जिसे अब ज्यादा इस्तेमाल नहीं करना चाहता, और 3) documentation कई जगह बिखरी हुई है, यहां तक कि PowerPoint presentations भी शामिल हैं

  • अगर आप कुछ और low-level ढूंढ रहे हैं तो boardgame.io recommend कर सकता हूं
    [1] https://boardgame.io/

    • boardgame.io भी पूरी तरह recommend करने लायक है। Nicolo वाकई बहुत helpful और मददगार हैं। उनका दूसरा project https://boardgamelab.app/ भी देखना अच्छा रहेगा
  • यह क्षेत्र सचमुच कठिन है। सफल होने के लिए या तो आपके पास तुरंत hit होने वाला game होना चाहिए, या फिर पूरे साल हर दिन players जुटाने में जबरदस्त community effort लगाना होगा
    BGA alternatives लगभग न होने के शुरुआती दौर में मैंने https://acos.games के साथ किस्मत आजमाई थी। आज भी खाली समय में पीछे से इसे develop करता रहता हूं। सबसे बड़ी नाकामी UI/UX थी। लोगों को पर्दे के पीछे छिपी शानदार technology में ज्यादा रुचि नहीं होती

    • यह बहुत अच्छी तरह बनाया हुआ लगता है। documentation भी बहुत अच्छे से लिखी गई है। अभी मेरे पास इसे इस्तेमाल करने का कोई काम नहीं है, लेकिन क्या संभव है यह देखने के लिए documentation पढ़ना ही दिलचस्प था। state management और game replay features अच्छे लगे। मैं भी games का एक bundle खुद बना रहा हूं, और सिर्फ यह सोचकर ही बड़ा काम लगता है कि system को इतना flexible कैसे बनाया जाए कि दूसरे लोग integrate कर सकें। इसमें लगाया गया काम impressive है
  • बहुत शानदार लग रहा है, और शुरुआत के लिए बधाई
    prototype development के लिए यह बढ़िया हो सकता है, लेकिन BGA alternative बनाने के लिए publishers से games implement/deploy करने की अनुमति लेनी होगी। BGA बहुत बड़ा है और Asmodee के ownership में है, इसलिए यह आसान नहीं लगेगा। उम्मीद है मैं गलत साबित होऊं

    • मैं कानूनी विशेषज्ञ नहीं हूं, लेकिन जब तक वही card/board images इस्तेमाल नहीं किए जाते या rulebook को शब्दशः copy नहीं किया जाता, game mechanics copyright protection के दायरे में नहीं आते ऐसा लगता है
      “संक्षेप में, नाम और logos को trademark से protect किया जा सकता है, और art पर copyright होता है (board खुद भी art के रूप में हो सकता है)। mechanics, procedures, rules को copyright से protect नहीं किया जा सकता। इसलिए Monopoly/Scrabble clones मौजूद हैं।”
      https://www.reddit.com/r/gamedev/comments/10f2nov/comment/j4...
      यहां इस YouTube video का reference दिया गया है
      https://www.youtube.com/watch?v=iZQJQYqhAgY
    • मैं पूरी तरह सहमत हूं कि Asmodee ने व्यावहारिक रूप से असली competitors को market में आने से रोक रखा है। BGA से सीधे भिड़ने के बजाय, मेरे पास indie publishers के छोटे games पर ध्यान देने का idea है। यह कितना feasible होगा, नहीं पता, लेकिन और क्या किया जाए यह भी ठीक से नहीं समझ आता
  • सच में शानदार लग रहा है। इसे खुद आज़माने का इंतज़ार है
    simultaneous actions की अनुमति देने वाला everyPlayer flow command देखकर अच्छा लगा। मैंने जिन दूसरे board game frameworks को इस्तेमाल किया है, उनमें यह feature नहीं था
    [1]: https://docs.boardzilla.io/game/flow#everyplayer

  • सभी sample games में error आ रहा है
    Object.hasOwn is not a function. (In 'Object.hasOwn(e,A.from)', 'Object.hasOwn' is undefined)
    stack trace इस तरह है
    su@https://www.boardzilla.io/build/_shared/chunk-ZEYFFM3P.js:16:114536
    Fs@https://www.boardzilla.io/build/_shared/chunk-QNN53S6I.js:9:128279
    Ch@https://www.boardzilla.io/build/_shared/chunk-QNN53S6I.js:11:180657
    लगता है polyfill जोड़ना पड़ेगा

    • polyfill जोड़ दिया है। अगर यह ठीक हो गया हो तो बताएं
    • polyfill जल्द जोड़ दूंगा