定期ゲを語りたい

この記事は定期ゲ・甲 Advent Calendar 2021 - Adventar 12日目の記事です。

前 非対人勢が決闘不可避になったイバラシティでひーこら言いながら対人と向き合った話|御巫咲絢(みかなぎさーや)|note

後 (Rの日記さん!)

 

こんにちは。秋瑞てんです。不奇跡はお散歩日和という定期更新ミニゲームを運営している者です。去年は竹20日目に苦労話の記事を出しました。
今年も進捗報告の記事になりますが、よろしければお付き合いくださいませ。

定期ゲを語りたい

さて、今年の趣味の活動は大体、粛々と新作を開発しながら、休憩の間にTwitterをぼんやり眺めていました。たまに定期ゲの話題が出てくるとそれにぽつりぽつりと反応してアイデアを膨らませつつ、また作業に戻るサイクルを繰り返す毎日…。

10月に入った頃、「定期ゲ民を増やして盛り上げたい」のような何気ないツイートを見かけ。それに対し、ついいつもの癖で空リプしました。

ポジティブなツイートにわざわざ返す言葉じゃなく、今では口に出してしまったことを後悔しているのですが、ただ、以前から不安になっていたことでした。

もし、万が一にも、最近有名に成り上がった数々のゲームような人口の増加をしたら、どうなってしまうだろう…と。

  • 定期ゲはロールをする。ロールにはマナーがある。ガイドライン違反の対応が必要。
  • チャット有の定期ゲは、チャットだけでも大きなサーバー負荷になる。
  • 定期ゲのバッチ処理は、Webアプリにはあまり見ない特別な仕組みで、Webサーバに一時的に大きな負荷をかけるのでグレー。

どれか一つでも対応を誤ると、個人運営のゲームでは破綻してしまいます。ならば、GM同士で情報を共有できる会を作ろう。ということで、「定期ゲ研究会」というものを立ち上げました。

と、動機はこの通りなんですが、「定期ゲについて壁打ちできるDiscordサーバー」という体にしているので、特に活動強制とかはなく、ゆるーいものです。

f:id:teamatsuti:20211212014506p:plain

(定期ゲ研究会 ガイドライン より)

希望者は研究室(チャンネル)を持ち、作っているゲームのこと、定期ゲのシステムについて、好きなことを話しています。色々な方の働きかけのおかげで、現在研究員は15名、総人数40人くらいのサーバーになりました。かの有名な定期ゲ・APゲのGMさんが勢ぞろいです。ありがたい!定期ゲ開発に興味のある方、語りたい方、お気軽にどうぞ!

discord.gg

AP制議論の話

何を話してるんだろうという方向けに、研究会の中でホットだった話題について振り返ってみます。特に熱かったのはAP制ゲームのシステムについてだったと思います。

f:id:teamatsuti:20211212005515p:plain

(定期ゲ研究会・研究室106:kamuro より)

メリットデメリットがいろいろ語られています。

f:id:teamatsuti:20211212005713p:plain

(定期ゲ研究会・研究室102:tyaunen / APゲにおける消化について より)

まとめると、AP制には「暫く溜めておいて状況が動いたら使い始める後出し問題」と「大量のAPが蓄積してしまった時に動きづらい問題」があります。前者は定期制でも似たような問題があったと思います。
それに対するアイデアについて、1APの価値を下げる、配るタイミングを工夫する、色々出てきましたね。詳しくは研究会を覗いてみてください!(丸投げ)

定期ゲテンプレの話

それから研究会としてはこのお話もしておきたく。
定期ゲ研究会が出来て間もないころ、このアドカレで次々とハイレベルな開発技術の記事を投稿してくださっている( 'ω'  )<)さんが、ついに定期APゲームのサンプルを作ってくださいました!(詳しくは11日目乙の記事で!)

sakana-teiki.hateblo.jp

