Hanabiアプリ
Hanabiアプリは,Python,JavaScript,HTML,CSS,p5.js,およびFlaskを組み合わせて構築された,オンラインでゲームプレイ実験が可能な研究用アプリです.
アプリケーションのパッケージ入手をご希望の場合は,Memberよりお問い合わせください.
本ドキュメントの記載についての質問は,余裕があればお答えしますが限界がありますことご了承ください.
目次
とりあえずサーバを立ち上げてゲームを遊びたい人
以下はnginx + gunicorn構成の一例です.状況に応じて適宜変更してください.
-
事前準備
Nginx+Gunicorn構成でFlaskを使う方法を参照し,事前準備を完了してください.nginx.confを同梱しています.
-
依存関係のインストール
pip install -r requirements.txt
-
アプリサーバの立ち上げ
gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 "example_run_app.py:run_app()"
※本番環境では,セキュリティのためパスワード等を平文管理しないよう注意してください.
AIを作ってサーバに搭載したい人
AIを作りたい人むけの記述はhanabiapp\game\agent\README.mdに分離しました.ドキュメントはコチラを参照してください.
サーバの機能やゲーム画面を編集したい方
HanabiアプリはMVCアーキテクチャを採用しています.変更を加える際は以下を参考にしてください:
- ゲームロジック: hanabiapp/game
- バックエンドのデータ管理: hanabiapp/models
- ルーティングとAPI: hanabiapp/views
- ゲーム画面のGUI: hanabiapp/static/sketch_mobile.js
フォルダ構成
hanabi-app/ ├── hanabiapp/ │ ├── config/ # 各種設定ファイル │ ├── game/ # ゲームロジック・エージェント │ │ └── agent/ # AIエージェント │ ├── models/ # データモデル │ ├── static/ # 静的ファイル(JavaScript,CSS) │ ├── templates/ # HTMLテンプレート │ └── views/ # ビュー(Flaskのルーティング) ├── instance/ # SQLiteデータベース格納 ├── tests/ # テストスクリプト ├── docs/ # ドキュメント ├── requirements.txt # 依存パッケージリスト ├── nginx.conf # nginxの設定ファイル └── example_run_app.py # 起動スクリプト例
※データベースはSQLite形式でinstance/フォルダに格納されます.
動作環境
これ以上のスペックorバージョンがあれば動作すると思います.安定したネット回線の方が重要です.- OS: Ubuntu 24.04.1 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)
- Windows ver: Windows 10 Home 22H2 19045.5608
- CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
- Mem: 16.0 GB
- GPU: NVIDIA GeForce GTX 1070
- Python: 3.12 (各モジュールのバージョンはrequirements.txt参照.)
- Nginx: 1.27.3
- Gunicorn: 23.0.0