Hanabiアプリ

Hanabiアプリは,Python,JavaScript,HTML,CSS,p5.js,およびFlaskを組み合わせて構築された,オンラインでゲームプレイ実験が可能な研究用アプリです.

アプリケーションのパッケージ入手をご希望の場合は,Memberよりお問い合わせください.

本ドキュメントの記載についての質問は,余裕があればお答えしますが限界がありますことご了承ください.

目次

とりあえずサーバを立ち上げてゲームを遊びたい人

以下はnginx + gunicorn構成の一例です.状況に応じて適宜変更してください.

  1. 事前準備

    Nginx+Gunicorn構成でFlaskを使う方法を参照し,事前準備を完了してください.nginx.confを同梱しています.

  2. 依存関係のインストール

    pip install -r requirements.txt
  3. アプリサーバの立ち上げ

    gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 "example_run_app.py:run_app()"

※本番環境では,セキュリティのためパスワード等を平文管理しないよう注意してください.

AIを作ってサーバに搭載したい人

AIを作りたい人むけの記述はhanabiapp\game\agent\README.mdに分離しました.ドキュメントはコチラを参照してください.

サーバの機能やゲーム画面を編集したい方

HanabiアプリはMVCアーキテクチャを採用しています.変更を加える際は以下を参考にしてください:

フォルダ構成

            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バージョンがあれば動作すると思います.安定したネット回線の方が重要です.