Search Unity

차세대 DOTS 시스템 구축을 위한 유니티와 Havok의 협업 – Unity 피직스, Havok 피직스 공개

, 3월 19, 2019

3월에 개최된 GDC 기조 연설에서 유니티는 차세대 물리 시스템 구축을 위한 Havok과의 파트너십을 발표했습니다. 이 글을 통해 유니티와 Havok이 어떻게 협업하고 있는지 자세히 알려드리고자 합니다.

유니티와 Havok 콜라보

유니티가 처음으로 데이터 지향 기술 스택(DOTS) 개발을 착수했을 당시에는 이 기술을 통해 크리에이터가 다양하면서도 역동적인 인터랙티브 환경을 구현할 수 있도록 지원하고 싶었습니다. 그리고 이를 위해 고성능의 데이터 지향 물리 시스템이 필요했습니다. 유니티는 Havok과의 협업으로 DOTS 기술 기반의 새로운 물리 엔진을 개발할 수 있었습니다. 그 결과 탁월한 성능을 제공하고, 확장 가능할 뿐 아니라 최신 네트워킹 요구 사항을 충족하는 물리 시뮬레이션을 제작할 수 있게 되었습니다.

이 새로운 솔루션은 Unity 피직스(Unity Physics)와 Havok 피직스(Havok Physics), 2가지로 구성됩니다. Unity 피직스와 Havok 피직스는 모두 DOTS 프레임워크를 통해 서로 인터페이싱합니다. 따라서 두 솔루션이 각자 다른 제작 목적으로 사용되더라도, 프로젝트 중에 한 솔루션에서 다른 솔루션으로 전환하거나, 두 솔루션을 동시에 다른 용도로 사용할 수 있습니다. 또한 두 솔루션 모두 그동안 Unity 사용자가 실시간 인터랙티브 콘텐츠를 만드는 데 사용해왔던 강력하고 액세스가 편리한 툴과 워크플로를 그대로 활용할 수 있습니다.

DOTS 프레임워크를 사용하면 물리 시스템을 위한 단일 데이터 프로토콜을 빌드할 수 있습니다. 즉, 콘텐츠와 게임 코드를 작성하고 나면 Unity 피직스 또는 Havok 피직스를 자유롭게 활용할 수 있습니다. 아래 다이어그램에서는 두 물리 시스템이 DOTS와 통합되는 방식을 보여주는 아키텍처 개요를 참조하시기 바랍니다.

Unity 피직스

통합된 Unity 피직스는 DOTS 기반 프로젝트를 위한 유니티 기본 물리 시스템을 의미하며, 현재 프리뷰 릴리스 형태로 제공되고 있습니다. 이 시스템은 DOTS 물리 솔버(physics solver) 기반으로, C# DOTS 프레임워크를 사용하여 작성되었습니다. 상태 기반이 아니면서(stateless) 캐싱을 사용하지 않기 때문에, Unity 피직스의 복잡도를 크게 낮출 수 있게 되어 사용자의 미세 조정, 수정 그리고 학습이 용이해졌습니다. 유니티의 목표는 여러분이 크리에이터로서 유니티의 기능을 쉽게 활용하고, 제작 요구 사항에 맞게 시스템을 쉽게 확장할 수 있도록 지원하는 것입니다.

Unity 피직스 시스템은 다음과 같은 특징이 있습니다.

  • 네트워크 롤백 아키텍처와 호환되는 캐시리스(cache-less) 설계로 격투 게임, 1인칭 슈팅 게임 등 입력이 중요한 시뮬레이션에서 사용할 수 있습니다.
  • Havok 피직스와의 상호호환성 및 데이터 호환성이 보장됩니다.

Unity 피직스는 Unity 패키지 관리자에 포함되어 제공되며, 최신 2019.1 베타 릴리스와 호환됩니다.

Havok 피직스

