こんにちは。8/16〜9/3の3週間、フルリモートでアカツキゲームスのサマーインターンに参加させていただきましたSKと申します。今回はインターンで取り組んだこと、学んだことについてまとめさせていただきます。
自己紹介
大阪府立大学に通う学部3回です。普段はUnity、C#を使ってゲーム開発を行ったり、アルバイトでPythonを使ったりしております。ゲーム業界に興味があり、実際に働いて体験してみたいという思いから参加を志望いたしました。
取り組んだこと
今回参加させていただいたのは「八月のシンデレラナイン」(以後ハチナイ)というゲームの現場でした。その中で3つのタスクを行いました。
キャンペーンミッションにて報酬を受け取ったとき、ナインスターの値が更新されるタイミングを調整する
最初のタスクはヘッダーのナインスターの個数を更新するタイミングを調整する機能です。
本来であれば達成ボタンを押すとアニメーションが走り、アニメーションが終わった後にナインスターが更新されるはずです。しかしミッションでは達成ボタンを押すとすぐにナインスターが更新され、アニメーションがその後に走ってしまう状況でした。これではユーザーさんはナインスターが増えたことに気づきにくく、本当にナインスターが増えているのかと不安を抱かせることになります。
対応方法としてはナインスターを更新するかを管理するFlagがあり、Flagを切り替えるタイミングを早めることで対応いたしました。
最初のタスクということもあり、どこにどの処理があるのかを探すことに苦労したため完了するまでに少し時間がかかってしまいました。
練習選手選択画面で選手アイコンを長押しした時その選手の詳細を見れるようにする機能
続いて練習選手選択画面で選手アイコンを長押しした時、その選手の詳細を見れるようにする機能を実装いたしました。
ハチナイをプレイしていて練習選手を選択する際、その選手の詳細を確認したいという場面がありました。しかし、現状練習選手選択画面から詳細は確認することはできず、シーン選択ボタンを押してシーン選択画面から選手の詳細を確認しておりました。このワンクッションが手間と感じておりました。
また、インターン参加にあたって事前に改修案があれば考えといてというタスクもありましたので、この際に提案してみたところすんなりと対応することに決まりました。
提案してから数日検討されるかと思っていたのですが、すぐに決まったのでこの速さにとても驚きました。
対応方法としては練習選手選択画面では長押しが無効になっていたので、それを有効にするだけでした。想像以上に簡単に実現できたのでよかったです。
条件で絞り込んだ選手を自動で移籍選手として選択する機能
移籍時にダイアログから条件を指定し、その条件に基づいて移籍選手を自動で選択するという機能で、今回のインターンではメインのタスクでした。
しかし、選手保管庫と選手管理をまたいで同シーンの状況を見るためには読み込みの負荷軽減や比較のしやすさにおいて課題が残り、デザイン面も完成に至らなかったため結果的にリリースしないこととなりました。
このタスクは私主導で行うタスクであり、着手した当初は仕様の段階でした。そのため私主導でMTGを設定し、プランナーの方とデザイナーの方とコミュニケーションを取りました。
初期の仕様は今回実装した内容とは異なるものでした。最初のMTGで初期の仕様に指摘が入り、今回実装した内容に近い仕様となりました。
実装ではダイアログ機能の実装や条件で絞り込む機能、絞り込んだ選手を選択する機能の実装を行いました。実装自体はそこまで重たくはなかったです。
今回のタスクは話し合って決まったことを元にプロトタイプを作成し、それを元に再度意見を交わすということを繰り返して実装面を完成することはできました。しかし、デザインまで含めて完成することはできなかったため残念です。
このタスクを通してコミュニケーションの難しさを感じました。MTGでは全員でそのMTGの目的を共有できておらずスムーズに話し合うことができなかったり、チャットのやり取りでも相手の意思を汲み取れなかったり、自分の意見をうまく伝えられなかったりとオンラインでのコミュニケーションに難しさを感じました。この辺りをうまくできればデザインまで含めて完成できたのかもしれません。
一方で印象的であったことは仕様決めのMTGでデザイナーの方やプランナーの方、他のエンジニアの方がそれぞれの立場から意見をぶつけ合っていたことです。バチバチでした。しかしそれだけいいものを作り上げていこうという思いが一人一人にあり、見習うべき点であると感じました。
まとめ
運営中のゲームの開発に携わることができた
実際に運営されているゲームに携わることができたのは非常に貴重な体験でした。実際に開発に携わったことで、UnityのScene管理の方法など参考になる処理を知ることができたのはとても良い経験でした。自分の開発でも取り入れていきたいです。
エンジニアはコミュニケーションも大事
このことは適当な技術系の記事を見ていればよく見かけることですが、それを痛感いたしました。正確にコミュニケーションを取ることでスムーズに開発できるとメインのタスクを通して感じました。
会社の雰囲気
社員の方々は一人一人が自立しており、お互いを信頼しあって働いておられるという印象です。また社内もいい意味で上下関係はなく雰囲気はとても良いように思えます。
最後に
3週間という短い期間でしたが、手厚いサポートに支えられ非常にいい経験を積むことができました。本当にありがとうございました。