[NDC] 유체역학 엔진 개발기 - 게임에서 물리 기반의 유체를 구현하기 위한 고군분투
NDC 넥슨 · YouTube
AI 핵심 요약
게임에 적용할 물리 기반 유체를 만들기 위해 C++17과 제트 프레임워크를 바탕으로 크로스 플랫폼 유체 시뮬레이션 엔진을 개발했다. 입자·격자·하이브리드 방식의 솔버를 구성하고, 힘 계산과 시간 통합, 충돌 처리를 구현했으며 CMake로 여러 플랫폼의 빌드를 지원했다. 개발 과정에서는 플랫폼별 컴파일 차이와 스레드 재귀 호출로 인한 레이스 컨디션을 해결했고, Intel TBB와 OpenMP를 적용해 계산 성능을 개선했다. 다만 당시 성능으로는 게임의 실시간 유체에 바로 쓰기 어려웠으며, GPU 병렬화와 렌더링 연동이 남은 과제라는 점을 공유했다.
- 유체 시뮬레이션은 입자 기반, 격자 기반, 두 방식을 결합한 하이브리드 방식으로 나눌 수 있으며, 목적에 맞춰 선택해야 합니다.
- 시뮬레이션 솔버는 상태 표현, 힘 계산, 시간 통합, 제약·충돌 처리를 각각 설계하는 구조로 구성할 수 있습니다.
- CMake를 활용하면 여러 운영체제와 컴파일러를 지원할 수 있지만, 플랫폼별 빌드 옵션과 실제 빌드 테스트가 필요합니다.
- 병렬화는 계산 시간을 줄이는 데 도움이 되지만, 스레드 간 재귀 호출로 발생하는 레이스 컨디션 등 동시성 문제를 주의해야 합니다.
- 게임에서 실시간으로 활용하려면 CPU 병렬화만으로는 부족할 수 있으며, GPU 가속과 렌더링 연동도 고려해야 합니다.
소개
NDC 2018 [유체역학 엔진 개발기 - 게임에서 물리 기반의 유체를 구현하기 위한 고군분투] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 옥찬호 2. 발표자 소개 : 현재 넥슨 코리아에서 마영전 게임 클라이언트 개발을 담당하고 있습니다. C++와 게임 개발, 컴퓨터 그래픽스, 오픈 소스에 관심이 많습니다. 페이스북 C++ Korea 그룹을 운영하며 스터디 활동과 함께 다양한 책을 번역/집필 중이며, 남는 시간엔 학생들과 함께 다양한 오픈 소스 프로젝트를 진행하며 보다 나은 미래를 만들기 위해 노력하고 있습니다. 옮긴 책으로는 『게임샐러드로 코드 한 줄 없이 게임 만들기』 (에이콘출판사, 2013), 『유니티 Shader와 Effect 제작』 (에이콘출판사, 2014), 『2D 게임 프로그래밍』 (에이콘출판사, 2014), 『러스트 핵심 노트』 (한빛미디어, 2017), 『모던 C++ 입문』 (길벗, 2017)이 ...
비슷한 학습 자료
컨퍼런스 NDC
[NDC21-게임기획] How to train your robot
컨퍼런스 NDC
● 설문조사: https://forms.gle/kCBbY3VeXY664E7JA ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 게임기획 ● 발표자: 엠바크스튜디오 Tom Solberg ● 권장 대상: Game Designers, Animators, Technical Animators, Animation Programmers ● 키워드: #Physics #Emergent Gameplay #Robotics #Reinforcement Learning #Animation 본 NDC 발표 동영상(이하 “저작물”이라 합니다)에 대한 저작권 (2차적저작물작성권 및 편집저작물작성권 포함)은 해당 저작물의 저작자(발표자 포함) 또는 (주)넥슨코리아 (이하 “권리자”라 합니다)에게 귀속되며, 권리자의 허락 없이 이를 상업적으로 이용하거나 무단으로 도용, 편집, 2차적저작물을 작성, 공중송신, 배포할 수 없습니다.
딥러닝 · 머신러닝 게임 프로그래밍
컨퍼런스 NDC
NDC 2019 [블리자드 모든 팀을 위한 플랫폼 중립적인 공용 라이브러리 만들기] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 베틀넷 부문 데이터 팀에서 빅데이터 시스템을 개발하고 있습니다. 2001년 부터 개발 일을 시작해서 주로 C++를 이용한 패키지 소프트웨어 개발, 온라인 게임, 게임 플랫폼 개발 업무를 해왔습니다. 주요 프로젝트로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 베틀넷 데스크탑 앱, 오버워치 게임 클라이언트 등이 있습니다. NDC 2017에서 '더 좋은 코드를 위한 함수형 프로그래밍', NDC 2018에서 '게임 서비스 플랫폼을 지탱하는 알고리즘' 세션을 발표했습니다. 3. 세션 소개 : 최근 3년간 블리자드 모든 게임 팀에 적용해온 윈도우즈, 맥오에스, 리눅스, 콘솔, 모바일 등 모든 게임 플랫...
프로그래밍 언어
컨퍼런스 NDC
NDC 2019 [〈하스스톤〉 강화학습 환경 개발기 - 0티어 덱을 만들기 위해 떠나는 모험] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 옥찬호 2. 발표자 소개 : 현재 넥슨 코리아에서 마영전 게임 클라이언트 개발을 담당하고 있습니다. C++와 게임 개발, 컴퓨터 그래픽스, 강화학습, 오픈 소스에 관심이 많습니다. 페이스북 C++ Korea 그룹을 운영하며 스터디 활동과 함께 다양한 책을 번역/집필 중이며, 남는 시간엔 학생들과 함께 다양한 오픈 소스 프로젝트를 진행하며 보다 나은 미래를 만들기 위해 노력하고 있습니다. 옮긴 책으로는 『게임샐러드로 코드 한 줄 없이 게임 만들기』 (에이콘출판사, 2013), 『유니티 Shader와 Effect 제작』 (에이콘출판사, 2014), 『2D 게임 프로그래밍』 (에이콘출판사, 2014), 『러스트 핵심 노트』 (한빛미디어, 2017), 『모던 C++ 입문』 (길벗, 20...
딥러닝 · 머신러닝 게임 프로그래밍
컨퍼런스 NDC
NDC 2019 유니티 ECS & Job System 분석 및 적용 - 타일 맵 기반 게임 적용 사례 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 함동기 2. 발표자 소개 : 유니티로 모바일 시뮬레이션 게임을 만들고 있습니다. 이전에는 도미네이션즈 중국 런칭 및 라이브 업무를 담당했습니다. NDC 14에서 Cocos2d-x 관련 내용으로 발표를 했고 같은 주제로 책을 쓰기도 했습니다. 3. 세션 소개 : 유니티의 새로운 개발 패러다임인 ECS(Entity Component System)와 C# Job System의 개념과 활용 방법, 개발 중인 프로젝트에 적용한 사례를 다룹니다. 현재 타일 맵 기반의 시뮬레이션 게임을 개발하고 있습니다. 게임 특성상 플레이 중 비슷한 타입의 오브젝트들이 무수히 생성되어 움직이고 또 사라집니다. 기존의 유니티 개발 방식으로는 원하는 퍼포먼스를 얻기 힘들었습니다. 이에 기존 코드를...
프로그래밍 언어 게임 프로그래밍
컨퍼런스 NDC
[NDC] 물리 기반 애니메이션 or 비 물리 기반 애니메이션
컨퍼런스 NDC
NDC 2018 [물리 기반 애니메이션 or 비 물리 기반 애니메이션] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 홍상범 2. 발표자 소개 : 현재 Nexon Company의 ThingSoft의 노크팀에서 근무 하고 있으며, TA업무를 담당하고 있습니다. 과거에는 삼지 애니메이션에서 "City paradiso" 3D입체 애니메이션 "Bolts & Blip" 3D애니메이션, "Monk"3D애니메이션, "Bugged" 3D애니메이션, "Vroomies" 3D애니메이션, "Firebreso" 3D애니메이션 개발 참여 대원미디어에서 "Gon"시즌1~2 3D애니메이션, "Egg"트레일 3D애니메이션 개발 참여, 스마일게이트 에서 "Crossfire2" 게임 개발 참여 NC Soft에서 "Blade & soul"게임 개발 참여 ThingSoft에서 던파 후속작을 개발중 발표경력: NDC16, IGC 강의 경력: 백석대학교 ...
게임 프로그래밍 게임 아트 · 그래픽
컨퍼런스 NDC
NDC 2018 [억! 소리나는 게임 서비스 플랫폼을 지탱하는 알고리즘 - 해쉬, 확률적 자료구조, 불변데이터] 세션 공유드립니다. 상세 내용은 NDC Replay 홈페이지를 참고 부탁드려요. 😊 1. 발표자 성함 : 전이삭 2. 발표자 소개 : 현재 블리자드 엔터테인먼트 배틀넷 부문 데이터 팀에서 빅데이터 수집/분석 시스템을 개발하고 있습니다. 2001년부터 PC 및 모바일용 패키지 소프트웨어, 게임 클라이언트, 게임 배포 및 서비스 플랫폼, 서버 프레임워크, 소스 코드 정적 분석 툴 등 다양한 프로젝트들에 참여했습니다. 참여한 프로젝트들로는 나모 웹 에디터, 나모 핸드스토리, 한게임 바둑, 월드 오브 워크래프트 게임 런처, 월드 오브 워크래프트 실시간 게임 다운로드 Play on Demand 라이브러리, 배틀넷 데스크톱 앱, 오버워치 게임 클라이언트 등이 있습니다. 작년 NDC2017에서는 '더 좋은 코드를 위한 함수형 프로그래밍 - 모던 C++를 중심으로'라는 제목의 세...
알고리즘 · 자료구조