Havok 피직스가 통합된 물리 시스템은 복잡한 물리 요구 사항을 해결해야 하는 고객을 위한 고성능 솔루션을 제공합니다. 이 솔루션은 현세대 콘솔에서 인기 있는 타이틀 중 절반 이상에 활용되고, 복잡한 물리 시뮬레이션을 위한 강력한 성능과 강화된 안정성을 제공하는 업계 최고의 Havok 물리 엔진을 기반으로 구축되었습니다. 여기에는 Unity 피직스와 동일한 방식으로 C# DOTS 프레임워크가 사용되지만, 네이티브 C++로 작성된 클로즈드 소스(closed source)인 전용 Havok 물리 엔진을 기반으로 한다는 차이점이 있습니다.

Havok 피직스 시스템은 다음과 같은 특징이 있습니다.

  • 캐싱 시스템은 수많은 동적 리지드바디, 서로의 움직임에 제약 조건(constraints)이 설정된 리지드바디 시스템, 빠른 동작의 리지드바디 및 동적 리지드바디가 많이 포함된 씬과 같은 복잡한 시나리오에서도 안정성과 강력한 성능을 제공합니다.
  • Unity 피직스와의 상호호환성 및 데이터 호환성이 보장됩니다.

Havok 피직스 패키지는 올여름 후반에 제공될 예정입니다.

향후 계획

Unity 물리 시스템의 향후 목표는 물리 시뮬레이션을 제작하고, 편집하고, 디버깅할 수 있는 새로운 워크플로를 지원하는 완벽한 물리 솔루션을 제공하는 것입니다. 유니티는 Havok과의 협업이 풍부하고 인터랙티브하면서 역동적인 환경을 구축할 수 있도록 크리에이터로서의 여러분을 지원하는 새로운 발걸음이라고 믿습니다. 이와 관련하여 의견이 있을 경우 Unity 포럼을 방문하여 의견을 남겨주시기 바랍니다. 유니티는 언제나 고객의 의견을 환영합니다. 당사가 선보이는 새로운 물리 시스템과 관련된 문제, 정보, 요청 사항 및 피드백을 자유롭게 남겨주시기 바랍니다.

 

32 코멘트

코멘트 구독

댓글 남기기