私も触ってみましたが、セットアップは30分くらいでできました。(必要なソフトは最初から入れてあったとはいえ)すごい。これから定期ゲを作ってみたいと思った方は触ってみるのをおすすめします。研究会でもこのテンプレについては触れているので、お話すればさらに情報を得られる…かもしれません。

関連して、定期ゲを誰でも運営できるようにしたい、という試みは各所で進んでいるようです。かくいう私も例のミニゲーム異世界作成機能を持たせています。が、手詰まりを起こして今はその部分の機能を休止中です…(すみません…)。

定期ゲのサンプルを作ったり、定期ゲのプラットフォームを提供したりすることで、シナリオの数が増えて、もっと普及できると良いのですが…。

研究会の活動の話

そのほか、個人でやるより適当な集まりだからできそうなことをぽこぽこやってます。強制活動ではないので、基本活動を立ち上げた人1人だけでもやりきる覚悟は必要ですが。今までやったのは

  • 過去のアドカレ記事の整理

    qiita.com

  • 定期ゲ制作Wikiの作成
  • 架空の定期ゲーの仕様だけ書いてイイね!ってする会
  • 今年度のアドカレの感想会

ですね。2か月間の中では結構密な感じだったと思います。研究員の皆さん、本当にお疲れ様でした。

新作の話

余談ですが、先ほどフランベリーから新作の予告がありましたね。(ぜぇはぁ)

開発の目途が立ったのでようやく情報公開ができました。なにしろここまで4回作り直しをしているので…。

世界観についてはツイートを眺めていただくとして、ポイントは4つ目のツイートの通り、参加には「白」と「黒」の2人分のキャラクターが必要になります。キャラメイクに必要な情報はサイトがオープンされたときに改めて説明しますので、今は「ふ~ん 2キャラ必要なんだな~」くらいの認識でいてください。

システム面は謎の機能がたくさんあります。お楽しみに。

2020年プログラミング関連まとめ

開発PCにある実験PJの更新日時をもとに何を触ったか一覧

BootstrapVue調査

bootstrap-vue.org

Webアプリフロントのライブラリ。Vueでさくっとサイトを作るなら便利。ただ、chunkをコントロールしないとサイズがもりもり増えるなぁという印象。

Svelte調査

svelte.dev

Webアプリフレームワーク。React・Vueと同類の仮想DOMフレームワークで、ページ読み込み時にマウントするのとは違い、typescriptのように仮想タグを事前にトランスパイルするのが特徴。触った時にはまだツール類がなかったので軽く触った程度だけど、今はどうなってるんだろう?

phina.form.js開発

phinajs.com

Canvasフレームワーク「phina.js」のUI部分を拡張するライブラリの開発。結果的に生のCanvasは描画が重いのと、pixi.jsとの連携が結構面倒そうなのでいったん凍結。

vue-d3-network調査

github.com

不奇跡の地図部分で使用しているSVGライブラリ。さくっとSVGを取り入れる際に便利。操作がちょっと癖有りなので、いずれちゃんと作りこみたい。

Go調査

golang.org

Googleプログラミング言語。先日公開したシミュレータはGo言語製。直感で理解できて良いね。Rustとよく比較されるけど、直列はRust・並列はGolangくらいのイメージ(適当)。UnmiracleTailの例の独自言語はバッチ処理用なのでどっちも一長一短って感じで迷った・・・。

Vue+Cordova調査

www.npmjs.com

Apacheクロスプラットフォームフレームワーク。これ一つでブラウザ・AndroidiPhone・デスクトップアプリが作れちゃう優れもの。相応の知識は必要ですが、扱いやすくておすすめ。

AWS Lambda調査

aws.amazon.com

AWSのサーバレスサービス。不奇跡のバッチ処理でお世話になってます。とはいえPerlでやるのはめちゃくちゃ大変だった。

Vue3調査

v3.vuejs.org

Vueの最新メジャーバージョン。APIがいろいろと提供されて、要するにtypescriptとの相性が改善されたもの。不奇跡をOSS化するならVue3で作り直そうかな?フィルターがなくなったのが個人的にはかなしい。

