Azure VM 및 개인 장비 벤치마크

Voxel Horizon의 서비스에 필요한 VM사양을 알아보다가 생각난 김에 개인장비들까지 벤치마크를 돌려서 정리했다. Geekbench 4.3.3을 사용했다. Azaure DS2 v3는 현재 테스트 서버로 사용하고 있는 인스턴스 타입이다. F4S와 F8S_v2는 Voxel Horizon서비스 할때 실제로 사용하려고 하는 인스턴스 타입이다. NV6는 GPU인스턴스로 CUDA와 DirectX테스트를 위해 가끔 사용하는 인스턴스 타입이다. 돈없는 개인이 노려볼만한 스펙의 인스턴스가 DS2 v3인데 성능이 GPDWIN2만도 못한게 함정. … More Azure VM 및 개인 장비 벤치마크

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 – 가변 월드 사이즈 적용을 위한 사전작업

사업 구상(?)은 아니고 그냥 푸념.

네 프로젝트에 자신 있으면 빚내서 창업을 하면 되지 않느냐? 라고 하는 소리도 가끔 듣는다. 돈벌 자신이 있는건 아니다. 그렇다고 또 자신이 완전 없는것도 아니다. 문제는 수익 창출에 걸리는 시간과 과정이다. 내가 생각하는 수익 모델과 수익을 창출할때까지 걸리는 시간, 과정을 생각해보면 빚내서 사업하는건 자살 행위다. 난 몇개월 반짝 개발해서 한방을 노리는 그런걸 만들려는게 아니다. (만약에 회사를 … More 사업 구상(?)은 아니고 그냥 푸념.

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