사용할 수 있는 HTML 태그 및 속성: <a href=""> <b> <code> <pre>

  1. *jaw drops*

  2. This is amazing news! How will this help with deterministic physics for multiplayer?

  3. Are you planning to add modification of contacts to Unity?

  4. Hi, it’s glad to see that Unity is solving the problem in networking games. Please considering share a roadmap so studios can know when is the best timing to adopt it.

  5. Hi, I could not see the ‘Unity Physics’ in the packages list. Which package has it?

    1. Make sure you’re using the latest 2019.1 beta, go to package manager and check that “Show preview packages” is toggled on in the “Advanced” drop down menu.

  6. I prefer Bullet Physics over Havok, is free and opensource.

  7. So, lost a little here, is DOTS the ECS and Jop system together?

  8. Ok so this is all about Nvidia dropping Physics development that Unity was getting a free ride on. So now if you want new Physics features we are going to have to pay for Havok !

    1. Not quite. We have Unity Physics which you can get via the Package Manager right now and use with the 2019.1 Beta.

    2. Slow-down cowboy. No body said you have you pay for Havok nor nVIDIA is dropping anything. Careful with all these baseless assumptions.

  9. Interesting. But will the ‘Unity Physics’ have the same feature set as PhysX – i.e. a character controller and wheelcolliders?
    There are certainly a few changes in the pipeline – new UI system, new Physics, DOTS – a lot to learn…

  10. “Unity Physics is available right now via the Unity Package Manager” => if you are running 2019.1.0 beta…

    1. I’ve updated the blog post the reflect that. Thanks for the reminder!

  11. > Interoperable and data-compatible with Havok Physics.

    I love this. This is really what I want to see from Unity. A collection of puzzle pieces that I can pick and choose how to put together to create exactly what I need. Abstracting multiple different solutions under one API is exactly what game engines should be doing.

  12. Would like to see potential performance improvements and general differences(features?) between Havok and Unity. I hope that will come in a later Blog post. Still very interesting!

    1. Definitely, want to do a follow-up blog post getting into a lot more of the nitty-gritty details. What sort of topics would be most interesting for you to see covered in a follow-up post?

      1. Physics Networking

      2. First, it would be really helpful to start with some pre-existing reference points for familiar concepts and then directly contrast them with what changes in thinking are required. Frame this in the context of benefits: what used to be the status quo (and what did we call it) and what new superpowers are these new tools going to give us? What, if any, will the tradeoffs look like? Are there demographics for whom this might be interesting but still best served by the previous options?

        Then, it wouldn’t hurt to offer some side-by-side looping animated gifs of simple scenes processed through both engines for comparison, ideally showing cases where Unity is better, Havok is worth the money, and where they are roughly the same.

        The other aspect you should consider is that this isn’t really just about Unity vs. Havok; for the working Unity Dev, it’s PhysX < (Unity ~ Havok). We're still wrapping our heads around the changes to the way physics are approached even before Havok is added to the equation. It all sounds really exciting, but you need to lower us into the pot at medium temperature.

  13. why don’t you hire julio jerez for your custom inhouse physics solution? his engine has the nicest solver of all physics engines. :)

  14. This is a meaningless update without a discussion around realized performance benefits. The DOTS model significantly reshapes game architecture — and so what is missing here are quantitative talking points around why the architecture change is worth adopting.
    For example — for this physics system rewrite news to be meaningful there needs to be an accompanying discussion of realized performance gains in real-world game scenarios. “e.g. Unity’s new physics is 1.5x faster than PhysX per time step…” Tech demos don’t quantity the improvement and until I see this hard evidence I am totally unconvinced.

    1. Given that the Unity Physics is in Preview, we’re still building a lot of infrastructure and tooling so a performance comparison at this point seemed unfair in the announcement post. We’ll be following up with more technical details soon. Thanks for the feedback!

    2. I would exchange performance for stability anytime.
      When it comes to performance you can always limit number of objects. When it comes to stability you are basically stucked.

  15. What about large worlds, will either system or PhyX’s pre-existing origin shifting API features be brought to Unity?

  16. “More information on distribution and pricing coming soon!”
    I can only assume that Havok will be licensed on an individual basis… this is extremely unclear.

    Lots of questions:
    Does UT plan on replacing PhysX with Havok or Unity Physics eventually?… or is this intended for use with DOTS exclusively?

    1. Unity Physics and Havok Physics are for DOTS only, PhysX remains for classic (non DOTS) Unity.

    2. The Unity Physics and Havok Physics integrations are for DOTS-based projects only. As far as PhysX, we will continue to support and evaluate upgrades to newer versions of PhysX.

      1. When I have heard about new physics system I have almost jumped, but after reading all info I’m not so sure anymore.

        As I know Unity is going to keep old system based on Physx. Are some of it’s functionality that are not working properly going to be repaired.

        I’m talking especially about OnCollision events that are not giving us proper informations about collision. I have made my own investigation about Physx and it looks like it is possible to get orientation an position of a body during contact, so we can later get the exact position of it on a collider.
        I’m not a Physx specialist but got the data from this site:
        https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/AdvancedCollisionDetection.html

        Will new Physics systems solve OnCollision events in different (proper way) than current one ?

  17. Is there going to be a PhysX integration? Since at the moment the experimental physics engine looks like it will be a while before it’s ready for production and Havok is an external licensing thing. Most indies like me can’t afford to license Havok and I would personally much prefer if our reliable battle tested physics engine was also the free, open source and MIT licensed one.

    1. I would imagine it will be part of Unity, not an extra license. Just like enlighten, umbra and all other 3rd party tech.

      1. If you read the article carefully, you’ll notice: “The Havok Physics package will be available in June 2019. More information on distribution and pricing coming soon!”. Also relevant article:

        http://gamasutra.com/view/news/338719/Unity_partners_with_Havok_to_roll_out_new_physics_systems.php