2 ポイント 投稿者 GN⁺ 2024-09-09 | 1件のコメント | WhatsAppで共有
  • coreCoreとは何か

    • coreCoreは、Action-RPGゲーム制作ツール兼エンジンであり、プロパティエディタの形でビデオゲームを記述する実験的な方法である
    • シンプルなコンポーネントシステムを使用し、コンポーネントは[keyword value]形式のclojureベクタである
    • さまざまなエンティティはclojureマップで構成される
    • ゲーム内の副作用は[:tx/foo param]のようなコンポーネントで処理され、これはdatomicの構造に似ている
    • ゲーム全体の状態はapp/stateという1つのatomに保存され、エンティティもメインatom内部のatomとして存在する
    • アプリケーション全体の内容はresources/properties.ednに保存され、malli-schemasを使って検証され、GUIで編集可能である
  • スクリーンショット

  • 開発の始め方

    • 次のコマンドを入力:
      • lein dev
    • アプリケーションが起動し、次の作業も実行される:
      • NREPLサーバーを起動
      • アプリケーション終了時(メインメニューでESC)、clojure.tools.namespaceが変更されたファイルをリロードし、アプリを再起動する
      • エラー発生時はJVMを再起動する必要はなく、エラーを修正してdev-loop/restart!を呼び出せばよい
      • VIMでF5キーに次のコマンドをバインドして使用可能: nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
  • コードライセンス

    • MITライセンスの下で提供される
  • アセットライセンス

GN⁺の要約

  • coreCoreはAction-RPGゲームを簡単に制作できるツールで、シンプルなコンポーネントシステムを使ってゲーム状態を管理する
  • ゲーム全体の状態を1つのatomに保存し、GUIを通じてプロパティを編集できるため、開発者にとって有用である
  • MITライセンスで提供されるが、使用されているアセットは独占的である
  • 類似の機能を持つツールとしては、RPG MakerやUnityなどがある

1件のコメント

 
GN⁺ 2024-09-09
Hacker Newsのコメント
  • さまざまなゲーム開発アプローチを見るのは興味深い

    • Bevy(Rust ECSエンジン): 最初は良いが、実装に問題が多く、複雑になりがち
    • Unity: ゲームオブジェクトとモジュール式コンポーネントシステムが実用的
    • Godot: OOP階層構造と組み込み言語には満足できなかった
    • Pygame: 小規模プロジェクトに向いており、手続き型だが OOP や関数型の階層も作れる
    • Clojure: 関数型の実装が興味深い
  • この GitHub プロジェクトはゲーム開発者にとっては滑稽

    • 学術的アプローチが大げさに感じられる
    • スクリーンショットが見苦しい
  • ゲーム開発を単純化できると主張しているが、多くの用語を使っている

    • Clojure ベクター、Datomic、アトム、トランザクション、Malli スキーマなど
  • このプロジェクトは失敗しているように見える

    • 過度に設計された構造で、明確な構成が欠けている
    • ゲームのストーリーがないため、明確な方向性なしにコーディングしていた
  • ドキュメントがほとんどないこのリポジトリが多くの会話を生み出している

    • コードはゲームエンジンというよりプロジェクトのように見える
    • プロパティエディタは興味深い
    • タイトルのせいでアップボートされたように思える
  • 「ゲームを作りたい」という話が、ゲームエンジンを作ることに変わってしまう例をよく見る

    • 先にエンジンコードを書けば、その後のゲーム制作が楽になるという考えに陥る
    • エンジンを作る方が、ゲームを作るより楽しいこともある
    • エンジンの最適化の方が、より早い報酬を得られる
    • Phaser js エンジンを使って、インタラクティブなものを素早く画面に表示しようとした
  • Clojure は大好きだが、不変データ構造を持つ関数型言語がゲーム開発に向いているのか疑問

  • ゲーム状態が 1 つのアトムに保存され、エンティティがその中にさらにアトムとして保存されている

    • Clojure で「アトム」をこのように使うのが一般的なのか疑問
  • 「ゲームエンジンにかかった時間/複雑さ」vs「作られたゲームの複雑さ/面白さ」のデータを分析すると面白そう

    • 単純なテンプレート/エンジンシステムで作られたゲームは、多様性が減るだろうと予想する
  • Unreal Engine 4 で動く商用ゲーム制作プラットフォームの Core はすでに存在する