見出し画像

サイコロゲームを作ろう!3

ロビー機能、参加機能、部屋作成機能、部屋編集機能、スタート表示、スタート実行、部屋にINする機能など、師匠にご指示/ご指摘いただきながら、どうにかゲーム本編に取り組めるところまできました!

本当に、使う側だと、当たり前に利用できるものなので意識をしていないですが、裏側ではエラーチェックとかもちろん実装するし、「オーナーじゃ無い人が、部屋削除画面にリクエストしたときの処理」とかまでプログラムしないといけないということがわかっただけでも、やった価値がある気がします。

ちょっと待ってください!
なんかシメというか、思い出話をはじめる流れですけど、
むしろここからが本番だし、面白いところですよ!?
頑張っていきましょう!

師匠

そうでした、頑張ります!ゲーム部屋にINしたあとのプログラムです!

かいつまんでになりますが、必要な機能としては以下を考えています。

・「サイコロ」ボタン表示(クールタイムチェック/ゲーム参加チェック)
・「サイコロ」ボタン押したら、軽い演出後、フォーム送信
・フォーム受信し、1~6のランダムな数値を選出
・サイコロを振った記録はサーバー上に保存し、残数の計算処理に使う
・最大値から数値を引いた残数が0以下だったら、ゲーム終了
・ゲーム終了時、全員に軽いゲーム終了演出(リロード後、初画面)
・1以上であれば、ゲーム続行
・「リロード」ボタンで画面更新
・ゲームに参加していない人は「サイコロ」ボタンを押せない
・今までのサイコロを振った状況は画面に表示する←ログ
・可能であれば画面上に時計を表示し、リアルタイムで変化させる
・クールタイムの解除についても、リアルタイムで変化させる

面白そうと考えている仕様、余力があれば実装を考えてみたい
・ゲームスタート時に「トークのお題」を表示する機能(ランダム)
・サイコロのメに低確率で「次は2倍!」と表示する機能
・ゲーム勝者には、次のゲームで「2倍サイコロ券」を与える
・「2倍サイコロ券」は同じ面子で「連続ゲーム」するときのみ利用可能
・1勝で1ポイントゲットし、3ポイントゲットした人が優勝みたいな仕組み

師匠

すみません、クラっとしました・・・☆彡
最初のころに
「たかがサイコロゲームかぁ。最初だから簡単なんだろうなぁ」
って思った、ひさきは、今大変さを感じております🥴

こういう仕組みや仕様は「基本設計」「詳細設計」とか言いまして、実はプログラムするより設計することのほうが難しいんです。

私は色々と経験しているので、こういうシステムには、こういう仕組みが必要だと想像がつくのですが、そこらへんは経験値も大事だと思います。ただ、今までサイコロゲームを作ったことがあるわけではないので、もちろん今回のために1から仕様を考えてます。

そして、こういう仕様を多く書く人のことは「プログラマー」というよりは「システムエンジニア」ということが多いです。私から見ると「プログラマー」も「システムエンジニア」も上下はないんですけど、一般的に言えば「システムエンジニア」は上級職扱いされることが多いですね。

師匠

なるほど!
「システムエンジニア」のことをよくわかっていませんでしたが、
家に例えると、
「間取図」や「見取図」を作るのがシステムエンジニアで、
それをみて「家を建てる」のがプログラマーってことですね。

そうですね。
家でいえば「素材」や「材質」を決めるレベルから、
「人員」や「納期」や「総予算」を調整したりするのも入るかもですね。
うーん、そういうのは「ディレクター」とか「プロデューサー」かも。

「システム」「ソフトウェア」「ゲーム」などを作るには、
プログラム以外にもいろいろな工程や役割があるってことがわかっていればOKだと思います。

さて、あとは黙々とプログラミングして、わからないところはネット検索したり、私に聞いたりして、進めていくだけですね。

師匠

よし、やります!
おそらく2週間くらい黙々プログラミング会になりそうですが、
次回更新をお待ちください!

いいなと思ったら応援しよう!