不奇跡世界はお散歩日和

cerberus-diary.sakura.ne.jp

自作定期更新ミニゲーム。詳細はアドカレ記事を見て!

teamatsuti.hatenablog.com

VuePress調査

vuepress.vuejs.org

静的サイト用のフレームワークGitHub上のUnmiracleTailをGitHubPagesで公開したいな⇒静的サイトでないとダメということでこちらに行きつき調査。さすがVue産で作りはしっかりしていて、そこそこ柔軟にカスタマイズできる。

UnmiracleTail

不奇跡世界はお散歩日和のダイスバトルシミュレータ

amatsuti.github.io

制作中・・・

Webpack調査

webpack.js.org

JSのモジュールバンドラーって言ってるけどモジュールバンドラーって概念が混沌。VuePressでカードのJSONを読込の加工をしたいと思ったら、タイミング的にWebpackのプラグインでないと対応できないということで頑張ってプラグインを作った。

不奇跡の通常攻撃

これは「ぼくのかんがえたさいぎょうのゲームバランス部カレンダー」1日目の記事になります。(22日遅れ)

通常攻撃の説明はご存じのとおりということでカットします。 なぜ通常攻撃が最初かというと、そのゲームが何を重きに置いているか大体わかった気になれるからです(傲慢)

不奇跡世界の通常攻撃は、ルールブック上は以下の通り

通常攻撃 手札に使用できるカードがないときに使用します。ダイスを2個振って物理攻撃します。

普通ですね。物理攻撃の性能は打撃等よりは控えめです。 特徴を強いて言うなら、良くも悪くも打撃等の通常のカードとほぼ同等に扱われているところですかね。

通常攻撃時効果

通常攻撃は技名の無い攻撃行動全般のイメージがあるので、そのためならゴリゴリに動きを変えられるようにしたい願望があります。 たとえば次のような動きは作ってみたい。

  • 対象が行動する前に2回以上通常攻撃ができる場合、2回目の通常攻撃が2回攻撃に変化
  • 対象が自分を狙っている場合、1回だけ攻撃を受けるバリアを獲得
  • 直前の攻撃からコンボ中の場合、SPを回復してコンボ状態を継続

やっていることは通常攻撃なのに、色々な通常攻撃時パッシブ効果でなんか賢そうに戦ってるのどうですか?私は見たい。

通常攻撃 vs スキル

通常攻撃で戦う人とスキルで戦う人、両方いてほしいと思っています。 前者の場合はパッシブ効果で戦う感じですね。瞬間火力は出ないものの、DPSと安定性が高い。後者は瞬間火力は出るが、SP不足・弱点を突かれると脆い。こういう住分けにしたい。

こんなかんじでつづくの?ほんとに?

オリジナル言語の文法について

全快の記事でちらっと出てきたオリジナル言語の話ですが、文法の特徴を紹介します。

この言語はNoCode・ユーザ定義用に作られており、現状はJSON形式をサポートしていますが、要はオブジェクトの配列が扱えればXMLだろうがなんだろうがこの言語を扱うことができます。

プロジェクトの構造はごく普通のオブジェクト指向で、1ファイルに1つのクラスを定義し、1つのクラスにはメンバーメソッド・変数を持ちます。 コードの中身はほぼ関数型言語で、基本的にはCallオペレーターでメソッドの呼び出しを並べることになります。

次がhello!world!を出力するコードです。

[{
  "@method":"echo",
  "code":[{
    "@call":"common.echo",
    "arguments":{
      "value": "hello!world!"
    }
  }]
}]

「@method」がMethodオペレーターでメソッド定義、「@call」がCallオペレーターでメソッド呼び出しになります。つまり、「common.echo」メソッド(引数valueの値を標準出力に出力)を呼び出す処理内容のechoメソッドを定義しています。

