Search Unity

2018 年の Unite LA にて、多人数参加型の一人称視点シューティングゲーム『FPS Sample』プロジェクトの第一弾リリースが発表されました。ソースコードとアセットの両方を含むプロジェクト全体をこちらからダウンロードしていただけます。

このプロジェクトを、アイデアの宝庫として、インスピレーションを得るためにご利用ください。また、Unity のいくつかの最新機能について、実際の適用例を見ながら学んでいただくこともできます。Unity でシューティングゲームの仕組みを開発する様々なアプローチのひとつを、実際に確認していただけます。

使い方は自由自在

このプロジェクトには、ソースコードから、アートワークアセットやサウンドエフェクトまで、すべてが含まれています。ただし、これらはアセットストアのパッケージではありません。このため、必要な部分だけを抽出したり分解したりしてご使用いただくことが可能となっています。

もちろん、プロジェクト全体を皆様のゲーム制作の骨組みあるいは出発点として使っていただいても構いません。すべてのアセットに関して、ご利用はUnity Companion Licenseライセンスの下に許諾されていますので、Unity ベースの商用プロジェクトにもお使いいただけます。皆様が独自にプロジェクトを開発するための足掛かりとして、このゲームをお役立てくだされば嬉しく思います。

今回の第一弾のリリースは PC 向けとなっています。将来的には Mac、そして PS4 と Xbox One の両方にも対応する計画です。

バニラな Unity で実行可能

このプロジェクトは最新版の Unity(2018.3) で実行可能です。本プロジェクト開発に際しては、いわゆる「バニラな Unity」で実行可能にすることを基本方針としました。つまり、実行のために追加的機能を含めたカスタムビルドが必要ないということです。また同様に、アセットストアパッケージも一切必要ありません。

Unity 全体の向上に寄与

本プロジェクトに関しては今後、最新版への更新と最新機能の導入を継続的に行っていく計画です。また、本プロジェクトはその性質上、フィードバックの収集を大変行いやすく、その利点も大いに活用して行きたいと考えております。まず、私たちは R&D 部門の中心にある社内チームであり、最先端の機能を使用しています。次に、完全に機能するプロジェクトを構築することにより、皆様の実際の作業環境をシミュレートしています。

より大きな視点

これらの好条件が、私たちが新機能だけでなく Unity 全体の向上に寄与して行く上で有利に働きます。お寄せいただいたバグレポートのすべてを確認すると同時に、リリース前のバージョンの開発も進めることで、より総合的な視点から Unity の改善に取り組むことができます。プロジェクトが大きく複雑になればなるほど、効率的なワークフローを維持するための鍵として、スケーラビリティの維持がますます重要となります。この課題への取り組みとして、チームの生産性をサポートすることも、私たちの注力分野のひとつです。

本プロジェクトは、たった 6 人の、コペンハーゲンを拠点とする Unity デモチームの経験豊富なゲームデベロッパーによって設計されました。

細かな改良や効率化への取り組み

結果として、コンテンツを扱う上で出会う困難な点を多数解決することができました。私たちは目標のゲームメカニクスを実現するために、パフォーマンスを最適化し、技術的なソリューションの改良を行いました。このゲームの目標のひとつは、新機能の導入を後押しすることです ― 例えば HDRP(2019 年の途中まではプレビュー版)を、より早く製品版への使用に耐え得る状態にすることです。しかしこれだけでなく、将来的な開発についての情報を R&D チームに しっかり把握させることや、詳細な事柄への取り組みもまた、私たちの重要な役割です。

品質の引き上げに貢献

現実的な状況をシミュレートした制作を行うことで、サンプル開発チームは、品質と安定性を押し上げる QA の延長のような機能を果たすことができます。実際に、このチームが関わることで最適化・改良の進んだ機能が多数存在します。

本プロジェクトには、要素がぎっしり配置されたゲームステージと、完全にリグが施された複数種類のキャラクターが含まれています。

HDRP を使用して高度に様式化されたグラフィックスを作成する

