ぴっくるの社内メンバーでゲーム開発を行いました
2023年10月、ぴっくるに新たなメンバーが増えました。
そこで、社員研修もかねて社内でゲーム開発をしようという話に…
ただ、普通に開発してもしょうがないので研究開発という名目で普段やらないことにチャレンジしよう!となりました。
それぞれがやったことないことに挑戦するということで、期待と不安に満ち溢れながら1ヵ月ちょっと開発をしてきましたので、振り返りもかねてゲームの発表をさせてください!
その前にまずは新たなメンバーのご紹介を…
新入社員紹介:河部くん
本題に入る前に、新しいメンバーを紹介させてください!
ぴっくるも賑やかになってきたね
自分の自己紹介ももう半年以上前になるんですねー
ねー、なんだかもう懐かしいね
それでは河部くん、どうぞ!
よろしくお願いします!
名前:河部 総太郎
愛称:総くん
自己紹介:
はじめまして、河部 総太郎(かわべ そうたろう)と申します。
中学生のころに独学でプログラミングを始めて、それ以来趣味兼仕事としてコードを書き続けています。
ゲーム系の専門学校卒業後は主にUnityでクライアント側の実装を担当してきました。
コードを書く際にはシンプルさを大事にしておりKISSを胸に刻んで日々コードを書いています。
※KISSについてはKeep it Simple Stupidで調べてみてください。
▼趣味
・プログラミング
・読書
・バイクツーリング
▼好きなゲーム
・Hotline Miami
・スーパーマリオギャラクシー
・MtG
▼好きな言語
・C++, Zig
▼意気込み
自分が納得できるような良いコードを書けるように、経験を積んで成長していきます!
皆さん、改めまして総くんをよろしくお願いいたします!
作ったゲーム「テリトリーエクスパンダーズ」と公開先
できたゲームはその名も「テリトリーエクスパンダーズ」!
一言で説明すると陣取りゲームです。
フィールド上に発生したエネルギーを採掘、採掘したエネルギーを持ち歩くことでエネルギー量が増える。
増えたエネルギーをフィールド上の好きなところに埋めることで自分の陣地として獲得ができる。
他プレイヤーのエネルギーを掘り起こして妨害することも可能。
ゲーム終了時点でたくさん陣地を持っているプレイヤーの勝利となるCOM対戦型ゲームです。
作ったゲームはこちらで公開してますので、ぜひ遊んでみて感想をいただけると大変うれしいです!
(ちょこちょこバグは残ってますが、研究開発ということで暖かい目で見守ってください…)
まずはそれぞれの担当決め
【ほっしー】
【担当】
サーバー兼システム担当
ゲームに必要な基礎部分のシステムを担当
【主な作業内容】
・ユーザーデータ、ランキングなどのサーバーの実装
・ビルド周りの管理
・各種ツールの整備
普段の業務はリードとして他3名のまとめる係、自身でも開発を行いつつタスク割り振り、進捗管理などを行っている。
【がんちゃん】
【担当】
開発管理兼企画主導
基本プログラムは触らず、他3名の管理に徹する
進行管理は初めて
【主な作業内容】
・仕様などの相談・最終決定
・開発マイルストーン、タスクのチケット管理
・コードレビュー
普段の業務はアウトゲーム全般の開発、Sakumacの業務サポートをしている
【Sakumac】
【担当】
アウトゲーム開発
アウトゲームに必要な画面をベースから丸っと作成
API繋ぎこみなどを行う
【主な作業内容】
・アウトゲーム全般のプレハブ作成
・各画面の組み込み
・サーバーとの簡単な通信実装
普段の業務はアウトゲームの開発サポート、コーダー
【総くん】
【担当】
インゲーム開発
今回はぴっくるの社員研修も兼ねているので、インゲームを実装しつつ社内のライブラリ習得に努める
【主な作業内容】
・インゲームの全般のロジック作成
・設計を意識した実装
・ゲーム演出の作成
入社後初の業務+共同開発
【企画】ゲーム内容を決めよう!
まずはゲーム内容の案出しをしよう
作る期間を考えるとお手軽に作れるハイパーカジュアル系ですかね?
ハイスコアを狙うアクション系のゲームとかどうでしょう?
カジュアル目なゲームでいうとパズルとかもありますね
などなど、まずはゲームをどの要件で、どのジャンルで作るのか?などの候補をとにかく出す話し合いをしました。
出た要素がこちら
会議室で3時間ほど案出しを続けましたが、なかなか決まらず最終的にはカフェでお茶しながらゲームの方向性を決めました。
最終決定これで行こうの決断を委ねられるのはなかなか緊張感がありました(がんちゃん談)
この時点で決まったゲームの方向性は以下です。
- 宝探しゲーム
- マルチで遊べる
- ゲーム性はシンプルに
決まったゲームの方向性を基に、どういうゲームシステムにするか?を話し合いました。
宝探しゲーム:お宝を埋めておくと土の中で育つという謎の世界観
シンプルなゲーム性:操作は仮想スティックで移動+ボタンタップのみで各アクションが行える
マルチ要素:Wave制にしてその中でハイスコアを競う
【開発着手】プロジェクト名の決定から実作業へ
よし、ゲームの方向性は決まったのでまずはプロジェクト名を決めましょう!
社内開発のプロジェクト名の命名規則は色+動物の名前で今後もやっていきます
お宝探しですし、Gold(金)Manthihiとかどうでしょうか?
プロジェクト名からゲーム内容が連想できるものはあまりよくないので別のにしましょう
連想できなければなんでもOKということは、例えばGreenCoaraとかですかね?
おもしろいですね、GreenCoara
もう一つぐらい案出しましょう、佐久間くんどうですか?
うーん、じゃあOrangeAlligatorはどうですか?
いいね!それで行きましょう!
などなどやりとりがあり、ゲームのプロジェクト名が「OrangeAlligator」に決まりました。
プロジェクト名が決まったので、各人やることの項目だしをしました。
基本機能の洗い出しが終わり、どの機能から実装するか?などの優先度付けをして実装に入っていきました。
開発秘話①宝探しゲームから陣取りゲームへ
開発初旬から中旬ごろ、一通り宝探しゲームとしての機能が入った段階
宝探しをするだけでは、味気ないよねという話になりました。
- ただタップするだけで面白くない
- 対戦感が薄い
- 掘ったり埋めたりをもっと気軽にやりたい
など、テストプレイをしてみていくつか課題がでました
確かにこの頃はどのアクションをするのにもコストが必要で、そのために画面をひたすらタップしなきゃいけないみたいな仕様になっていました。
埋まっているお宝を最後に採掘して、埋蔵した人に所有権が移る仕組みで埋めているお宝の合計値が一番多いユーザーの勝利!としていましたが、企画段階でハイパーカジュアルよりで作ろう!と言っていた割に好きな時に入って遊べるとはいえ「1Wave30分区切り」だったりとゲームとしてダレる要素がふんだんにありました。
お宝自体もサーチしないと見えず、たくさん埋まっているのかどうかも分かりづらく、面白いよりもしんどいが勝ってしまってました。
もっとたくさん奪い合いが発生して短いスパンで遊べるゲームにしようということになり、埋める掘るの動作は残しつつ陣取りゲームにシフトしようとなりました。
話し合いの結果
- お宝をエネルギーに変更
- 1ゲームの時間は30分から6分に
- アクションを起こす際のコストは撤廃、採掘する時だけタップを要求
- 埋まっているエネルギーはすべて可視化されるようにした
という形に落ち着きました。
この段階で通信等を挟み、マルチプレイで遊べるようにして4人で通信対戦などもして、開発後半ではいい感じのバランスで面白いと言えるようにはなってきました。
開発秘話②オンライン対戦からCOM戦へ
上でも書いたように元々はオンラインで遊べる想定で制作を行ってきました。
ただ実際にリリースするにあたって、サーバーはどうするのか?自社サーバー使う?借りる?、参加者がいない時はどうする?などシステム面の不安やゲームとしてそもそも成り立たなくなる可能性など検討を重ねた結果、COM3プレイヤーと戦う仕組みに変更をしました。
ただ他者と遊んでる感は残したかったので、COM戦の順位に合わせてスコアを付与し、そのスコアをランキングとして残しました。
通信の処理自体は実は内部で残っており、切り替えようと思えば切り替えられたりします。
ただ身内で遊ぶ分にはいいけど、本番に持っていくのはちょっとねという感じになってしまっているので、今回はあくまでCOMと遊んでもらうという形に落ち着きました。
開発秘話③リリースどうしよう問題
一通り遊べるようになって、それっぽいゲームにはなってきました。
そろそろリリース考えていかないとですよねーという話になり、ゲーム企画立案当初は最低限Android版でリリースしましょうという話でしたが、UIなどの素材にほぼフリー素材を使っていることやゲームバランスの調整をしっかりできていない、バグや実装不備などが残っている+開発期間を少しオーバーしてしまっている状況からスマホでのリリースは難しいという判断をしました。
ただ、せっかく作ったのでどこかでリリースはしたいよねという話になり今回はWebGLでビルドをしウェブ上で公開しようとなった次第でございます。
ここでもまた問題が発生し、公開しようと思っていた先のUnityRoomが本ゲームで使用しているAddressableの仕組みに対応していなかったりして、対応できなくはないんだけど時間が掛かってしまうということで一旦はぴっくるのサーバー上で公開する形を取りました。
色んな人に遊んでほしいので、ゆっくりではありますが対応をしてUnityRoomなどでも公開出来たらいいよねという話をしているところです。
リリースを終えて、それぞれの振り返り
【ほっしー】
【感想】
河部君が入社してきたタイミングで行えたことと、今まで各自別プロジェクトで仕事をしていたので、開発を通してお互いの人となりなどを感じることができたのは良かったと思います。
自社ライブラリを勉強してもらうきっかけにもなったし、自社ライブラリや自社開発環境をより充実させることが出来ました。
【反省点】
企画が途中でブレたことによって、思いのほか工数が膨らんでしまいました。
ちょっとチャレンジしすぎたかもしれません。
ゲームとして形になるようにすることで精一杯で、世界観まで設定できなかったのは少し心残りです。
【がんちゃん】
【感想】
初の管理者として、他3名のタスクを管理したり、全員分のコードレビューをしたりと普段やらないことをたくさん経験できました。
コードを書く時と違い求められるスキルの違いに戸惑いもしましたが、社内開発だからこそ「失敗してもそれが経験値になる」という体験ができて楽しかったです。
【反省点】
管理する側として仕事が思った以上に大変で、誰に何を任せるのか?果たしてこのレビューは正解なのか?など悩まされることがかなり多かったです。
星山さんからコードに触っている暇はないはずと言われた通り毎日があっという間に過ぎて、何も出来てない…となることが非常に多かったので、今回得た知識を基に普段の自分の仕事を誰かに渡すとしたらどう管理するか?などを日々考えていきたいです。
【Sakumac】
【感想】
ゲームプログラマーになって約半年たったころに、このプロジェクトが始動し、初めての社内開発でした。
ゲーム開発の経験が少ない中で、自社のライブラリに触れることで、出向先での開発の違いや、対応方法等、多くの経験が得られたと思います。
このプロジェクトで、多くの失敗をしたことで、今後の課題を明確にしたり、対応方法など多くの事を学べたことが一番良かったと感じました。
【反省点】
一つ一つの関数やライブラリについての知識が曖昧で、何となくで使用していたため無駄な処理を書くことが多かった。
そのため、レビュー後の修正を繰り返すことが多く、一つの機能を実装するのに時間をかけてしまいました。
ロジックの組み立てや、設計についても迷うことがあり、もっとより多くの事を勉強・経験することで経験値を上げていきたいです。
【総くん】
【感想】
入社した月にこのプロジェクトが開始され、お互いを知らない状況から制作が開始となりました。
どういった雰囲気の中で制作が進んでいくか、そもそも自分のプログラムの書き方で大丈夫なのかなど不安もありましたが終わってみればいい雰囲気の中で制作が進められたと思っています。
社内のプロジェクトという比較的プレッシャーも少ない中で、一緒に一つのモノを制作して会社に慣れていけたのは幸運でした。
【反省点】
入社したばかりということもあり、意識的に他の方の意見を聞こうと聞き手の側に回っていました。
それ自体は悪い事ではないと思いますが、結果として少し積極性の欠ける状態での制作になってしまったなと感じています。
感想でも書きましたが比較的プレッシャーの少ない社内のプロジェクトだったので、もし同じような機会があればゲームルールや実装に関して積極的に意見を出していければなと思います。
まとめ
紆余曲折あり、元々予定してたものをすべて入れるというのは難しかったですが、それぞれのメンバーが普段しない体験をできたことが何より大きい成果だったかなと思います。
失敗してもいいからまずはやってみようという環境は非常に大事なので、今後もぴっくる社内でそうした活動ができるようになればいいなと思います。
ゲーム自体は粗が残っている状態ではありますが、最低限ゲームとしては遊べて公開出来たのでよかったです!
次回社内開発を行う際は、今回得た体験をもとに更にブラッシュアップしていければなぁと社員一同思っております。
プログラマーしかいないので、デザイン面なんとかしたい…(願望)
皆さんのゲーム開発の参考になれば幸いです。
最後にもう一度宣伝を…よかったら遊んでみてね!
ではまたー
有限会社ぴっくるとは?
ゲーム開発を行って19年目になる会社です。
他のデベロッパー会社と一緒にプロジェクトに参加して、いろいろなゲーム開発に携わっています。
音声収録・動画配信スタジオを運営し、会社・スタッフともに色々な情報発信を行っています。
そんなぴっくるではゲームプログラマースタッフを絶賛募集中です。
コメント