ID:53945さん

3年後の目標や野望


ゲーム開発のアーキテクトとして、高い志をもつメンバーと最強なランタイム基盤の開発と開発環境を構築したい

ゲーム開発を10年経験して、ゲーム開発の不確実性の高さを強く実感した。 近年は特に市場が求めるクオリティレベルが上がっており、開発が大規模化・長期化している。 タイトルによる違いはあるものの、ゲームで共通して求められるランタイム基盤や開発環境に対する要求は普遍的な部分が非常に多く、またそこの品質が開発のイテレーションの速度に直結すると感じている。 不確実性の削減のために、市場のニーズに応えるために、開発イテレーションの速度を向上させるために、車輪の再開発を防ぐために、最強なランタイム基盤の開発と開発環境を構築したいと考える。

プロジェクト経験

2023年/2年以上

新規プロジェクト①・②の開発

# 次項記載の共通基盤に載せた上で共通基盤と同時に開発を進行 - 設計・コードレビュー - 開発ワークフローの構築・ルール化・資料化 - コンテンツ開発の設計 - アウトゲームの設計・実装 - Unity、各種SDK、パッケージのバージョンアップの取り込み - デザイナー、スクリプター向けのワークフロー・ツール開発やそのサポート

2023年/2年以上

ネイティブ共通基盤の開発

# 新規プロジェクト①・②および今後の新規開発でも利用する共通基盤の開発 ## ランタイム共通基盤の開発 - コードフォーマットの設定 - .editorconfigの設定 - Riderの設定 - アセットビルド、アプリビルド - Unity内の構成 - コマンドラインAPIの実装 - コードアーキテクチャ - クリーンアーキテクチャ - asmdefの利用 - DIコンテナの利用 - 依存関係逆転、実装の差し替え - アセットロード - 非同期ロード・キャンセル・解放 - 解放漏れ防止や不必要な多重ロードの防止策としてプロキシを実装 - アセットダウンロード - AssetBundleのダウンロードの最適化も行った - アセットバンドルのダウンロードをUnityにお作法に則って実装するとパフォーマンスが悪い - パフォーマンスをチューニングしようにもI/Fの役割が大きすぎたり、UnityAPIがメインスレッド以外で実行できないなど制約が大きすぎる - なのでUnityAPIに頼らず自前でアセットバンドルをダウンロードするようにした - UnityWebRequestAssetBundleではなくHttpClientを使う - HTTP/2.0にも対応させる - Cachingを使わない - 通信、保存、LZMA->LZ4への再圧縮、CRCの比較、ハッシュ比較・保存を自前でやる - UnityAPIを使わなくした箇所はワーカースレッドで並列処理で動かすようにする - Addressablesのカスタマイズで上記を実現 - 非AssetBundleのアセット(CRIWareのサウンド・ムービーアセット)のダウンロードに関してもHttpClient、HTTP/2.0、ワーカースレッドでの通信・保存することで高速化 - エラーハンドリング - エラー概要がわかりやすいように例外クラスを実装 - アプリケーション実行やコンテンツ実行のルート文脈で例外をキャッチし、その型により適切なメッセージを表示したり、復旧フローに促すように - フロントエンド接続先変更機能 - テスト環境、オペレーション環境、本番環境など、ランタイムで接続先を変更できるように - ダウンロードアセット接続先変更機能 - アセットはアセットリポジトリのブランチ名をディレクトリ名としてコンテンツサーバーにデプロイするように - その接続先のディレクトリ名をランタイムで選べるように - WebView組み込み - UniWebView - Vuplex - フロントエンドとの通信プロトコル - WebNativeコマンド - Web→ネイティブに対しての命令のこと - サーバーAPIのようにリクエスト・レスポンスの形で命令の引数と結果の受け渡しが行われるように - レスポンスには成否と失敗の場合のエラーコードやエラーメッセージを含むようにし、フロントエンドでエラーハンドリングができるように - サウンド基盤 - CRIWareを利用 - CueSheetの非同期ロード・キャンセル・解放 - Playerの生成・破棄 - 非プレイモードのサポート - CancellationTaskAgentWithLifetime - クラスなどのインスタンスの寿命と紐付けて非同期処理をキャンセルする仕組み - 各種デバッグツールの組み込みと統合 - DebugSheet - SRDebugger - In-GameDebugConsole - Graphy - Proxima - WorkerThreadPool - ワーカースレッドに同期・非同期処理を投げて完了や例外を受け取れるクラス - UnityLogging組み込み - テストの構成 - TestRunnerを利用 - PlayModeで結合テスト、EditModeで単体テストを実装 - コマンドラインから呼び出せるように - CI/CDへの組み込み - JenkinsのジョブからコマンドラインのAPIを呼び出す - テスト開始とテストの成否のタイミングでGitHubのリポジトリコミットステータスを付与 - リポジトリ更新時Webhookで上記ジョブを実行 - ScreenResolutionUtils - スクリーン解像度、仮想スクリーン解像度の取得 - CoordinateUtils - スクリーン座標、仮想スクリーン座標、ワールド座標の相互変換 - サウンドとStreamingAssetsからのロードとDL先からのロードの切り替え - 非プレイモードでのサウンドロード・再生 - Timelineからのサウンド再生 - 非ランタイム(プレビュー) - 倍速、シーク - InputSystemを用いたスクリーンジェスチャーの購読 - PerspectiveCameraのFOV計算、OrthographicCameraのサイズ計算 - パッケージの自前管理&パッチ管理 - UniTaskの拡張 - UniTask.WhenAllは引数のUniTaskが1個でも例外スローすると他のUniTaskの完了や成否は検知できない - UniTask.WhenAllWithReportsを実装 - 引数のUniTaskが成否含めて全て完了するまで必ず待機する - 成否や失敗の場合の例外はReportsとして返り値として受け取れる ## 開発環境の構築・運用 - Unityプロジェクト - GitHubで管理 - ローカルアセット、リモートアセット、アセットビルド設定とはリポジトリを分けている - ローカル環境構築時にそれらのリンクを貼ることでローカルで統合させている - ローカルアセット - Amazon CodeCommitで管理 - リモートアセット - Amazon CodeCommitで管理 - アセットビルド設定 - GitHubで管理 - AddressablesAssetSettings - AddressablesGroup - SmartAddresserLayoutRuleData - 各種自動化スクリプト - アセットビルド、アプリビルド&デプロイ、アセットバリデーション、テスト、Unityプロジェクト環境構築自動化などのスクリプト - ShellScript、Batch、Python(venv)、Ruby(gem, bundler) - Jenkins - Master - Linux(Amazon EC2) - Docker + jenkins/jenkiで構成管理 - Agent01 - Linux(Amazon EC2) - Docker + jenkins/agentで構成管理 - Agent02 - Mac - ConfigurationAsCodeで構成管理 - Jenkins Job - Declarative Pipeline - Groovy - SharedLibraryを作って共通処理やコア実装をライブラリ化 - Webhookを使ってリポジトリ更新時に自動でテスト、アセットビルドのジョブが実行されるように - WebhookはGitHubはGitHubWebhook、CodeCommitはCodeCommit + Amazon Lambda - アプリビルド - UnityプロジェクトにコマンドラインAPIを実装 - JenkinsJob→ジョブ→ShellScript→コマンドラインAPI→Unityの流れでビルド - ShellScriptでDeploygateやプラットフォームストアにアップロード - アセットビルド - UnityプロジェクトにコマンドラインAPIを実装 - JenkinsJob→ジョブ→ShellScript→コマンドラインAPI→Unityの流れでビルド - ローカルアセットアセットバンドル - ローカルアセットビルドコンテンツとして専用のリポジトリにプッシュして管理 - アプリビルド時にチェックアウトしてリンクを貼ることでビルトインさせている - リモートアセットバンドル - リモートアセットビルドコンテンツとしてAmazon S3にデプロイ - ランタイムクライアントはAmazon CloundFrontにアセットバンドルをリクエストし、CloundFrontはS3から取得してクライアントに返しつつキャッシュする

