見出し画像

GASでシミュレーションゲームのプロトを作ってみる①

気づいたら前回の投稿から2ヶ月以上経っていました。

まえおき

さて、今回は少し趣向を変えまして、GASでシミュレーションゲームのプロトを作っていく過程をノートで書いていきたいと思います。

ちなみに、ちょうど前回の投稿の後に日本でclubhouseが大流行して、私もclubhouseの方での発信が多くなって来た影響で、noteのほうは少し発信頻度が少なくなっていましたが、少しずつ戻していこうと思います。

そして、今回シミュレーションゲームを作ろうと思ったきっかけは、clubhouseでして色々なゲームクリエイターの方と話したり、気の合う仲間ができていくにつれ、やっぱり自分はゲームが作りたいなぁと思ったので少しずつ作り始めようと思った次第です。

しかしここで大きな壁が立ちはだかります

開発ツールの選定

 最近のゲーム開発と言えば、Unityがほぼ必須くらいですし、自分が作りたいのは、サーバーサイドの通信込みのF2Pゲームなので、UIを度外視して、遊び方だけのモックを作るために、画面がリッチじゃない、数値の変動くらいのものをとりあえず作るにしても、ある程度サーバーサイドの開発環境を用意していく必要があります。

一応、コードは書けないわけではないのですが、元がシミュレーション屋なので、どういうデータをどういう風に連携させてどう処理をするかというあたりのロジックを考えて構築するのに特化していることもあり、データをどういう風に表示させたりやりとりするかについてや、サーバーサイドの環境構築を苦もなくできるとかそういったことがあまり得意ではないのです。

というわけで、自分としてはロジックとパラメータを中心に実装していくのが得意なので、そういったことに特化するツールがないかなぁと色々と探してみました。

Google Apps Script(通称GAS)について

そこで見つけたのがGoogle Apps Script(通称GAS)でのウェブサービス構築方法です

「GAS web アプリ」あたりで検索すると色々出てきますが、正確さをかなり無視してざっくり説明すると

「エクセルのマクロみたいな機能で、サクッとWebサービスを作ることが出来るもの。」

という感じでしょうか。厳密には違いはたくさんありそうですが、要は、マクロ含めてエクセル系ツール使い慣れている人にとってサクッとWebサービスを作るのに適しているサービスとも言えそうです。

このGASは、いろいろな使い方ができるんですが、例えばスプレッドシートをデータベースにして、サーバー環境の構築なしで、そのデータを参照してウェブアプリを公開するというような使い方もできます。

Webアプリ作成する仕組みとしては、Ruby on Railsとかみたいにhtmlのテンプレートを作り、GASスクリプトを書いてそこでスプレッドシートの情報を処理して表示するというのがメインの進め方になります。

というわけで、まずはこのGASで色々と作っていくことにしました。

ボタンを押すと1増える機能実装

まず最初にやろうとしたのは、ボタンを押すと、データベースとなるスプレッドシート内の数値が更新されて1ずつ増えていき、それがWebサイト側で更新されて表示されるようにする、と言う非常に単純な仕組みです。

しかしながら、これが思いのほか苦労しました…

というのも意外とこのままのストレートなやり方が検索しても中々出てこなかったので(検索の仕方が悪いかもですが)、調べるだけでなく本を1冊買って勉強しました。


ー ー ー ー ー 10時間後 ー ー ー ー ー

そして10時間が経過して、ようやくボタンを押して数値がカウントアップされる機能が実装できました。

それがこちらとなります。

↓Web画面に表示される数字とボタン

スクリーンショット 2021-03-18 12.41.11

↓参照しているスプレッドシート

スクリーンショット 2021-03-18 12.41.28

↓ボタンを押したあとのWeb画面

スクリーンショット 2021-03-18 12.41.45

↓同じくスプレッドシートの中身

スクリーンショット 2021-03-18 12.41.57


はい、というわけで無事にボタンを押すとスプレッドシートの値が更新され、Webサイト側も数値が増える機能が実装ができました。

余談ですが、大体どのコードでも自分の場合はここまでが1番時間かかるのと、ここまでで断念することも多いので、一安心です。

ちなみにGASでの実装は、あくまでプロト作成に留めておいて、色々と試行錯誤していけそうとなったら、本格的な実装はまた別でしていきたいと思いますので、ぜひ皆さんもモニター等ご協力いただけると幸いです。

さてここから開発を加速してサクサク作っていきます。

というのも、ゲームの根本的な仕組みと言うのは、何かしらのアクションを行うとフィードバックが返ってくる、という繰り返しで構成されており、その動作の結果として、何かしらの数値が変動するというのが基本的な動作だからです。

なので、ここまででゲームを構成する最小単位ができたと言っても過言では無いのです。

そして、ロジックとパラメータの実装だけであれば、ここからこの最小単位をどんどん繰り返していくだけになっていくので、比較的スムーズに開発が進むということになります。

(ちなみに、この開発手法を、「ロジックファースト」と勝手に名付けています)

今回は長くなってきたので、そろそろ記事的に一旦区切りにしようと思いますが、これだけだと画面がちょっとさみしいので、ボタンに画像を付けて、最初に作る予定のゲームのルールを書いて終わりにしたいと思います

スクリーンショット 2021-03-19 1.04.55

↓ボタンを1回押してみる

スクリーンショット 2021-03-19 1.08.05

きちんとカウントアップできてますね

というわけでここから本格的にゲームを作っていきたいと思います

最初のゲームのルール

と、ここまで出来たは良いとして、まだ本格的に何のシミュレーションゲームを作るのかは全然決まってないので、とりあえず簡単なゲームを作っていきます。

最初に作るシミュレーションゲームのルールはこちらのとおりとなります

概要:会社を買って収益をどんどん増やしていくゲーム
・会社を買うと1ターン毎にお金が5手に入る
・会社を買うと次に会社を買う為に必要な価格が1.5倍ずつになっていく

とてもシンプルなものですね

それでは、次回からはこのあたりの機能を早速実装していきたいと思います

長くなったので、続きはこの次の回にします。

(追記:2021/03/22時点で既に↑までは完成しています。)

【お知らせ】

プレアナでは、「熱狂の構造化」の世界観のもと、ゲームを中心としたエンタメの面白さの数値化に日々取り組んでいます

そんなちょっと変わった取り組みを、一緒にやっていきたい!という方は、ぜひご連絡ください。

また、最近では、ゲーム特化型の人材DXサービス「LEGDAP パーソナルチェッカー」も好評提供中です!

https://pre-ana.com/

この記事が気に入ったらサポートをしてみませんか?