diff --git a/book/SUMMARY.md b/book/SUMMARY.md index 7edd6e1..96da116 100644 --- a/book/SUMMARY.md +++ b/book/SUMMARY.md @@ -96,5 +96,6 @@ * [自由と不自由](project/04_ep.md) * [ロードマップ](project/05_ep.md) * [個人開発の真髄](project/06_ep.md) + * [テストゲーム](project/07_ep.md) * [youtube](project/01_youtube.md) * [end](end/README.md) diff --git a/book/project/07_ep.md b/book/project/07_ep.md new file mode 100644 index 0000000..7a4727a --- /dev/null +++ b/book/project/07_ep.md @@ -0,0 +1,40 @@ +# テストゲーム + +最初のテストゲームで何を行うかを記述します。 + +## ログイン画面 + +まずログイン画面を表示します。これは別levelではなく全て一つのlevelで行います。確かにlevel(map)を作成して使い分けたほうが便利です。宇宙や地上、ボスのmapをゲーム進行に応じて切り替える方法です。 + +しかし、このゲームは現実の反映を目指しています。すべての世界はつながっている。世界は一つ。それがこのゲームの信念です。ですから、ログイン画面も本level上で行うことにします。 + +## ログイン処理 + +ユーザーは`yui.syui.ai`の`record(ai.syui.game)`に作成されます。`did.plc.xxx`という形式になります。 + +oauth認証することで、データを個人アカウントにexportする仕組みを作りましたが、今は破壊しています。ゲームデータを保存するjson(lexicon)がなかなか定まりません。これは[frontpage](https://github.com/likeandscribe/frontpage)を改造して作りました。 + +こんなものがあればいいというのを述べますが、ユーザーが削除はできるけど、作成や改変できないlexiconです。oauth認証で他のユーザーが作成、改変できる許可を与えます。 + +> ユーザーが削除はできるけど、作成や改変できないlexiconが必要。oauth認証で開発者がユーザーのその領域にrecord作成、改変できる許可を与えるもの。 + +現在、なぜゲームデータを`yui.syui.ai`に保存するのかというと、いくらでも値を変更できてしまうからです。もちろん、変更には知識が必要ですが、エンジニアやプログラマであればチートし放題ということです。 + +そのため私が管理するアカウントにデータを保存するしかありません。本来ならプレイヤーのアカウントに保存すべきものだと思います。 + +次に、webからのゲームプレイに関して注意点があります。そのため以下の仕様を実装します。 + +webからのゲームは1ユーザーしかプレイできませんし、誰でもアクセスすれば動かせてしまいます。そのため、`bot`にゲームをプレイすることを伝え、そこでloginしているユーザーを確認し、空きがあればloginを成功させます。そして、10分経過後にlogoutします。logoutしたときにlimitが書き込まれます。1日に1回のloginに制限されます。 + +実際に現在loginしているユーザーしかログイン画面を通さないようにします。これである程度は別ユーザーにプレイされる可能性は減るでしょう。 + +## ゲームプレイ + +ボスと行く場所が用意させています。アイテムがドロップします。それを拾わないとアイテムボックス(アカウント)に反映されません。 + +ドロップするアイテムはランダムになっています。最初に拾えるのは、コインとカードです。 + +アイテムボックスはいつでも確認できます。 + +上には家があり、机の上に手持ちのアイテムがあれば表示します。 +