この言語はif文やfor文を極力書かないようにするため、いくつかの特別な文法を持っています。その一つにフックがあります。この言語の中心的存在です。

たとえば、カードの基底クラスを作って、スキル毎に派生のカードを作るとします。また、カードは効果の発動内容を定義したuseメソッドを持つとします。このとき、強力なカードを作るなら、コストなどの発動条件を付けたいと思うでしょう。すると、普通の言語はこう書きます。

function use ( ... ) {
  if (キャラクターのMP >= カードのコスト) {
   (カードのコストを支払う)
   (効果発動)
  }
}

このようにif文で成功と失敗を振り分けますね。ただ、私はこのプログラムに不満を持っていました。

  • 条件分岐と効果発動が混在している
  • 条件分岐はtrueかfalseを返し、その結果、効果発動を実行するかしないかの2択でしかないが、条件が複雑になると可読性が大きく下がる
  • 関数型で上を実装する場合、式がないと不便

この時、カードのメソッドの処理は、ほとんどが主体処理と条件処理に分かれていることに気づきました。そこで「フック」という機能を作りました。例の場合こうなります。

[{
  "@method": "use",
  "hook": ["card.cost"],
  "args": { "cost":10 },
  "code": [
    ...
  ]
}]

「hook」パラメータはメソッドの配列を指定します。「args」パラメータはuseメソッドのデフォルト引数です。この場合、処理順はcard.cost⇒codeパラメータになります。card.costメソッドはcostをコストとして払い、払えなければ後続のhookとcodeを実行しないメソッドです。card.costの処理内では、useメソッド呼び出し時の引数を自分の引数として使用することができます。つまり「card.cost」処理内でcostパラメータが使えます。

このようにすれば、メソッドの処理の主体はcodeパラメータに書かれており、実行条件としてcard.costメソッドによるコスト消費があるということが明確になります。

どうして引数をフックとcodeで共有できるようにしたのかというと、フックは条件だけでなく、予備動作的な役割を持つためです。たとえば、以下のように。

[{
  "@method": "use",
  "hook": ["dice.throw", "card.cost"],
  "args": { "cost":10 },
  "code": [
    ...
  ]
}]

hookパラメータに「dice.throw」メソッドを追加しました。dice.throwメソッドはダイスを振ってdice引数にその目をセットします。こうすると、useメソッドが呼び出されたからダイスを振り、その目を引数としてカードの効果が発動するようになります。もし「最悪の目を出したときにコストが倍増する」ようなルールがあれば、dice.throwメソッド内でcost引数を上書きすればよいでしょう。このように、主体を実行するための条件や動作を、フックがすべて処理するような仕組みになっています。

Unmiracle Tail

この記事は定期ゲ・竹 Advent Calendar 2020 - Adventar 20日目の記事です。

f:id:teamatsuti:20201220000122p:plain

 

前 (進捗ダメです※執筆中)TRPGのキャラ作成論を定期ゲでそのまま使うやつ【平面・半円・円形のキャラ造形】|GT|note

次 (Story of Lost Artifactさん!)

 

f:id:teamatsuti:20201219092101p:plain

ウーウーウーウー・・・

「この中に定期ゲGMはいないか!?助けてくれ!すぐに定期ゲを作りたいヤツがいるんだ!!! 」
「まずい…やる気が低下している!このままじゃ完成までもたない…!!!」
「応援絵!応援絵はまだなの!?」
「制作停止!うちの子マッサージを!」
「しっかりしろ!資料はアドカレに作った!ソースも言われれば出す!だから・・・!だから・・・!!!」

ウーウーウーウー・・・

「・・・もう、だめだ・・・。ゲームを作るには、ゲームをやめなきゃいけない・・・。それも一日二日とかじゃあない。年単位だ。耐えられるわけがない・・・。」
「・・・こいつはもう・・・」
「う、うわぁああああああぁぁぁ・・・!!!!」

ピンポーン♪

