오픈 소스 Actor Framework 인 Akka.NET 을 통해 온라인 게임 서버를 어떻게 구현할 수 있는지를 설명합니다. Actor Model 에 대한 기본 이해부터 Scale-out 가능한 게임 서버 구축까지 전반적인 내용에 대해 알 수 있습니다. 설명을 위해 클라이언트는 Unity3D 를 사용할 예정입니다.
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
오픈 소스 Actor Framework 인 Akka.NET 을 통해 온라인 게임 서버를 어떻게 구현할 수 있는지를 설명합니다. Actor Model 에 대한 기본 이해부터 Scale-out 가능한 게임 서버 구축까지 전반적인 내용에 대해 알 수 있습니다. 설명을 위해 클라이언트는 Unity3D 를 사용할 예정입니다.
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
3. w
v
직각 삼각형이므로
cos@ = 밑변/빗변
cos@ = ||v||/||w||
||v|| = ||w||cos@
v의 길이(빨간 선의 길이) = ||w||cos@
4. w
v
길이(float[1]:scalar) 는 구했지만,
우리가 얻고 싶은 것은 벡터(float[3]:vector)이다.
“길이가 1인 V를 방향 벡터”와 “길이”를 곱해주면
구하고자 했던 벡터를 구할 수 있다.
v의 방향 벡터 = v / ||v||
투영벡터 = ( v / ||v|| ) * ||w||cos@
5. 하지만 두 벡터 사이의 각 @를
우리가 평소에 알 리가 없다.
그래서 쓰는 차선책
v*w(v와 w의 내적) = ||v|| ||w|| cos@
라는 사실을 응용하여
(v*w) / ||v|| = ||w|| cos@
이런 식을 만들어 낸다.
그래서 두 벡터만 주어졌을 때, 한 벡터를
다른 벡터에 투영하는 공식은
투영 벡터 = ( (v*w) / ||v||) * ( v / ||v|| )
=