Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

개인맵 기능 자체는 몇개월 전에 구현했다. 완벽하다고 볼순 없지만 핵심적인 기능은 모두 구현했다. 또한 성능저하를 막기 위해 개인맵의 생성/삭제를 완전히 백그라운드에서 비동기적으로 처리하도록 했다. 이 부분이 꽤 힘들었다. 이때는 단순히 기능 구현이 목표였다. 이때만 해도 어지간한 UI는 콘솔로 다 처리할 생각이었으므로 UI부분은 전혀 신경 쓰지 않았다. 정말 다 콘솔로 구현했다. 11월에 출시한다고 마음을 굳힌 상황에서 … More Voxel Horizon – 개인맵 기능 개선 및 GUI추가.

Game Dev – Voxel Horizon 개발중 잡설

VOXEL HORIZON프로젝트를 시작하게 된 최초의 동기는 다음과 같다. – 배경 리소스 뽑아줄 디자이너가 없다. – 복셀렌더링을 해보고 싶었다. 그리고 개발을 진행해오면서 늘 유지하고 있는 프로젝트의 가장 큰 목적은 다음과 같다. – 자체엔진 개발이 옳다는걸 증명하고 싶다. 내 엔진만의 장점을 보이고 싶다. 상용 엔진의 기능 만으로 복셀월드를 렌더링할 수 없으니까. 복셀월드를 MMORPG베이스로 구현한다고 하는 것은 단순히 … More Game Dev – Voxel Horizon 개발중 잡설

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 – 캐릭터 상태 창

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