마인크래프트

DnlzkWiki
(Minecraft에서 넘어옴)
Minecraft.png

마인크래프트는 3차원 LWJGL 기반의 혁신적인 모델링 및 엔지니어링 소프트웨어이다. 복셀을 기반으로 하여 모든 물체가 움직이며 이 복셀 안에서도 엔티티라는 시스템이 존재해 복셀의 한계를 뛰어넘었다.

PC용은 약 3만원의 저렴한 가격에 구매 가능하고 모바일 버전은 약 9천원에 구매 가능하다.

이 소프트웨어는 샌드박스 형태의 비디오 게임으로서 사용할 수도 있다.

기술

수많은 3차원 큐브의 렌더링

3차원 큐브를 렌더링하는 것은 어렵지 않다. 8개의 점으로 12개의 삼각형을 만들어내면 되는데, 이를 위해서는 총 36개의 정점을 지정해 주어야 한다.

3차원 큐브를 하나 렌더링하는 데에도 무리 12개의 삼각형이 필요하다. 그러나 마인크래프트에는 한 블록당 한 개의 큐브가 필요하므로 멀리까지 렌더링하려면 어마어마하게 많은 큐브를 렌더링해야 한다. 이때 사용되는 기술이 있다. 바로 사용자에게 보이는 면만 렌더링하는 것이다. 공기나 투명한 블록과 닿아 있는 면은 렌더링하되, 불투명한 블록과 맞닿아 있는 면은 렌더링하지 않는다. 사용자에게 보이지 않는 부분은 렌더링하지 않는다는 것이다. 이것이 바로 마인크래프트의 혁신적인 기술 중 하나이다.

청크의 생성

자연스러운 언덕이나 산을 만드는 것은 정말로 쉽지 않은 일이다. 마인크래프트는 특수한 노이즈 함수를 이용하여 height map을 만들고, 적절히 보간하여 자연을 만들어 낸다. 동굴을 만드는 것도 굉장히 어렵다. 이 경우에도 노이즈를 적절히 이용한다. 시드가 같으면 똑같은 맵이 나오도록 하는 repeatability도 굉장히 어려운 부분이기도 하다.

바이옴

바이옴(생물군계)는 마인크래프트에서 빠질 수 없는 요소 중 하나이다. 초원, 산, 사막, 바다 등과 같은 수많은 바이옴들을 어떻게 만들었을까? 중요한 점은, 바다 옆에 사막이 오면 안 되는 것과 같이 자연스러운 바이옴 배치이다. 사실 바다 옆에 사막이 오면 안 될 것도 없다. 온도와 습도를 노이즈로 만든 후에, lookup table을 이용해서 그에 대응되는 바이옴을 만든다고 한다. 바이옴이 연결되는 부분에서는 또한 보간을 적용하여 자연스러워 보이게 만들기도 했다.

명령어

명령어는 구문 분석을 이용해서 해석된다는 사실은 누구나 알고 있을 것이다. 환경을 명령어로써 변화시킬 수 있다는 점은 마인크래프트의 주요한 기술이라고 볼 수 있다.

수많은 즐길거리

위와 같은 수많은 어려움에도 불구하고, 마인크래프트는 지속적으로 업데이트해 나가고 있으며 컨텐츠가 수없이 많다.