一日で定期更新ゲームを作ってみた(ネタバレ:できなかったので2日で作った)

ご挨拶

f:id:tyaunen1:20201206044013j:plain

 

こんにちは。ちゃうねんと申します。みかんに囲まれています。

 

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

adventar.org

 

SoLAのサービスも始まって、最近はたくさんやることがありますね。


そんな(定期更新ゲーム|APゲーム)で遊んでいる皆さんはもれなく、

一度はこんなことを思ったことがあるのではないでしょうか?


それは……

 

f:id:tyaunen1:20201206042931p:plain


自分の思い通りの定期更新ゲームを作ってみたい!

 

そうなると気になるのが……定期更新ゲーム制作がどれぐらい大変か?です。

 

実際どうなんでしょう?カレー作りと比べるとカレー何杯分ぐらい大変なんでしょうか。

 

僕はコミュニケーション能力がボロカスびしょ濡れ犬なので、実際に定期更新ゲームを運営している人に聞くのもなんだかはばかられます。


そういうわけで、今回は試しに定期更新ゲームを1日で作ってみたいと思います!


テーマを決める

まずはどんなゲームを作るのか、テーマを決めてみたいと思います。

1日で作ると決めたからには、大規模なテーマはできそうにありません。

 

困った時はなんとやらということで、集団知の力を借りてみました。

 

どんなゲームを作ればいいか、知人に聞いてみましょう。

 

f:id:tyaunen1:20201206044738j:plain


全員匿名限定ウンチ(全員匿名で、限られたウンチをする会)を開催しては

せっかくてぃろだの運営実績で稼いだ「まともで頼れる人」という印象がどっかにいってしまうので、この案は惜しまれながらボツとなりました。

 

代わりに今回は、割合ギャンブルゲームを作ることにします。

 

f:id:tyaunen1:20201206045028j:plain


割合ギャンブルゲームとは僕が時々Twitterでアンケート機能を使って遊んでいるもので、もともとは「ニダーラン」というゲーム内でプレイヤーが開催していたものです。

 

仕組みはなんとなくわかってください。
条件に当てはまる項目を予想して当てるゲームですが、自分がベットすると自分がベットした項目が当選しにくくなる、というのがキモですね。例えば「ここの投票率が15%以下」が当選するには、他の85%が他の項目にベットしている必要があります。


これを、1日に一回とか、1時間に一回とか開催すれば「定期更新ゲーム」と言い張れそうです。

 

なんだか違う気もしますが、定期的に更新されればなんでもいいのです。

 

 

実際に作ってみる

それではやっていきましょう。

プレーンなPHPで やります。PHPが何かとかは説明しません。ここから先は一切の専門用語の説明を省くので、わからない単語が出てきたら必ず全部ググってください。

 

ポヒョイーン現象

 

機能を洗い出してみる

 

まずは、どんなページと機能を作ればいいか考えてみましょう。

定期更新ゲームですから、最低限交流機能と更新機能は欲しいですね!

 

多分「結果表示ページ」「宣言ページ」「更新機能」と「ルールブックページ」の4つぐらいで十分のはずですが、念の為もれなく洗い出しておきます。

 

  • ゲームのトップページ
  • 自分のキャラクターのプロフィールを編集するページ
  • 他のキャラクターのプロフィールを表示するページ
  • すべてのキャラクターの一覧(リスト)を表示するページ

 

考えていくと結構多いですね。最終的に7~8個ぐらいいるかもしれません。

 

  • 現在行われているギャンブルと交流チャットを表示するメインページ
  • 交流チャットを投稿する機能
  • 自分が参加したギャンブルの過去結果を表示するページ
  • 更新を行う機能

 

あれ?

 

  • キャラクターを新規登録するページ
  • ログインするための機能
  • ログアウトするための機能
  • 更新を行う機能

 

ちょっとちょっと

 

  • ルールブックのぺージ
  • 利用規約を書くページ
  • 色々なページに表示する、共通のメニュー
  • 上記のデータを保存するためのデータベースと、データを取り出すための機能
  • その他もろもろ共通機能や細々とした機能や.....

 

いやいやいやいや

 

 

f:id:tyaunen1:20201206050918j:plain

 

1日で定期更新ゲームを作ろうとしないほうがいいです。

全然終わりませんでした。

 

結果から言うと、2日でなんとか形にはなりました。

が、かなり雑にコードが書かれていますし、バグが大量に埋もれているはずです。

 

 運用問題

 さて、定期更新ゲームを作っている中で困ったことが一つあります。

 

のゲーム、いつまで更新し続けるの?

 

そもそも開発が終わったらこんなゲームに1秒だって時間は使いたくありませんし、毎日とか毎週予定が入るのも嫌です。

 

今回はゲームがゲームなので自動更新にするという手もなくはないのですが、それではものすごく重大な問題が発生します。

 

チキンレースができないのです。

 

チキンレース、更新予定時刻を過ぎても尚宣言を続ける行為、それはいわばGMとプレイヤーの性格と予定の読み合いであり定期更新ゲームで最もアツい行為と言っても過言ではありません。

なにより、自動的に更新されるゲームには人の手の暖かさ、ぬくもりがありません。プログラムだけで運営されるゲームの冷たさはすぐに人に伝わってしまうでしょう。

 

チキンレースは可能にしたい、でもこのゲームの運営につきっきりにはなりたくない……難しい問題ですね。

 

f:id:tyaunen1:20201206052010j:plain

 

そこで、更新予定時刻以降は、ユーザーがいつでも押せる更新開始ボタンを設置しました。

 

これにより、プレイヤーは示し合わせて「押すなよ!押すなよ!」で遊ぶことができます。もしかしたら普通にだれも押さないかもしれませんね。嫌。ちゃんと押してください。

 

 

あとがき

ひとまず、定期更新ゲームを作るのが大変であることがわかりました。あまりにもひどいので、ソースコードの公開はしません。これを真似する人間が出てくると困る。

 

今回作成したゲーム「トバトバ」は、以下から遊ぶことができます。

10万のバグを内包しています。

こんなゲームやってないでSoLAで遊んでください。

 

 トバトバ - TOP

 

f:id:tyaunen1:20201207021745j:plain

f:id:tyaunen1:20201207021756j:plain

 

以上、ご視聴ありがとうございました。

おわり~。