2024年/半年以内

TA(ネイティブエンジニアⅡ)セクションを設立

近年、ネイティブエンジニアの業務範囲が拡大しており、かつここの問題解決に必要な専門知識のレベルも上がっているため、ネイティブエンジニアとして全ての範囲の業務を求められるレベルでこなすことが難しいと感じていた。 ネイティブエンジニアをネイティブエンジニアⅠとネイティブエンジニアⅡ(一般的にはTAと呼ばれる職)に二分し、それぞれの業務範囲を限定しつつ専門性を上げることを狙っている。 また、それに伴いネイティブエンジニアのマネージャーから両セクションのマネージャーにポジションをシフト。 設立の経緯や今後の展望など、詳細はインタビュー記事で話している。 https://game8.jp/articles/568517

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

プロジェクトカテゴリ
担当工程
経験した職種・役割
あなたが実際に使っていた技術
このプロジェクト詳細は公開されていません

マネージメント能力

このマネージメント能力は公開されていません

このマネージメント能力は公開されていません

このマネージメント能力は公開されていません

アピール項目


アウトプット

GitHub アカウント
あり
Qiita アカウント
未入力です
Zenn アカウント
未入力です
Speaker Deck アカウント
未入力です
SlideShare アカウント
未入力です
特にアピールしたいアウトプット
未入力です

今後、身につけなければいけないと思っている技術は何ですか?

* 大規模開発のあり方 50〜70人程度(内エンジニア10人程度)の開発現場をエンジニアリーダーとして経験したことはある。 より大規模な開発を経験して、そのフローや分業体制を知りたい。 * AIを利用したゲーム開発 設計の壁打ち、パフォーマンスの最適化、普段あまり使用しない言語のコーディングなどでAIはよく利用している。 ChatGPT Codexを利用して、AIに直接開発をさせるフローを構築してみたい。

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

* 評価に納得感がある(互いに期待値がうまく言語化され共有される) * ワーク・ライフ・バランスが尊重される * 私語は多くなく、生産的な会話が多い * 安心して対人リスクを取れる組織

キャラクター

直近で一番やりたいこと
サービスを作りたい
好きなスタイル
好きな規模
水とプログラミングどっちが大事?
自信を持って人より秀でていると言える点
学習能力 / 問題解決力 / 責任感
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
一緒に働く人
やりたくない分野
SI / 金融 / 医療・介護 / 人材 / 広告 / ファッション / アダルト / BtoB / 仮想通貨
その他の特徴
使用言語にはこだわらない / レガシーな環境を改善できる
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で30代中盤
好きなテキストエディタ
Rider
希望勤務地
東京都
希望年収
1100万円
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?