autonomous-2Ddot-crypto-world
私たちはブロックチェーンとAIを活用した完全自律型のフルオンチェーンゲーム世界を作りました。 プレイヤーの行動記録をチェーンに刻みAIがそれを基にゲーム世界と新たなユーザー体験を創出します。 この基盤を用いた2Dドットオンチェーンゲームがautonomous-2Ddot-crypto-worldです。
対応した問題
MUD
デフォルトではLatticeの提供するテストネットで動作するようになっていたが、これをMumbaiネットワークに対応させるに苦労した。
最初デプロイしようと考えていたマップは20×20であったがこれについては、デプロイが正常に終了しないため、5×5にするなどしてMumbaiネットワークでも動くように是正したことが苦労した点。適宜Latticeのチームに質問して意見をもらいながら開発を進めた。
ChainLink functions
Chainlink functions側の制約で実行時間(9000ms以内)およびデータ量の制約から最適なエンジニアリングになるように試行錯誤した点
Oasysブロックチェーンを利用する理由
Oasysはゲームプロジェクトに親和性の高いチェーンですので、ゲーム上での操作一つ一つがオンチェーンに刻まれるMUDとの相性が良いと考えています。
また、従来のブロックチェーンであれば操作の度に少額のガス代がかかってしまいますが、Oasysであればガスレスでそれを実現することができると考えました!
デプロイするコントラクト数も膨大なのでそこにガス代がかからない点もMUDとの相性が良いと考えています!
Blockchains I used
1. Mumbai Network (client)
2. Shibuya Network (vote-app)
Technologies I used
1. MUD
2.MODE
3.React
4.pnpm
5.hardhat
6.foundry
7.OpenAI api
8.Chainlink functions
9. Tailwind CSSVite
How we built it
- jhcoder(チームリーダー)
フロントエンド
バックエンド
スライド&デモ動画担当
MUD Worldコントラクト, MODEの調査
プロンプトエンジニアリング
- soma
MUD WorldコントラクトとPolygon Mumbai Networkの接続
- mashharuki
バックエンド担当
MUDとChainlink functionsの調査担当
Voting app 担当
What we learned
- ChainLink functionsの概要と使い方を学びました。これにより、任意のスマートコントラクトを自動で実行させることができるようになりました。
- スマートコントラクト用フレームワークMUDの概要と使い方について学びました。
- ChainLink functionsを使って任意のAPIの実行結果をスマートコントラクト越しに取得する方法を学びました。今回は、ここからOpenAIのAPIを呼び出して結果を取得するように設計しました。
- MUDのドキュメントや、コミュニティで質問から、フレームワークの意図や使い方を学びました。その中で、適したチェーンやアプリケーションの構成を理解しました。
What's next for
現在は、WorldContractをデプロイした後に手動でWorldコントラクトをデプロイすることになっているので、今後の課題としてはChainlink FunctionもしくはChainlink Automationを使って自動でマップコントラクトの情報が更新される状態にし、完全な自動化を目指す。また、この際WorldContractを更新するコードはOpenAIのAPIを使って出力されるものを想定している。投票機能のフロントエンド組み込み。
deployしたコントラクト
World コントラクト - Mumbai
https://mumbai.polygonscan.com/address/0x0b90377Db497D52F580896AC4Af8b4Bc2b7CFEd2
FunctionsConsumer.sol - Mumbai
https://mumbai.polygonscan.com/address/0x8F6631e30a2cF2Bd017595f3215F550f0613170Cå
Voting コントラクト - Shibuya Network
https://shibuya.subscan.io/account/0xbfDe6e57dD7f54D496B896f6c7d551eE40d3BEB0