원론적으로 얘기해서...진짜 3D게임이라면 맵이 타일구조여서는 안됩니다. 하지만 MMORPG게임에선 그러기에 쉽지 않기때문에 일반적으로 타일을 많이 사용하죠.코룸같은경우도 100% 3D게임은 아닙니다.렌더러는 3D지만 내부적인 게임 처리는 2D식으로 많이 처리하죠.물론 타일도 들어갑니다. 전 엔진을 비롯한 각 모듈들을 만들었고 코룸 프로젝트를 직접 진행하지 않았기 때문에 정확히 답해드릴수는 없습니다.저히가 개발한 엔진에서는 기본적으로 3D처리를 염두해두고 있지만 충돌처리까지는 제공을 해도 맵에 따른 길찾기 방법까지 제공하지는않습니다. 게임 프로그래머의 역량에 달린 것이죠.
그리고 200*200이냐 2000*2000이냐는...
2000*2000이 통짜 타일이라면 검색할때나 기타 여러가지 처리를 할때 상당히 큰 리소스를 억세스해야합니다.즉 검색시간이 길어지고 한번에 사용할 메모리가 많아짐을 뜻합니다.
10*10짜리 타일이 모인 블럭을 200*200개 사용할 경우 한번에 억세스하는 양을 가변적으로 조절할 수 있죠.또한 각각의 플레이어와 NPC들끼리의 연관관계를 블럭 단위로 묶을 수 있죠.서버에선 꼭 필요합니다.링크드 리스트를 사용하든 테이블을 사용하든 어떤 단위로든 구간을 분리해서 구간별로 패킷을 뿌려줘야하니까요.
라그하임에서 어떤 이유로 그렇게 처리했는지 정확히 알수는 없지만 제 생각엔 서버에서 구간분리 처리를 위함이 가장 큰 이유일거 같군요.
도움이 되셨는지 모르겠네요.
그리고 200*200이냐 2000*2000이냐는...
2000*2000이 통짜 타일이라면 검색할때나 기타 여러가지 처리를 할때 상당히 큰 리소스를 억세스해야합니다.즉 검색시간이 길어지고 한번에 사용할 메모리가 많아짐을 뜻합니다.
10*10짜리 타일이 모인 블럭을 200*200개 사용할 경우 한번에 억세스하는 양을 가변적으로 조절할 수 있죠.또한 각각의 플레이어와 NPC들끼리의 연관관계를 블럭 단위로 묶을 수 있죠.서버에선 꼭 필요합니다.링크드 리스트를 사용하든 테이블을 사용하든 어떤 단위로든 구간을 분리해서 구간별로 패킷을 뿌려줘야하니까요.
라그하임에서 어떤 이유로 그렇게 처리했는지 정확히 알수는 없지만 제 생각엔 서버에서 구간분리 처리를 위함이 가장 큰 이유일거 같군요.
도움이 되셨는지 모르겠네요.