ここで定期ゲ制作に必要な技術を整理してみよう!

一つWebサイトを作る技術
二つバッチを作る技術
三つゲームを作る技術
四つシナリオを用意しPCを燃やす攻撃力
五つ叩かれても動じない防御力
六つ運営し続ける体力
七つ更新失敗しても諦めない精神力

無理!!!!!!!

\ チュドーン /

ザザーーーッ ブツ

 

こんにちは。秋瑞てんです。今年の2月頃から定期更新ミニゲーム「不奇跡世界はお散歩日和」を趣味で細々と運営しているGMです。今日は不奇跡世界はお散歩日和について・・・それとアドカレのためにシミュレータを作ったお話しをします。

まずは改めて、「不奇跡世界はお散歩日和」について簡単に紹介します。このゲームは1日1回ダイスを振って探索する定期更新ミニゲームです。ゲームそのものにクリアはなく、今のところプレイヤーがエディタ機能で作ったイベントを拾って、ミニゲームの範囲で気楽に楽しみながら、キャラクターをのんびり育てる感じです。そして、プレイヤーは「異世界」を作ることができます。つまり、簡単なシナリオであればサーバを用意しなくても定期更新ゲームを作れちゃいます。

f:id:teamatsuti:20201219150947p:plain

しかし元々初公開時に告知していたように、GMの砂場・実験場なので、いろんなものが中途半端です。最近はあまりないですが、毎日更新なので、更新失敗するとGMからぐぅの音が出てました。それでも遊んでくれてとんでもないステータスまで育ったキャラクターがいたり、直接応援してくれている方々がいらっしゃったおかげで、「ありがたぁい…!ありがたぁい…!」という気持ちで、更新失敗にもめげず、今日まで続いています。もうすぐ一年なので、既に第300回更新は超えていますね。ありがたぁい…!

ちなみに今から登録しても大丈夫です。PK・直接的な交流要素はないのでソロでものんびりできますし、異世界ではステータス補正を受けて調整されます。定期ゲというジャンルに気兼ねなく触ってみたい・とにかく定期ゲに飢えている・本番前のウォームアップ、どれでもよしです。うちの子をとにかく動かしたい向けのゲームなのです。

 

Q. 進捗どうですか?
A.

f:id:teamatsuti:20201219092112p:plain

 

表からはいつまでたっても進んでないように見えますが、裏では黙々と実験してます。ここ最近の実験をかいつまんで振り返ってみます。ここからは技術用語が草むらから飛び出してくるので、読めなかったら踊ってあげてください。

不奇跡世界はお散歩日和

f:id:teamatsuti:20201219150745p:plain


「うちの子を気が向いたときに旅させられないかな」

真面目に考えると大人の事情で色々面倒で、誰も思いつかなかったわけじゃないタイプの理想論。とにかくやってみようかという気持ちで、基礎部分は前作(ケルベロス戦記)を使い回し、2週間ほどで初版を作りました。

本当は表の部分をもっと作ってばんばんアピールしたかったのですが、有名どころの定期ゲは素晴らしいアイデアを競うようにアップデートしています。なので自分が攻めるべきは表じゃなく裏の方だなと思い、逃れて地下にこもり、野望を胸に抱いた悪の科学者のように開発を続けているのでした。コミット回数だけで言えば不奇跡だけで440回、打ったバージョンは49個なので、およそ毎日1回以上更新し、週一回はバージョンアップしてた計算になります。…ほんとに?(驚愕)

動画風更新結果

f:id:teamatsuti:20201219153037g:plain

ケルベロス戦記の流用で、一般的なログの結果とは別に、動画風の更新結果が出るようになっています(上記はケルベロス戦記の動画風結果)。去年の記事でも動画風の結果は紹介しましたが、現状動画風の側で表示できる情報量が少ないので「何が起きているかわからない」といった声もあり、不奇跡では普通のログ形式の結果と両方出すことにしました。
これ単体はスマホとの相性も悪くなく、見た目にパワーはありますが、この機能で一番やりたいのはリアルタイム放送なんです。近い機能が不奇跡TVって形で既にありますが、これを更新中にyoutubeとかで垂れ流し放送して、終わったら更新結果公開みたいなのが理想です。

