【Docker】MoinMoinWikiの立ち上げから設定まで

はじめに

MoinMoinをDockerで立ち上げたのでまとめときます。

TL;DR

  • これクローンしてdocker compose up -d する。

立ち上げ

lukasnellen/moinmoinを使用する。

前提として、DockerとGitをインストールしておく。

    1. リポジトリのクローン
      git clone https://github.com/lukasnellen/dc-moinmoin.git
    2. ポートの設定
      クローンしたディレクトリ内のdocker-compose.ymlで使用するポートを指定する。
      8行目に以下を追加する。

      ports:
        - "8989:8080"
    3. 構築・起動
      docker-compose.ymlがあるディレクトリで以下を実行する。

      docker-compose up -d

      立ち上げ完了。
      ここまでくればlocalhost:8989から接続できる。

設定

実際に使うには少し設定が必要。
立ち上げたMoinMoinに接続したときに表示されるWelcomeページの通りに設定すればいいだけだけど、英語だからここにまとめておきます。

  1. スーパーユーザー用のアカウントを作る。
    MoinMoinロゴの左のログインボタンからログインページに飛ぶ。
    作成ボタンから適当にアカウントを作成。
  2. いろいろ設定
    dc-moinmoin/moin-config/wikiconfig.pyに設定を編集する。
    スーパーユーザーにするアカウントの名前を入力

    superuser = [u"MoinAdmin", ]

    フロントページを設定する。
    以下の#を消す。

    # page_front_page = u"FrontPage"
  3. 設定反映

コンテナを再起動して設定を反映する。
コンテナ名が違う場合は差し替えてください。

docker restart dc-moinmoin_moin_1

 

以上でMoinMoinが使えるようになりました。
後は各自必要な設定をしてください。(アカウントの権限等)

【Unity】CCG Kit 使い方

はじめに

デジタルカードゲームを作るにあたって、CCG Kitを使用しましたが、いろいろ躓いたので記しておきます。

概要

CCGKitは、日本でいうデジタルカードゲーム(DCG)のテンプレートプロジェクトです。

同梱されている完成プロジェクトから、DCGを作るにあたっての設計や実装を参考にすることが出来ます。

また、通信にUNETを使用しており環境の構築も簡単になっています。

インストール

Unity version 2.17f1

  1. Unityで空の2Dプロジェクトを作成する。
  2. TextMeshProのセットアップを行う。
  3. Package ManagerからMultiplayer HLAPIをインストールする。
  4. アセットストアからDOTweenをインポートし、セットアップを行う。
  5. fullserializerをダウンロードしプロジェクトにインポートする。
    fullserializerをダウンロード後、fullserializer-master/Assets/FullSerializer/Sourceをプロジェクトに入れる。(fullserializer-master/Assets/FullSerializer/Testingを入れるとエラーが発生する)
  6. CCG Kitをインポートする。
  7. ガイドに従いUnityMultiplayerをセットアップする。

デモ

Assets/CCGKit/Demoにデモ用のAssetが入っています。
Scenes/Homeからゲームをプレイすることが出来ます。

CCG Kit Editor

CCG Kitには、ルールやカードの編集用拡張エディタが付属しています。

デモのルールを編集するにはCCG Kit EditorのOpenから、Assets/CCGKit/Demo/Resourcesを選択します。

このCCG Kit Editorは基本的に拡張されることを念頭に置いており、そのままだと非常に狭い範囲でしか変更が出来ません。
また、既存の選択肢であっても、組み合わせによって重大なバグが発生することがあります。
追加のルールや動作を加えたい時には、自分でソースコードをいじる必要があります。

データの実態はAssets/CCGKit/Demo/Resources内の「card_definitions」「card_library」「card_types」「game_properties」「game_zones」「keywords」「player_stats」に保存されており、それぞれファイルを直接編集することもできます。

基本的には書いてある通りに設定していけば大丈夫ですが、いくつか注意点があるのでタブごとに書いていきます。

  • Game configurationタブ
    ゲームの流れを設定するタブです。
    デフォルトでTurn start actionsにSet player statがあります。

    UI上ではマナは10までしか表示されないにも関わらず、これだと11ターン以降で10マナを超えてしまいます。SetPlayerStatAction.csにMaxValue等のパラメータを追加し制限する必要があります。
  • Game zonesタブ
    カードの置き場を設定するタブです。
    新しいGame zoneを追加する場合、各zoneからの移動処理には十分気を付けてください。安易にzoneを追加するとカードがゲーム画面に残り続けたりヌルポになったります。
  • Playerタブ
    プレイヤーにまつわるパラメータを管理する画面です。
  • Card typesタブ
    カードの種類をそれぞれ設定するタブです。
    デフォルトではカードに必要なコストはCard statsになっていません。
    自分でCard statsにマナを扱うパラメータを追加したほうがいいです。
    一度パラメータを追加してしまうと、Card collectionタブの設定項目に追加されてしまうため注意してください。消す場合には、設定ファイルを自分で書き直す必要があります。
  • Keywordsタブ
    名前がついている効果を設定するタブです。
    このタブでは名前を登録するだけで、効果自体は自分で実装する必要があります。
  • Card collectionタブ
    カードを管理するタブです。
    おそらくCCGKitEditorで一番長い間開く画面だと思いますが、ずっと編集しているとどんどん動作が重くなっていくので定期的に開きなおしてください。
    Textはリッチテキストであるため、太文字や色タグに対応しています。
    Abilitiesには「Triggerd Abilitie」と「Activated Abilitie」がありますが、「Activated Abilitie」はUI上未実装であるため、自分で実装する必要があります。
    Effect内に、MoveCardEffectがありますが、そのままだと自由に使うことが出来ません。Hand -> Graveyard のように設定すると、カードが手札に残ったままになってしまうため、実装が必要です。

バグ

UNETを使用している以上仕方がないのですが、とにかくメッセージが届かないことが多いです。どうしても気になる際はGameNetworkManager.csから、UNETのConnectQoSをReliableにしてあげると大分ましになります。

デフォルトのフォントだと日本語に対応していないため入れ替えてください。

基本的にカードの効果で複雑なことしようと思うとバグります。根気よく付き合いましょう。

 

 

以上です。カードゲーム作るのめちゃくちゃ楽しいので是非挑戦してください。
このアセットは定期的にセールされているため要チェックです。