Search Unity

유나이트 LA에서 유니티는 멀티플레이어 1인칭 슈팅 게임인 FPS 샘플 프로젝트의 첫 릴리스를 발표했습니다. 소스 코드와 에셋을 포함해 전체 프로젝트는 여기에서 다운로드할 수 있습니다.

이 프로젝트를 새로운 게임 개발을 위한 참고 자료로 활용하고, Unity의 최신 기능을 어떻게 적용했는지 살펴볼 수도 있습니다. Unity로 슈팅 기반 게임 메카닉스를 개발하는 다양한 방법 중 한 가지를 이 샘플 프로젝트에서 소개합니다.

원하는 대로 사용 가능

이 프로젝트는 소스 코드, 아트워크 에셋, 사운드 효과를 비롯한 모든 자료를 포함하지만 에셋 스토어 패키지로 제작된 것은 아닙니다. 따라서 원하는 특정 자료만 찾아 선택하여 사용할 수 있습니다.

모든 에셋은 Unity Companion License 라이선스를 통해 제공되므로 전체 프로젝트를 나만의 게임 제작을 위한 프레임워크 또는 시작점으로 활용할 수 있으며 Unity를 기반으로 하는 상업용 프로젝트에도 사용할 수 있습니다. 프로젝트를 스스로 제작해볼 때 이 샘플 게임이 유용한 토대가 되길 바랍니다.

이 첫 번째 릴리스는 PC용으로 출시되었으며, 향후 Mac은 물론 PS4 및 Xbox One에서도 지원될 예정입니다.

바닐라 Unity 기반

이 프로젝트는 Unity의 최신 베타 버전에서 실행됩니다(작성 시점 기준 버전: 2018.3b6). 이 프로젝트는 이른바 ‘바닐라 Unity’라고 하는 커스터마이즈되지 않은 Unity에서, 즉 커스텀 빌드 없이 실행하는 것을 핵심 원칙으로 하고 있습니다. 마찬가지로 이 프로젝트에는 에셋 스토어 패키지가 필요 없습니다.

Unity 기술을 단계 발전시키는 최적의 조건

현재의 계획은 프로젝트를 최신 버전으로 지속적으로 업데이트하고 최신 기능을 도입하는 것이지만, 프로젝트의 특성상 의견 수렴이 매우 유리하다는 점도 활용하고 있습니다. R&D 부서에 속해 있는 내부 팀에서 최신 기능을 사용하고 있으며, 완전한 프로젝트를 빌드하여 실제 구동 환경을 시뮬레이션하기 때문에 Unity 기술을 발전시키는 최적의 조건을 갖추고 있습니다.

장기적인 전략

이러한 유리한 상황을 통해 새로운 기능뿐 아니라 Unity를 전체적으로 모두 개선할 수 있습니다. 사전 릴리스 버전을 개선하는 과정을 통해 보고되는 모든 버그를 확인하고 검토할 뿐 아니라 보다 종합적인 관점에서 Unity를 개선할 수 있게 됩니다. 프로젝트의 규모가 커지고, 좀 더 복잡해지는 과정에서 확장성을 안정적으로 유지하는 것은 효율적인 워크플로를 위해 매우 중요합니다. 이 문제를 해결하기 위해 팀의 생산성을 지원하는 것 역시 중요합니다.

이 프로젝트는 코펜하겐에서 근무하는 유니티 데모 팀의 전문 게임 개발자 6명만으로 설계되었습니다.

디테일과 효율성

이러한 활동의 결과, 콘텐츠 작업과 관련된 다양한 문제점을 해결하고 있습니다. 성능을 최적화하고 기술 솔루션을 개선하여 원하는 게임 메카닉스를 실현하게 되었습니다. 또한 샘플 팀의 목표 중 하나는 2019년 중에 프리뷰로 HDRP와 같은 새로운 기능을 프로덕션에서 즉시 사용한 가능한 상태로 빠르게 출시할 수 있도록 지원하는 것입니다. 뿐만 아니라 소규모 프로젝트에도 집중하고, 향후 개발과 관련하여 R&D 팀에 충분한 정보를 제공하고자 합니다.

지속적인 품질 개선

실제 프로덕션의 시뮬레이션을 통해 샘플 팀이 QA 역할도 수행하므로 품질과 안정성이 향상됩니다. 이미 샘플 팀의 참여를 통해 기능을 최적화하고 개선한 사례가 많이 있습니다.