新しく公開された HDRP は、物理ベースのモダンなレンダリングパイプラインで、今までに『Adam』『Book of the Dead』などの素晴らしいデモの制作に貢献して来たものです。しかし物理ベースのレンダラーは、特徴的な(様式化された)スタイルを持つビジュアルの制作にも使用することが可能です。『FPS Sample』ではその実例をご確認いただけます。

例えば、サブサーフェススキャタリングの実装例を実際にご確認いただけます。メインステージの植物には、葉のような半透明なサーフェスを透過する光のシミュレーションが使用されています。

『FPS Sample』では HDRP を使用して高度に様式化されたスタイルを実現しています。

他にも、デカールや、HDRP の新しいライティング機能の一部(光を発する長方形のジオメトリを定義できる Rectangular ライトや、線形から光を照射できるラインライトなど)も使用されています。

『FPS Sample』のライトマッピングは Unity のプログレッシブライトマッパーで行われています。これはパストレースに基づいたライトマッパーシステムで、ベイクされたライトマップとライトプローブに、エディター内で進行する更新を漸次的に反映できるものです。

多人数参加型シューティングゲーム用の高性能 Netcode を構築する

快適でバランスの良いシューティングゲームのための高性能な Netcode を作成するのは往々にして骨の折れる作業です。例えば、ワールドの状態(つまりゲーム世界における各キャラクターの位置)を適切に管理するのは必ずしも簡単ではありません。これに対する解決策は、サーバーから取得される位置をそのまま使用する代わりに、それらの間で補間を行うことです。またこれと似た、動きが重くなる問題は、プレイヤー(キャラクター)をサーバーの承認なしで動かせるようにする「クライアント側予測」と呼ばれる技術で解決可能です。

また、効果的な圧縮を用いてメモリフットプリントの小さなサーバーでゲームをホスティングすることで費用効率を高くすると同時に、ラグ補償と承認のためのソリューションも導入する必要があります。

これらの諸問題に対して『FPS Sample』が採ったアプローチを確認することで、解決に向けてのアイデアを得ていただくことができるでしょう。『FPS Sample』内の Netcode は、これらの問題に取り組むに際して良い足掛かりとなります。この Netcode は、最近プレビュー版としてリリースされたばかりの Unity の新しいトランスポートレイヤーを使用しています

2019 年の計画

『FPS Sample』は、今後の Unity のバージョンで継続的に改良され、維持されていく予定です。

したがって、今後の更新では本プロジェクトにも VFX Graph などの新機能の導入が期待されます。またチュートリアルや、制作プロセスを紹介するブログ記事も 2019 年に公開の予定です。

本プロジェクトの使用を開始するには

本プロジェクトを入手するには、最新版の Unity(2018.3) の実行が必要です。こちらは Unity Hub からダウンロードが可能です。次に Github のレポジトリから本プロジェクトをダウンロードしてください。ご使用を開始するに当たってのガイドは Unity フォーラム、およびプロジェクトの README ファイル内にございます。プロジェクト改善に向けてのご提案や問題のご報告はフォーラムにお寄せください。

27 コメント

コメントの配信登録

