PERFORCE で気を付けること(運用編)

はじめに

前回は PERFORCE の特徴とゲーム開発で使う理由 という内容で、ゲーム開発で PERFORCE を利用するのは高速だからとお伝えしました。

ゲーム開発で作成するアセットは多量で容量も大きいものですから、バージョン管理システム(VCS)でファイルを高速に扱えることがクリエイターの待ち時間やストレスを減らすことにつながり、その時間を開発に活用できるようになるからだとお伝え出来たかなと思います。

PERFORCE は高速なので、大規模なゲーム開発や沢山のアセットを扱うような環境下では、ぜひ導入したいシステムになります。
しかし導入や運用にあたって、いくつか超えなけれならないハードルが存在したり、運用上気を付けるべきことがあったりと、一筋縄ではいかないことも多々あります。
ということで、今回は PERFORCE を導入・運用するにあたって、これまでの経験で得た気を付けるべきポイントを数回に分けて書いていこうかと思います。

今回は PERFORCE の運用において気を付けるポイントを書いていきます。
技術的なことは何もないですが、抑えておくべきかと思いましたので今回書かせていただきます。

PERFORCE の購入

PERFORCE を導入する場合の最初のハードルはお金です。
他の SVN や git は無料で利用できるのですが、PERFORCE は有償の VCS ですのでお金がかかります。

※ 数年前はライセンスの購入費+毎年の更新費用が必要でしたが、最近はちょっと変わったようです。

そのため PERFORCE を導入して利用するには、会社にお金を出してもらうというハードルを乗り越えなければなりません。
このハードルを乗り越えるのに重要なのが、リアリティのある数値でメリットを示すことができる説得材料を用意することです。これがあれば仲間や上司を味方につけやすくなりますし、会社にも購入をお願いしやすくなりますよね。

では少し掘り下げて情報収集~購入まで、やらないといけないことをざっくり書きます。

PERFORCE の価格を知る

PERFORCE を導入して利用し続けるには、どのようなお金がかかるのか情報を集めましょう。
国内で販売やサポートを手がけている東陽テクニカや、開発元の Perforce Software から直接見積を取得すればよいかと思います。

他の VCS との速度差を計測する

説得には効果のほどを数値化して示す必要があります。そのために他の VCS との速度比較した情報を収集します。
ネット上に使える情報があるのであればそれを利用すればよいですが、なければ検証します。

例えば SVN と比較する場合、次のような検証を行えば速度比較は容易ではないかと思います。 (PERFORCE 導入前の VCS と比較するとよりリアリティが増すかと思います。)

  1. 無償の体験版を入手(機能制限アリ、Perforce Software から入手可)
  2. サーバー機とクライアント機を用意し、SVN と PERFORCE をインストール
  3. サーバー~クライアント間で、なるべくほかの通信の邪魔が入らない環境をつくる
  4. SVN と PERFORCE にそれぞれ同じ内容で同じ数のファイルをバージョン管理させる
  5. ファイルのダウンロード、アップロードの速度を測る

効果のほどをリアリティのあるものにする

PERFORCE の価格と速度差がわかれば、この差によってどれだけ時間が短縮できるのか、どれだけ人件費が浮くのか、などをリアリティのある数値として示せるようになります。

例えば、PERFORCE を 100人が使うとして…
・SVN では 1 時間、PERFORCE だと 10 分と 50 分も短縮した
・50 分 × 100 人 = 8.3 時間 = おおよそ 1 人日

これが毎日発生すると、1 人増員できますね!
となると、PERFORCE にかかる費用と人件費を天秤にかけることができるようになるので
・空いた時間をもっと開発に割くことができます!
・1人増員できます!
・開発期間を短縮できます!
など、アピールしやすくなりますね!

仲間や上司を味方につけ、会社の承認を得る

費用と人件費というリアリティのある材料を用意することができれば、資料を用意し、仲間や上司にプレゼンを行い味方につけ、会社の手続きに従って購入手続きを進めると、ハードルを乗り越えることができるかと思います。

購入先の選択

どこから購入するかも大事になってきます。
どこから購入したかによって、サポートの受け方が変わってのではないでしょうか。

国内販社から購入

国内の企業にサポートを受けたいのであれば東陽テクニカになります。
PERFORCE に詳しい専門家もいらっしゃるので、気軽に質問や相談をすることができます。

しかし PERFORCE の細かい挙動やマニアックな内容になってくると、Perforce Software に確認が必要になることもあります。
こういった場合には、自社 → 東陽テクニカ → Perforce Software という流れになるので、回答をいただくまで通常より少し時間がかかることもありますし、やりとりが何往復も発生すると解決までそこそこ時間を取られる可能性もあります。

※ 私の知る限りでは、日本国内では東陽テクニカ社しかありません。

Perforce Software 社から購入

もうひとつの選択肢は、 Perforce Software から直接購入するルートになるかと思います。

私はこの選択をしたことがないので想像になりますが、ドルで購入することになる?英語でのやり取りになる?と思っています。
でも、WEB ページは日本語対応してるし、もしかしたらやり取りは日本語でも大丈夫かもしれないですね。

それぞれにメリット・デメリットがあるかと思いますので、下調べして決めたほうが良いでしょう。

メーカー、販社への質問や相談