この機能はphina.jsというゲームライブラリにお世話になっています。直感的に扱えて、中身もシンプルなので応用が作りやすくとても助かってます。ゲームを作ってみたい初心者にお勧めです。

phinajs.com

canvasの描画はwebGLを使った方がパフォーマンスがより良いですね。不奇跡の雨の表現の実験で、pixi.jsを混ぜこんでます。ゲーム制御としてはphina.jsが使いやすく、重い描画とかはpixi.jsをうまく使っていきたいですね。

www.pixijs.com

 

AWS Lambda連携

定期ゲの更新バッチ、どこで更新しますか?

ダウンロードして手元のPCで更新が一番手堅いですね。規模が小さければサイトのサーバ上でそのまま更新するのも良いでしょう。定期ゲ開発のちょっと悩ましい問題に、更新処理バッチの運用があります。

不奇跡の更新処理はAWS Lambdaというサービスを利用しています。更新処理の時だけ借りられるサーバみたいなものです。使った分だけ課金されるのでスケールに強いです。あと、無料利用枠が結構大きいです。定期的に時速100kmで走る気分で使うくらいなら枠の中に納まると思います。ちょっとの開発の手間でサイトのサーバの負荷を安全に分担できることを考えれば、悪くない選択肢かなと思い、土足で踏み入るごとくPerlで開発し始めました。LambdaはPerlを公式には対応してないのでちょっとの手間どころではなくそこそこひどい目にあいました。
苦労の甲斐あって今のところ快適そうに動いています。とはいえ、Lambdaにもタイムアウトは存在するので、タイムアウト回避の開発をしなければいけません。この物理的な課題が理由で、今のところ大きな声で宣伝できないという状況にあります。

なぜわざわざクラウド上で更新するシステムを作ったのかというと、将来的に更新処理サーバを公開して貸し出すためです。
更新処理のスクリプトと行動宣言データをサーバに投げれば更新結果が返ってくるの、どうでしょう?制作者は定期ゲサイトの作成に集中できるわけです。私は欲しい。早く作って。

異世界創造

f:id:teamatsuti:20201219154225p:plain

定期ゲにはRPGツ○ールみたいなのがないですね。近いのは見かけるんですが。更新処理バッチ、独特なシステム、交流要素、サーバ公開の仕組み、この辺を丸っと提供するのは、手が出しづらいと思います。しかし定期ゲをもっと広めるならば、ライブラリやフレームワークだけでなく、このようなサービスの存在も不可欠です。

不奇跡では、「とりあえず自分用にシナリオを画面上で作って動かせるものを作りたいな~」ということで、異世界創造機能ができました。2か月くらいで。稼働開始からステータスを基本ステータス以外も自由に持てるようにしたり、ルールを選択できるようにしたのも、全てこの辺まで視野に入れています。

このようなシステムの話とは別に、もともと作りたかった物語の世界観的に「他の世界とつながる」というのは必須でした。作った世界は独立しておらず、スポットから侵入でき、既存キャラクターで世界を渡り歩く冒険者のようなプレーが可能になっています。

また、7月ごろにテストプレー機能ができました。任意のタイミングで更新処理を回せるという恐ろしい機能です。Lambdaのおかげで何とかなりそうです。10月にはカードインポート機能ができ、他の世界で作成したカードを共有できるようになりました。これは、他の世界の世界観・法則そのものを共有できることを意味します。

 

ほうほう、Lv2では異世界創造機能。ではLv3はどうなりますか?

不奇跡世界はお散歩日和Lv3

私は「定期ゲ作りましょう!」と勧めるのは慎重です。いくらフレームワークやライブラリを用意しても、プログラミングを扱う以上、専門知識や助けは必要ですし…。