이 프로젝트에는 완벽하게 구성된 레벨과 완벽하게 리깅된 두 개의 캐릭터 클래스가 포함되어 있습니다.

HDRP 통해 세련된 그래픽 생성

새로운 HDRP는 최신의 물리 기반 렌더링 파이프라인으로, 이미 Adam사자의 서(Book of the Dead)와 같은 멋진 데모를 만드는 데 사용되었습니다. 또한 물리 기반 렌더러를 사용하여 세련된 표현을 연출할 수도 있습니다. FPS 샘플을 통해 그 방법을 확인할 수 있습니다.

예를 들어 이 프로젝트에서 피하 산란(subsurface scattering)이 어떻게 구현되었는지 살펴볼 수 있습니다. 메인 레벨에 등장하는 식물을 통해 빛이 잎과 같이 반투명한 표면을 투과하는 방식을 어떻게 시뮬레이션했는지 확인할 수 있습니다.

 

FPS 샘플에서는 HDRP를 사용해 세련된 스타일을 구현합니다.

다른 예로는 빛을 내는 직교 기하(rectilinear geometry)를 정의하는 사각 광원을 비롯한 HDRP의 새로운 조명 기능과 데칼이 있습니다. 또한 직선 형태의 이미션을 구현하는 새로운 선 광원 기능도 있습니다.

FPS 샘플에서 라이트매핑은 베이크된 라이트맵과 라이트 프로브를 제공하고 Unity 에디터를 통해 지속적으로 업데이트되는 Unity의 빠른 경로 추적 기반 라이트매퍼 시스템인 프로그레시브 라이트매퍼(Progressive Lightmapper)를 통해 구현됩니다.

멀티플레이어 슈팅 게임에 최적화된 넷코드 제작

원활하고 공정한 슈팅 게임플레이에 최적화된 넷코드를 제작하는 것은 어려울 수 있습니다. 예를 들어 월드 상태, 즉 게임 월드에서 각 캐릭터가 차지하는 위치를 적절하게 관리하기란 쉽지 않습니다. 해결책은 서버에서 전송된 실제 포지션을 사용하기보다 포지션 간 위치를 보간하는 것입니다. 마찬가지로, 움직임이 느려지는 문제는 플레이어/캐릭터가 서버의 승인 없이 이동할 수 있도록 하는 클라이언트 예측(client-prediction)이라는 기술로 해결할 수 있습니다.

또한 지연 보상 및 권한 부여에 대한 해결책을 마련하고, 비용 효율성을 위해 메모리 사용 공간이 적은 서버와 효과적으로 압축된 게임을 호스팅하고 싶을 수 있습니다.

FPS 샘플에서 이러한 문제에 어떻게 접근했는지 살펴보면 문제를 해결할 수 있는 실마리를 찾을 수 있습니다. 넷코드에는 프리뷰로 출시Unity의 새로운 전송 계층이 포함되어 있으므로 이러한 문제를 해결하는 데 유용한 시작점을 제공합니다.

2019 계획

향후 Unity 버전에서도 FPS 샘플을 계속 유지 관리하고 개발할 계획입니다.

향후 업데이트를 통해 프로젝트에 VFX 그래프와 같은 새로운 기능이 도입될 예정이며, 더불어 2019년에는 튜토리얼과 제작 과정을 보여주는 블로그도 시리즈로 공개될 예정입니다.

시작 방법

프로젝트를 다운로드하려면 먼저 Unity 최신 베타 버전이 설치되어 있어야 합니다. 최신 베타 버전은 Unity 허브를 통해서도 다운로드할 수 있습니다. 그런 다음 Github 저장소에서 프로젝트를 다운로드하세요. Unity 포럼과 프로젝트의 readme 파일에서 시작 방법에 관한 지침을 확인할 수 있습니다. 또한 프로젝트의 전반적인 개선 방안에 대한 건의 사항이 있거나 문제가 발생할 경우 Unity 포럼에 의견을 남겨주시기 바랍니다.

 

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 오후

      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 오전

      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. 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 오전

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

      1. Thanks that helped me

  6. 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. LWRP and HDRP will never be 100% compatible.

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

  8. Very Cool, I’ll test it out.

  9. Robert Cummings

    10월 26, 2018 1:10 오전

    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 오전

      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. 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. 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. 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!