224 Views
June 23, 25
スライド概要
胡蝶の夢発表。
ゲームエンジニア。
OSSを作る理由 胡蝶の夢 AndanteTribe代表兼ディレクター兼エンジニアリーダー
OSSを作る理由 1.OSSとは 2.OSSプロジェクトのメリット 3.OSSプロジェクトのデメリット
OSSを作る理由
OSSを作る理由 プログラムのソースコードが一般に公開されており、 誰でも無償で利用できるソフトウェアのこと。 公開しているがゆえに結果的に 「誰でも無償で利用できる」イメージで、 使用ケースによっては該当OSSのライセンスに従う必要がある。 代表例は挙げたらキリがない git やC#などもOSSであるが、Unity周りだとUniTaskも挙げられる。
OSSを作る理由
OSSを作る理由 OSSプロジェクトのメリット 1.開発作業が無駄にならない ≒ チームの技術的蓄積が増える 2.本流のゲームプロジェクトにおいて不具合を減らせる 3.経済的コストカットできる 4.実際に使用した際のフィードバックが、依存するすべての プロジェクトに反映できる
OSSを作る理由 OSSプロジェクトのメリット
OSSを作る理由 OSSプロジェクトのメリット # 1. 開発作業が無駄にならない ゲーム開発プロジェクトは 頓挫するもの
OSSを作る理由 OSSプロジェクトのメリット # 1. 開発作業が無駄にならない ゲーム開発プロジェクトは 頓挫するもの 資金不足 作り直し 予定調整の失敗 などなど...
OSSを作る理由 OSSプロジェクトのメリット # 1. 開発作業が無駄にならない ‘‘プロジェクトを越えて使えるように汎用的に実装した’’ OSSは無駄にならない。 OSS
OSSを作る理由 OSSプロジェクトのメリット
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる 堅牢なテスト環境 →完成度の高い実装を本流プロジェクトに反映できる →結果的に不具合を未然に防げる可能性が高くなる。
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる 堅牢なテスト環境 まずクラウド上にUnity環境を構築し、こちらで自動化実装されたテストを起動、 その結果を開発者にフィードバックする工程をOSS開発に組み込む。 これにより、ソフトウェア挙動面の担保や品質の保持が高い水準で可能となる。
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる 「私のコンピュータでは動いている」問題
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる 「私のコンピュータでは動いている」問題 「私のコンピュータでは動いている」と、大声で誰かにいってはいけません。 それは心の中で思うだけにしてください。 「私のコンピュータでは動かなかったけど、大丈夫だと思ったんだ!」なんていえるコ ードはあり得ません。もちろん、あなたのコンピュータでは動くのでしょう!自分でも 実行できないものをデプロイするなんて想像できますか? ――Sedat Kapanoglu『ストリートコーダー』より
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる 「私のコンピュータでは動いている」 「私のコンピュータでは動いていない」 ベストな解決策は、マージした後にメインブランチを取り込んだ他人に確認してもらうこと とはいえ、そんなことをやれるほど皆暇じゃない。
OSSを作る理由 OSSプロジェクトのメリット # 2. 本流のゲームプロジェクトにおいて不具合を減らせる クラウド環境で確認 →他者のPCを必要とせず各環境のチェックが可能 →テストの自動化も可能 該当OSSの不具合を未然に防ぎ、結果として本流のゲームプロジェクトに貢献できる
OSSを作る理由 OSSプロジェクトのメリット
OSSを作る理由 OSSプロジェクトのメリット # 4. 経済的コストカットできる クラウド環境 基本的にお金がかかる
OSSを作る理由 OSSプロジェクトのメリット # 4. 経済的コストカットできる クラウド環境 ここで朗報! 基本的にお金がかかる
OSSを作る理由 OSSプロジェクトのメリット # 4. 経済的コストカットできる GitHubパブリックリポジトリ 必要なクラウドの実行環境をどれだけやっても 無料で使用 できる。
OSSを作る理由 OSSプロジェクトのメリット
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる サブ プロジェクト OSS メイン プロジェクト Unity1week GameJam 「Unity 1週間ゲームジャム」など の突発的イベントでも大活躍!
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる OSS
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる OSS
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる ドバック ー ィ をフ 点 問題 OSS
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる 修正 ドバック ー ィ をフ 点 問題 OSS
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる 修正 ドバック ー ィ をフ 点 問題 映 反 の 修正 OSS
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる 修正 ドバック ー ィ をフ 点 問題 映 反 の 修正 OSS 修 正 の 反 映 修正の 反映
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる 修正 ドバック ー ィ をフ 点 問題 映 反 の 修正 OSS 修 正 の 反 映 修正の 反映 結果的に、 本流プロジェクトゲームのクオリティ向上へ!
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる サブ プロジェクト Unity1week GameJam OSS メイン プロジェクト
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる サブ プロジェクト メイン プロジェクト OSS Unity1week GameJam メンバーA 個人開発 メンバーB 個人開発
OSSを作る理由 OSSプロジェクトのメリット # 5. 実際に使用した際のフィードバックが、依存するすべてのプロジェクトに反映できる サブ プロジェクト メイン プロジェクト OSS Unity1week GameJam メンバーA 個人開発 メンバーB 個人開発
OSSを作る理由
OSSを作る理由 OSSプロジェクトのデメリット 時間的コストがかかる 時間的コストがかかる 目の前のゲームに特化した実装ではなく、 より汎用的に使用できる実装を求められるし、 くわえてライブラリとして公開するための作業もある
OSSを作る理由 OSSプロジェクトのデメリット 時間的コストがかかる OSS開発は余裕がある今が旬! 「どうせ後で必要な開発タスク」が大半 時間がかかるからこそ余裕がある時に 2025年5月現時点のAndanteTribeの事情
Thank you! ご清聴ありがとうございました!
cs-editorconfig C#のコーディングスタイルのルールセット (命名規則とスタイル周り) AndanteTribe垢では初めてのリポジトリ ※そういえば、gitに.gitattributeっていう設定 ファイルあった気がするけど、あれ改行コードの 統一化しかできない気がする。こちらはIDE上で スタイル統一を強制する。
Utils AndanteTribe内製ユーティリティ。 岩崎が二年くらい作っているライブラリ。 たくさん実装あるよ
DebugToolkit UnityのUIToolkit上に構築された実機Debug 用のGUIツールを作成するための薄いレイヤー 実装。 及びゲームのデバッグで便利なユーティリテ ィ。 GUIツール実装のためのミニマムなフレー ムワーク UnityのUIToolkitのAPIをそのまま利用で きる構造により実現したUI表現の豊富さ リリースビルドにデバッグ用途の実装を入 れない選択が可能な設計 その他デバッグに便利なユーティリティの 提供
LocalPrefs UnityEngine.PlayerPrefsに代わる、.NETと Unity用のローカル永続化ライブラリ。 PlayerPrefsみたいにWindowsのレジスト リに置かない WebGL対応(ネイティブコード) 暗号化などのカスタマイズもC#標準のもの を使って対応可能(拡張性ヨシッ) 重厚なテストによる挙動の安全性 System.Text.Json or MessagePackを使 っているため、シリアライザー部分のパフ ォーマンスと圧縮性が期待できる
PlayerControl PlayerControlは、Project_TCCを使用 した最もミニマルなモバイルキャラクタ ーコントロールです。 ジョイスティックやボタンなど、uGUIベ ースの標準的なキャラクターコントロー ルのテンプレートを提供します。