3 ポイント 投稿者 GN⁺ 2024-01-30 | 1件のコメント | WhatsAppで共有
  • Boardzillaは、ブラウザでボードゲームをプレイ・開発できるようにし、デジタルボードゲーム制作の参入障壁を下げることを目指すフレームワーク
  • 開発者がゲームルールを表現し、プレイヤーが可能な選択肢をシンプルなインターフェースで確認できる流れを目指している
  • 公開されているサンプルゲームには、7 Wonders Duel、Cursed、Dyngus Day、27Panic、Hearts、Hex、Power Grid、Skirma、Stunt Kitesなどがある
  • ゲームごとの対応人数は1人用から4人用までさまざまで、7 Wonders Duel・Hex・Skirmaは2人用、Heartsは4人用
  • 独自のボードゲームを作りたいユーザーは、提供されているドキュメントと紹介ページから開発を始められる

Boardzillaが提供するもの

  • Boardzillaは、デジタルボードゲームを簡単に作るためのWebベース環境
  • ブラウザ上でボードゲームをプレイし、開発できる
  • ゲームルールを表現しやすくし、プレイヤーに可能な選択肢をシンプルなインターフェースで提示する

プレイ可能なゲーム例

開発を始める方法

1件のコメント

 
GN⁺ 2024-01-30
Hacker News のコメント
  • ランディングページでいちばん目立つメッセージが 「Discord に参加」への誘導であるべきではないと思う
    まずサンプルとソース/ドキュメントへのリンクが見えるべき。こういうプロジェクトで「Discord に参加」が強調されすぎていると、個人的にはむしろ距離を置きたくなる。自分だけではないと思う

    • 自分も同じ
      Discord は、友人同士で使う一過性のコミュニケーションプラットフォームくらいならともかく、それ以外では本当に嫌い。なのに人々はサポート質問はもちろん、ドキュメントまで Discord を主要プラットフォームのように使おうとする傾向がある。検索品質も悪いし検索エンジンにもインデックスされないので、解決策を探さなければならないときには本当に最悪
  • 良さそう。機能範囲が広くて動く部品も多いはずなので、かなりの作業量だったと思う。少なくとも、テーブルトップゲームに焦点を当てつつ、レンダリングそのものだけに焦点を当てていない ゲームエンジンがあるのはうれしい
    ただ、カードとダイスのゲームを純粋な HTML/JavaScript でオンラインプレイ可能にした立場からすると、このシステムで同じものをどう再現すればよいのかはまだよく分からない。ドキュメントを見るとカードはサポートしているし、抽象化も十分に汎用的でさまざまなゲームに合いそうだが、ステップごとのチュートリアルがあると大いに助かりそう。Actions、Flows、selections、conditions、prompts といった抽象化をなぜ選んだのかは分かるが、実際に組み立てられていく様子を見ないと、自分が変更したい箇所をどこで変えればいいのか感覚がつかみにくい。チュートリアルなしでは、個人的には大きく前進するのは難しそう

    • 物理ボードゲームの文脈で見ると、核になるのは2つの主要クラスを基盤にしているように見える。手元にあったりプレイヤー(Player)間を移動したり、テーブル上の空間(Space)に置かれたりするもの、つまり Piece を扱う構造
      カードとダイスは Piece を継承して定義し、プレイヤーは Player を継承させたうえで、デッキを管理する Teller のような存在も Player として置ける。その次に、ルールに必要な Space インスタンスをボード上にどう配置するかを考えればよい。ルールは Game クラスのインスタンス内に入り、その中には Action クラスのインスタンスであるアクションの概念がある。このアクションは、ユーザープロンプト、合法的に実行できる条件、実行効果を定義する引数を受け取る。それ以外にも、ピースの検索、比較、期待できそうな便利関数がかなりあり、残りはゲームロジック次第。サンプルを見ると SpacePiece をフィルタリングする関数もあるので、UI ロジックを素早く作れそう
    • ドキュメントはもっと増やしたいが、かなり時間がかかる。単純に見えるゲームでも、定型化された API に移そうとすると途方に暮れることがあるのは理解している。参考になるか分からないが、ゲームの一部を作る動画を録画してある
      https://docs.boardzilla.io/game/creating-a-game
  • プロジェクト名に *Zilla を付けない方がいい。Godzilla の著作権保有者は、「Zilla」接尾辞を使おうとするところを積極的に追跡することで知られている。Mozilla もずっと前に教訓を得て、別途合意を結ぶ必要があった

    • まったく知らなかった。かなり良い別のドメイン名もいくつか用意してあるので、そろそろ決断しないといけないかもしれない
    • これが Godzilla やその著作権とどう少しでも関係するのか分からない。巨大な核怪獣とはほど遠い
      Toho が敗訴した唯一の商標事件は、「trashzilla」というゴミ袋会社を相手にしたもので、Toho の事業上の利益に危険を及ぼさないという点も理由だった。追記:ロゴを見ていなかった。これは確かに問題になり得る
    • これはかなり驚き。*Zilla の著作権がそんなに攻撃的だとは知らなかった
    • Meta も 「book」で終わる商標の出願者に対して商標権を積極的に行使している
    • Revzilla と Partzilla も *zilla という名前をめぐって長い法的紛争を経験した
  • 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はもともとゲーム開発者の間ではかなり人気のある選択肢でした。ゲーム内にスクリプト言語を簡単に埋め込めることが理由の一つです
      クラスがなくてもオブジェクト指向プログラミングは可能です [0]。それに、新しいプログラミング言語を学びたくないという理由で、開発者にプロジェクト全体をPythonへ移植して保守してほしいと期待するのは無理があります
      [0]: https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...
    • サーバーがPythonではない理由は、boardzillaではゲームをクライアント用とサーバー用に二度表現しないからです。代わりにTypeScriptで一度だけ書き、そのコードがサーバーとクライアントの両方で実際に使われます。クライアントは隠し情報だけがないサーバーのように動作します
    • バックエンドにPythonをそこまで強く望む理由が気になります。TypeScriptはバックエンドでもさまざまなフロントエンドでも動くので、かなり筋の通った選択です。WebだけでなくUnityのようなゲームエンジンでも使えます。型システムもPythonより優れていますし
    • Asmodeeのビジネスモデルとは何で、それがBGAとどう関係しているのか気になります
    • TypeScript自体は問題ありませんが、React部分が気になります。ゲームのフロントエンドには、ReactよりSvelte、Marko、Solidのようなもっと軽量なものを望むのではないでしょうか?
  • 良いですね。いつかWebゲームにしたいボードゲームのプロトタイプがかなりたくさんあるので、ボードゲーム制作用の汎用ライブラリ関数を少し書いてみたことがあります。グリッド生成、カスタムダイスロール、カードのドロー、トーナメント関数、複数のシナリオを見せるテストなどいくつかで止まりましたが、他のプロジェクトと並行しているので、きちんと作る時間はなさそうです。このライブラリがどれくらい簡単に使えるのか、一度見てみたいです
    BGAプラットフォームを学ぶのはかなり苦痛だという点には同意します。1) プラットフォームに縛られてゲームを他の場所に出せない、2) 全部PHPなので今となってはあまり使いたくない、3) ドキュメントがあちこちに散らばっていて、PowerPointの発表資料まで含まれている、という点です

  • もっと低レベルなものを探しているなら、boardgame.ioをおすすめできます
    [1] https://boardgame.io/

    • boardgame.ioも十分おすすめできます。Nicoloは本当に親切で、よく助けてくれます。別プロジェクトの https://boardgamelab.app/ も確認してみるとよいです
  • この分野は本当に難しいです。成功するには、すぐにヒットするゲームがあるか、1年中毎日プレイヤーを集めるために相当なコミュニティ面の努力を注ぐ必要があると思います
    BGAの代替がほとんどなかった初期に、https://acos.games で運試しをしてみました。今でも暇なときに裏で開発を続けています。最大の失敗はUI/UXでした。人々は裏側に隠れている素晴らしい技術にはあまり関心がありません

    • とてもよく作られているように見えます。ドキュメントも非常によく書かれています。今すぐ使う用事はありませんが、何が可能なのかを見るためにドキュメントを読むだけでも面白かったです。状態管理とゲームのリプレイ機能が良さそうでした。私もゲーム集を自作していますが、他の人が統合できるほどシステムを柔軟にすることを考えるだけでも大仕事に感じます。投入された作業量はすごいです
  • とても素晴らしく見えますし、スタートおめでとうございます
    プロトタイプ開発には優れているかもしれませんが、BGAの代替を作るなら、パブリッシャーからゲームの実装/配布許可を得る必要があるでしょう。BGAは非常に大きく、Asmodeeの所有なので簡単ではなさそうです。私が間違っていることを願います

    • 法律の専門家ではありませんが、同じカード/ボード画像を使ったり、ルールブックを文字通りコピーしたりしない限り、ゲームメカニクスは著作権保護の対象ではないようです
      「要約すると、名前とロゴは商標で保護でき、アートには著作権があります(ボード自体もアートとして可能)。メカニクス、手順、ルールは著作権では保護できません。だからMonopoly/Scrabbleのクローンが存在します。」
      https://www.reddit.com/r/gamedev/comments/10f2nov/comment/j4...
      ここではこのYouTube動画を参照しています
      https://www.youtube.com/watch?v=iZQJQYqhAgY
    • Asmodeeが事実上、本当の競合が市場に入ってくるのを阻んできたという点には全面的に同意します。BGAと正面からぶつかるより、インディーパブリッシャーのより小規模なゲームに目を向けるというアイデアを持っています。どれほど実現可能かは分かりませんが、他に何をすべきかもよく分かりません
  • 本当に素晴らしそう。実際に触ってみるのが楽しみ
    同時アクションを可能にする everyPlayer フローコマンドがあってうれしい。自分が使ってみた他のボードゲームフレームワークには欠けていた機能
    [1]: https://docs.boardzilla.io/game/flow#everyplayer

  • すべてのサンプルゲームでエラーが出る
    Object.hasOwn is not a function. (In 'Object.hasOwn(e,A.from)', 'Object.hasOwn' is undefined)
    スタックトレースは次のとおり
    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
    ポリフィルを入れる必要がありそう

    • ポリフィルを入れた。直ったか教えてもらえるとありがたい
    • ポリフィルを近いうちに入れる予定