# プロジェクト概要
- Unity・C#・Go・AWSを用いた3DCGソーシャルゲームの開発
- 自由度の高い船舶のクラフトと造船した艦艇での対戦がテーマ (資料01)
# 開発チーム規模(リリース時)
- 約30名(内エンジニア8名程度)
# コミット概要
新卒入社して初めてアサインされたプロジェクトです。約3年間、リリースまでの開発からその後の運用まで関わりました。最初の2年ほどはこのゲームアプリのメイン機能のひとつである「造船機能」のクライアントサイドの開発ほぼ全てを一人で任されました。造船機能実装には、第二次世界大戦時の旧日本海軍の船舶の各パーツに関する知識が必要だったので、プログラミングと並行してそちらの勉強もしました。造船機能はユーザーが快適に視認することが求められたため、プランナー・3DCGデザイナーと連携してシェーダーの記述も行いました。リリース後の約半年間はサーバーサイドエンジニアとして関わりました。もともとクライアントサイドを経験しての配置だったため、一つの機能をクライアント・サーバの両面任されました。そのコミットの結果として社内MVPとして表彰されることもありました。
# 主な実装内容 造船機能画面クライアントサイドのほぼ全ての開発
【概要】
3DCGモデルで表示される船体に砲台・艦橋・煙突などのパーツを立体的に組み立てていく機能の画面(資料02)
【どのような実装か】
主な注意すべき実装のひとつにパーツ同士が接触している際に配置不可表示を行う必要がありました。
【課題】
接触判定はパーツの造形に沿って詳細に判定を行うには処理負荷が大きい問題がありました。また、青写真のような表示にしたいという企画要望とユーザーの視認性を両立する必要がありました。
【解決策】
これらの課題を解決するため、接触判定はゲームでは軽負荷で一般的に用いられるボックスの当たり判定を採用しましたが、大量のパーツに対してボックス当たり判定を編集する必要があったため、当たり判定編集ツール(Unity)も並行で開発を進めました。オブジェクトの表示の視認性については、企画とデザイナーの双方と相談を重ねつつ、シェーダー(HLSL)を記述していくことで、課題を解決した美しいCG表現を達成することができました。
# 資料
- [資料01_艦つく -Warship Craft- 公式HP](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj87I_s5sODAxVLcvUHHdfNDQgQFnoECCUQAQ&url=https%3A%2F%2Fkantsuku.jp%2F&usg=AOvVaw0ZzJ21Tqa3eNOxSMltBWHB&opi=89978449)
- [資料02_私が担当した造船機能のプレイ動画(YouTubeより)](https://www.youtube.com/watch?v=-tgZFXyU0eI)