SVN や git はサーバーを立て、あとはほぼ放置で、何かあってもググれば情報がでてくる感じではあるのですが、PERFORCE はちょっと違います。PERFORCE は設定や構成をいろいろと変更できることから、そこそこ問い合わせをしたくなる場面が発生します。

私の経験では、PERFORCE サーバーを構築するとき、障害が発生したとき、挙動について確認したいとき、実現方法を知りたいときが多かった印象です。また SDK を使っていたこともあり、マニアックな質問も結構させていただきました。

サポートを受けたい場合、問題や知りたいことを齟齬なく的確に伝える必要があります。
特に大変なのは、問題解決のために力を貸してほしい時のように思います。相手が同じ社内の仲間だったら「ちょっと見て!」と気軽に相談できるのですが、そうもいきません…

    • 問題が発生する環境や条件などを調査(特定のクライアントなのか、発生確率は?、など)
    • 問題の原因を追えるところまで追う
    • 再現方法を調べ、相手の環境でも確認していただけるようにする
    • 秘匿性の高い情報を出さないように隠したり、チェックしたり、承認を得たり
    • サポートから要求のあった情報を収集したり、回避策を試してみたり

このように質問一つにしても時間と神経も使うので、それにかかるコストは必要になります。

あ、最後に…
秘密保持契約(NDA)を結んでおくと、質問や相談のしやすさは増しますので、ぜひ!

担当者

PC をサーバーとして1台用意して、PERFORCE をインストールして、P4V で普通に使う。
これだけであればある程度放置できるので、片手間で運用はできるかと思います。

しかし PERFORCE のウリである多量・大容量(数百万、数十テラ)のファイルを高速に扱おうとすれば、いろいろと手をかけてあげなければなりません。

    • 高速化のための複数台サーバー構成の構築・運用、パラメータ設定
    • サーバー機器、ネットワーク、設備などの管理・運用
    • トラブル対応、社内のユーザーサポート、販社とのやり取り
    • 安定運用を担保するための検討・対策・メンテナンス

上記は PERFORCE に限らず大きなシステムでは発生するものかなと思います。
ですが PERFORCE の場合は、同じ VCS の SVN や git は片手間で運用できるのに何で??と思い(思われ)がちです。

PERFORCE はその性質上、どうしても速度と安定が必要になっていきます。

  • VCS なので使えば使うほど履歴が増え、履歴の数だけ管理ファイルが増える
  • PERFORCE は高速なので、ソースコード以外の大容量アセットを管理したい
  • 開発が進めば扱うファイルが増える
  • ファイルが増えれば取得時間が増えるので、もっと早く取得したくなる
  • ファイルが増えればストレージが不足してくる

このように PERFORCE は使えば使うほど速度や安定を求めていかなければならない仕組みになっているので、おのずと面倒を見なければならない時間の比重は増していくのです。
落ち着いて考えるとそうなりますよね。

よくあるゲームプログラマーのお仕事風景では、プログラミングしながらサーバーも見るというマルチにこなすのですが、これが徐々に難しくなりますので専任の PERFORCE 担当者は必要になってくるでしょう。さらにサーバーにはサーバーの知見が必要だったり、クライアントにはクライアントの知見が必要となってきますので、それぞれサーバー担当、クライアント担当と担当者を置くことができると理想ではあります。

また話は少し変わりますが、PERFORCE は有料であるが故にライセンス管理が必要になっています。そのため、ライセンスの割り当て、購入のための手続き、予算確保のためのライセンス運用計画の策定など、ちょっと変わったところでも手間がかかります。これ自体はそんなに手間がかかるというものではないので、会社でライセンス等を管理している部門にお任せできるかなと思います。

設備投資

PERFORCE の速度を追い求めていくと、必ず行きつくのはサーバー機器やネットワークといった設備投資に行きつきます。

このあたりの細かい理由は次回以降に記事にしていこうかと思いますが、PERFORCE は使えば使うほど速度や安定を求めていかなければならない仕組みである故に、次第に設備の重要性が増し、設備にかける費用も増えてきます。

  • PC では負荷や耐久力に不安が出てきたので、ちゃんとしたサーバーを導入
  • ユーザー数や扱うファイルが増えたのでサーバーのスペックを上げる
  • データ取得速度を速くしたいので、ネットワークの増強やサーバー台数を増やす

どれだけの人数が利用し、どれだけのファイルを扱うのかによって、設備の重要性の度合いは変わってきますが、設備投資は少なからず発生することを心に留めておく必要があります。

まとめ

さていかがだったでしょう?
なんだかんだと手間暇がかかるんだなあと感じていただけたのではないでしょうか?

「お金や手間がかかる」といえば聞こえは悪いですが、お金や手間をかけただけの効果を発揮してくれる代物であることは間違いありません。
普通に大容量アセットをファイルサーバーや SVN などで管理することを考えるとゾッとします…

ただ PERFORCE を利用しているウラでは、目まぐるしい苦労が発生することは日常茶飯事です。
PERFORCE を普通に利用しているユーザーからするとウラで何をしているのかを知る由もなく、効果のほどを実感するのは難しいとは思いますが…

このあたりの苦労を、技術的な観点を踏まえ次回以降の記事にしていこうかと思います。