Voxel Horizon – 복셀 월드에 몬스터 배치

이전에도 게임 서버에 몬스터를 올린적이 있었지만 그땐 기능 테스트를 위해서 하드코딩으로 올린거였다. 이번에는 절차대로 몬스터를 배치했다. 1. 맵툴에서 몬스터 배치 2. 맵툴 -> DB로 저장. 3. 게임서버가 DB의 몬스터 리스트를 읽어와서 로딩 및 배치. 몬스터에게 무기를 쥐어주지 않았으므로 공격은 못한다. 몬스터와 이벤트 NPC에는 당초 목표대로 실시간 복셀라이제이션을 적용했다. 과거에는 NPC서버와 Game서버를 따로 두고 통신하도록 했는데 … More Voxel Horizon – 복셀 월드에 몬스터 배치

Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업

먼저번에 node사이즈를 꽤 줄여서 KD-Tree메모리로 56MB 사용하던것을 18M로 줄였다. 그 다음으로 맵 유형에 따라 Tree의 사이즈를 가변적으로 선택할 수 있도록 작업하고 있다. 지금까지는 월드 사이즈를 1km x 1km x 0.32km 고정으로 설정했었다. 이것은 kd-tree가 커버하는 사이즈이기도 하며 복셀월드에서 복셀들이 차지하는 실제 사이즈와는 관계가 없다. 퍼블릭맵에서는 1km x 1km를 기본으로 하고 있으므로 문제가 될것이 없다. 하지만 … More Game Dev – Voxel Horizon – 가변 월드 사이즈 적용을 위한 사전작업

Voxel Horizon – 개인맵

플레이어가 공용맵에서 지형을 마구 뽀개거나 마구 건물을 짓거나 하면 다른 플레이어에게 큰 피해가 된다. 따라서 공용맵에선 복셀 편집 기능을 제한해야 한다. 그래서 공용맵에선 플레이어당 편집 범위가 32m x 32m로 제한된다. 또한 마을이나 전투필드처럼 NPC가 배치되는 맵의 경우 지형을 함부로 변경하면 곤란하다. 안전장치로 마을이나 전투 필드에선 복셀을 파괴하더라도 몇초후 자동복구 되도록 했다. 그런데 이렇게 제약사항이 많아지면 … More Voxel Horizon – 개인맵

복셀 자동 복원 기능을 넣었다. 전투필드나 마을처럼 많은 플레이어들이 함께 이용하는 맵이라면 플레이어들이 지형을 멋대로 바꾸면 큰 문제가 생길 수 있다. 따라서 자유로운 복셀 편집은 개인맵과 크래프트 전용 맵에서만 허용할 예정이다. 전투필드와 마을을 퍼블릭 맵이라 부른다. 그리고 이 퍼블릭맵은 기본적으로 복셀 편집 금지다. 퍼블릭 맵에선 기본적으로 복셀 편집 금지지만…게임을 처음 시작하면 틀림없이 지형을 뽀개보고 싶을 … More

Voxel Horizon – 실패한 기능 – 부드러운 충돌 삼각형 매시 생성

2주간의 삽질이었다. 이전 프로젝트(모델링된 삼각형 매시와 Height Field기반의)에선 몬스터들이 건물 내에 있을땐 평평한 바닥으로만 움직였다. 건물 밖에 있을 경우 Height Field위에서 움직였다. 따라서 부드러운 이동이 가능했다. 지금 프로젝트의 복셀월드에선 복셀 요철이 최소 50cm에서 최대 4m에 달한다. 그러다보니 몬스터가 복셀간 요철에 걸려서 바보 되는 일이 부지기수로 생긴다. 여러가지 방법을 생각했고 충돌매시를 2중으로 갖고 필요에 따라 사용하는 … More Voxel Horizon – 실패한 기능 – 부드러운 충돌 삼각형 매시 생성

Voxel Horizon – 캐릭터 상태 창

캐릭터 상태창을 만들었다. 상태창 자체는 HP와 레벨정도만 표시해두면 되니 그냥 노가다이다. 단 HP등 게이지를 표시하려면 가변길이의 막대와 이와 연동되는 숫자 표시가 필요하다. 이것도 수동처리하면 그냥 노가다이다. 게임에선 엄청 자주 쓰는 기능이므로 UIProgressBar란 이름의 컨트롤을 만들어서 UI라이브러리에 추가했다. 기본 UI컴포넌트 기능에 추가적으로 n / m 으로 값을 설정해주면 막대와 표시 텍스트는 자동으로 렌더링 하도록 했다. 기본적으로 … More Voxel Horizon – 캐릭터 상태 창

Game Dev – Voxel Horizon – UI- Scroll Bar

스크롤바 안만들려고 했는데 결국 만들어 넣었다. 사실은 좀더 머리를 쓰는 작업을 하고 싶었다. 모델링 데이터에서 복셀의 색을 샘플링 하려 했는데 이게 생각보다 간단치 않았다. 가만히 책상 앞에 앉아서 시간 죽이느니 언젠가 해야할 일을 빨리 해치워버리자는 생각이 들었다. 그래서 미뤄뒀던 스크롤바를 만들었다. 기술적으로 크게 대단할 일은 없다. 기존 UI체계에 IUIScrollBar 인터페이를 노출하는 스크롤바 클래스를 만들어 넣었다. … More Game Dev – Voxel Horizon – UI- Scroll Bar