/udonarium

WebRTCを使ってブラウザ間通信を行うオンセツール

Primary LanguageRubyMIT LicenseMIT

ユドナリウム

ユドナリウム(Udonarium)はWebブラウザで動作するボードゲームオンラインセッション支援ツールです。

GitHub license

Udonarium

クイックスタート

今すぐ試したり利用したりできる公開サーバを用意しています。
推奨ブラウザはデスクトップ版Google Chromeです。

ユドナリウムをはじめる

目次

機能

  • ブラウザ間通信
    • WebRTCを利用したブラウザ間通信を実現しています。
      サーバサイドを介さずに全ての機能をWebブラウザ上で完結させることを目指しています。
  • 軽量 & リアルタイム
    • 軽量で快適に動作し、ユーザの操作は他のユーザにリアルタイムに反映されます。
  • 遊ぶ機能
    • ルーム機能
    • 複数テーブル管理、テーブルマスク
    • 立体地形
    • コマ、カード、共有メモ
    • チャット送受信、チャットパレット
    • ダイスボット(BCDiceOpalでJavaScriptにトランスパイル)
    • 画像ファイル共有
    • BGM再生
    • セーブデータ生成(ZIP形式)

サーバ設置

ユーザ自身でWebサーバを用意し、そのサーバにユドナリウムを設置して利用することができます。

  1. リリース版(udonarium.zipをダウンロードして解凍し、Webサーバに配置してください。
    開発者向けのソースコードをダウンロードしないように注意して下さい。
  2. SkyWayのAPIキーを取得し、APIキー情報をassets/config.yamlに記述します。
  3. サーバに配置したユドナリウムのindex.htmlにアクセスして動作することを確認してみてください。
    上手く動作しない時は付属の上手くサーバで動かない時Q&A.txtを参照してください。

ユドナリウムはサーバーサイドの処理を持たないので、CGIやデータベースは必要はありません。

開発者クイックスタート

ソースコードはそのままでは実行できません。
開発環境を用意してビルドする必要があります。

開発環境

Node.jsnpmが必要です。

言語はTypeScriptを用い、Angularで実装されています。
開発を効率化するCLIツールとしてAngular CLIを利用しています。

インストール手順はAngular公式ページのセットアップが参考になります。

Angular CLI

リポジトリからソースコードをダウンロードした後、初回起動時のコマンドは以下のようになります。

cd ソースコードを展開したディレクトリの場所
npm install
ng serve

ng serveを実行するとhttp://localhost:4200/で開発用サーバが起動します。
いずれかのソースコードを変更すると、アプリケーションは自動的にリロードされます。

ng buildでプロジェクトのビルドを実行します。ビルド成果物はdist/ディレクトリに格納されます。
ng build --prodを使用すると、最適化された本番環境向けビルドが生成されます。

SkyWay

このアプリケーションは通信処理にWebRTCを使用しています。
WebRTC向けのシグナリングサーバとしてSkyWayを利用しているため、動作確認のためにSkyWayのAPIキーが必要です。

取得したAPIキーの情報はsrc/assets/config.yamlに記述します。

開発に寄与する

バグを報告したり、ドキュメントを改善したり、開発の手助けをしたりしたいですか?

報告や要望の窓口としてGitHubのIssue、またはTwitterを利用できます。
コードのPull Requestも歓迎です。

報告

バグ報告では、バグを再現できる必要十分な条件について、分かっている範囲で詳しく書いてください。
基本的には「報告を受けて改修 → 次回更新時に反映」の流れで対応する予定です。

要望

機能要望では「何故それが必要なのか」について説明があると良いです。
ただ、難易度や優先度の都合によりそっとしたままになる可能性があります。

Pull Request

作成したコードやドキュメントをこのリポジトリに反映させたい時はPull Request(PR)を送ってください。

PRのコードが完全ではない場合でも作業中PRとして送ることができます。
その場合、作業中である旨をPRタイトルか説明文に付け加えてください。

今後の開発

最低限必要となる機能は実装されていますが、作業すべき課題が残されています。

  • UIデザインおよび操作性の改善
  • モバイル向け対応
  • 機能追加
  • ドキュメント整備

License

MIT License