내일배움캠프

240816(금) [마인크래프트 월드 생성원리 초안]

게임 프로그래머 2024. 8. 16. 14:11

1. 선택한 게임의 이름은 무엇인가요?

Minecraft

 

2. 선택한 게임의 장르는 무엇인가요?

오픈월드, 샌드박스, 어드벤처

 

3. 선택한 게임의 어떤 시스템에 집중하셨나요?

마인크래프트 월드 생성 원리

 

4. 해당 시스템이 동작하는 구조의 시작부터 과정을 자세하게 분석, 나열해봅시다.

 

순서

1. 마인크래프트 월드 생성시 스폰 청크(Spawn Chunk)를 생성한다.

→ 청크는 16(가로)×16(세로)×256(높이) 블럭의 집합체로써 1청크당 65,536 블록으로 이루어져 있다. 

→ 마인크래프트 월드를 생성하여 입장하면 플레이어 주변에 청크가 생성된다.

→ 플레이어가 이동 시 필요에 따라 또다른 청크를 생성한다. 

→ 마인크래프트 월드는 수많은 구역으로 나누어진 청크의 집합체다.

 

2. 마인크래프트 월드는 이용자가 입력한 시드로 기본틀인 펄린노이즈를 생성한다. 이때 생성되는 펄린노이즈는 돌(stone) 블럭으로 생성된다.

펄린노이즈 : 자연에서 볼 수 있는 구름이나 풍경, 대리석처럼 패턴이 있는 텍스처를 표현하는데 사용

 

3. 돌(stone) 블럭이 생성되면 주변 Y좌표가 62 이하인 곳에 물(water) 블럭으로 이루어진 바다, 호수, 강, 샘등을 형성한다.

 

4. 이후 잔디(Grass)블럭과 흙(Dirt)블럭을 새로 생성하는 것이 아닌 생성된 돌(stone) 블럭의 윗부분을 덮는 방식으로 만들어진다.

 

5. 동굴, 용암이 생성되고 동굴과 용암이 생성되면 자원(광물, 화강암, 섬록암 등)이 생성된다.

 

6. 마지막으로 나무, 잔디, 꽃, 마을과 같은 구조물의 생성으로 월드 생성은 마무리 된다.

 

 

마인크래프트 월드를 생성할 때 연관성이 있는 시드(seeds)가 있다.

 

시드(seeds)란?

월드 생성시 반드시 포함되는 지형 요소, 아이템 드랍을 결정 짓는다.

게임을 플레이하는 세계를 생성하는 코드이다.

 

시드의 특징은

1) 값은 숫자로 이루어진다.

2) 직접 숫자값을 입력하지 않을 경우 무작위 생성한다.

3) 문자로 입력할 경우 숫자로 변환된다.

 

이를 이용해 같은 값의 시드값을 입력할 경우 게임 환경이 변화해도 알고리즘은 같으므로 항상 같은 생성이 가능하다.

 

5. 직접 분석해본 내용 중 가장 핵심이 되는 구성 요소는 무엇이라 생각하나요?

이용자가 값을 변경할 경우 전체값이 변경되는 시드(seeds)라고 생각합니다. 이용자가 어떤값을 입력하느냐에 따라 그 활용도와 게임의 양상이 달라지기 때문에 월드를 생성하는데 있어 가장 핵심이 되는 구성 요소라고 생각합니다.