コメント受付を終了しました。

  1. I looked at the Networking scripts in the sample FPS project and there are hundreds of them. I thought the whole point was to simplify networking, it looks like it blew up in your face. Is there any readme file that explains what each networking script is doing? Without an explanation/tutorial, this is rather useless. I’m not trying to be rude, but I am new to multiplayer games, and this is not going to go over very well with new developers. I imagine you would like to attract new developers to your platform, I’m not sure this is the right way to do it. But what the hell do I know…Look, I’m just making an online racing game, so all I need is real-time position and rotation of each player. Is there a tutorial somewhere where I can get this information? Preferably, one that doesn’t have hundreds of networking scripts.

    1. Peter Andreasen

      12月 20, 2018 3:15 pm

      A lot more details about the netcode can be found in this talk. https://www.youtube.com/watch?v=k6JTaFE7SYI … Or perhaps rather details about the particular network architecture used by the FPS Sample. The purpose of the sample is to show how to implement that type of networking. This is what most multiplayer shooters end up doing, but you are right it is not a simple solution. It has client side prediction, lag compensation and so on. If you just want to test something small or do a game of a different nature, you may be better served rolling your own netcode on top of the transport layer.

  2. Hi,
    would this technology behind this project work also for a rts game with more then 1000 agents ? :D

  3. Does I’m allowed to copy the assets (not the character and the weapons)?

  4. hello instructor. Can you help me ?. I download full source code and asset into my computer, I use git bash to clone it. Then I run unity and open this project. But this project doesn’t run and it report fix error. You can help me. Thank you very much. I like this game, but I download it that don’t run.

    1. Thomas Krogh-Jacobsen

      10月 30, 2018 11:50 am

      Thanks for your feedback. Please join us in our dedicated forum where you can find more info and help on how to get started with the project. If you post the specific error message you are getting in the forum someone might be able to help you get it up and running: https://forum.unity.com/forums/fps-sample-game.184/

  5. Bruno Mattos

    10月 26, 2018 6:46 pm

    I got an error on git while cloning, is there a way to force a sync with my local files or I’ll need to start the download from the beginning again?

    1. Might have to clone again

    2. Robert Cummings

      10月 28, 2018 12:28 am

      Clone again but make absolutely sure you have https://git-lfs.github.com/ installed.

      1. Thanks that helped me

  6. Peter Mullins

    10月 26, 2018 5:43 pm

    I hope that soon LWRP and HDRP will be 100% compatible (shaders etc.) because if you have a HDRP project for desktop and try build a movil version simply this doesnt work. The best way is that you cant change RP in any moment like change from Forward Rendering to Deferred

    1. Richard Fine

      10月 28, 2018 4:13 pm

      LWRP and HDRP will never be 100% compatible.

  7. Will you have a sample project for the lightweight render pipeline??

  8. Archor Wright

    10月 26, 2018 3:46 am

    Very Cool, I’ll test it out.

  9. Robert Cummings

    10月 26, 2018 1:10 am

    There’s a rogue linkedin link on the above blog.

  10. Hey, is it using some unity networking service or is self hosted?

  11. I get en error
    Win32Exception: ApplicationName=’C:/Users/MichalLeszczynski/Downloads/FPSSample-master/Assets/../AutoBuild/AutoBuild.exe’, CommandLine=”, CurrentDirectory=’AutoBuild’, Native error= Nie można odnaleźć określonego pliku (file not found).

    1. I am getting this as well!

    2. Thomas Krogh-Jacobsen

      10月 30, 2018 11:48 am

      Thanks for your input. From the error message, it sounds like you may not have completed the actual build process? Please join us in our dedicated forum where you can find more info and help on how to get started with the project.
      https://forum.unity.com/forums/fps-sample-game.184/

  12. Does the new transport layer support WebGL websockets and/or WebRTC? Would like to consider replacing unet with this on our web game if even possible.

  13. Installing on my PC. But really interested in seeing this running on Mac and how it performs under Metal. ETA on Mac version? Great work.
    Cheers.

  14. Tomás Pontes

    10月 24, 2018 9:39 pm

    I checked it out. The incredible design and extremely useful. Was taken seriously all that most multiplayer games need. The company made a huge leap. Thanks for all that.

  15. Awesome.

    For source control, is the internal team using Collaborate. I think it’d be great to have internal experience working with large projects day-to-day — which can be sluggish. So maybe that’d fuel improvements there too.

    1. Evgeny Gutman

      11月 24, 2018 6:59 am

      Yes, they said they rework the collab system for large projects in 2019.1…
      no more “Checking for updates” for hours.

  16. Love every single thing. I hope people don’t asset flip too hard, and keep up the good work. I am proud to delete spam for you guys.

  17. Isaac Surfraz

    10月 24, 2018 4:38 pm

    I used to moan excessively about the teams use of special builds for demos, so I am VERY happy to see you have used vanilla unity for this!

    Also, please thank the team involved for what is probably the most useful release I have ever seen!