一方、業界的に、WebアプリはReactやVueなどのフレームワークと、それに支えられてNoCode(プログラムを書くのではなく、GUI上でぽちぽちしてサービスを作るサービス)なんかが最近注目されているようです。NoCodeについては、サイト制作面で定期ゲには有用かもしれないと思う一方、やはり更新処理をどこでやるかが問題になります。

つまり、中~上級の開発者向けにフレームワークやライブラリやシステムを用意しつつ、ライト層向けに定期更新ゲームのツールを地道に作るのが個人でギリギリ活動できる範囲だと思いました。・・・本当かい???

f:id:teamatsuti:20201219155732p:plain

で、この中で提供できそうなのは「動画風更新結果」「更新処理サーバ」「不奇跡世界はお散歩日和」ですね。そして、不奇跡世界はお散歩日和Lv3とは「定期更新ミニゲーム」から進化し、「定期更新ゲーム制作ツール」になるということです。Lv3に向けて裏の仕組みを整備し終えたら、表の部分…すなわち、コミュニティ関係の機能・サンプルシナリオを爆撃の雨のように作っていきます。

Unmiracle Tail

「…スキルは…管理が難しいんだよねぇ…」

いつだったか、TLで定期ゲのマスクデータの話で盛り上がっていた頃、てんは悩んでいた…。

 

 

当たり前だがスキルはスキル毎に動作が違う。効果単位で扱わず、全スキルを平のプログラムとして書けばメンテできずに破綻してしまう。スキルの説明文をTCGのように1つ1つ人力で、機械的に、一言の矛盾もなく、翻訳するのはプログラムを書くよりも辛いと思っていたてん「あ 言語を作ってプログラムからテキスト作れるようにすればいいじゃん

 

トン!!テン!!カン!!!

 

というわけでこちらが「Unmiracle Tail」になります。※初公開

amatsuti.github.io

ようやく本題に入れますね。

これはダイスバトルのシミュレータです。ダイスバトルは一日一回実行できるメイン行動の一種で、10個のダイスを持ってNPCと戦います。このシミュレータは自由に両チームを設定して試行できます。見た目は簡素なシミュレータです。

  • カード追加・編集可能 :カードはJSON形式で書かれたプログラムで、自由に追加・変更することができます。JSONなのでエディタを作りやすい。
  • ダウンロード制 :ブラウザ版・デスクトップアプリ版の2つ用意しています。どちらもクライアント側でシミュレートを実行するので、お使いの端末が壊れない範囲でいくらでもお試しできます。
  • オープンソース :シミュレータのサイトごとGitHubに公開しています。
  • モジュールインポート可:エンジン部分はバイナリで、理論上はPHPPerl・Nodeにモジュールとしてインポートすることが可能です。
  • テキスト自動生成 :サイトのカード一覧にカードの効果説明が記載されていますが、このテキストはカードのプログラムから自動的に生成されています。
  • ルールを作成可能 :将来的にオリジナルの定期ゲーム制作のために、ルールもJSON形式で自作可能な用意があります。

さすがに思いついてから一か月では間に合わなかったので、最低限の形しかないです。すみません。たぶん、冬の間はこれとバッチの方の開発に付きっきりになりそうです。

この言語そのものは実は3年前くらいからあったのですが、Perl製だったので、今回別の言語に書きなおしました。Lv3や今後の制作のコアになると思います。

おわりに

なんだかんだでちゃんとした定期更新ゲームを一本も出せてないので、作るのは楽しいんですが、歯がゆさも感じてます。応援いただけるととても喜びます。

あ、進捗を呻くディスコードがあります。本当に呻いてるだけですが、よければお気軽にコメントしていってください。

discord.gg

それでは良い定期ゲライフを!次はSoLaさんです!

 

【ぎょうむれんらく】

noteからはてなブログに移行します。noteの記事は復元しない可能性があります。