h662

메이플스토리 월드 강의

무한 점프맵 만들기

메이플스토리 월드로 끝없이 위로 올라가는 점프 게임을 처음부터 출시까지 만듭니다. 글만 읽어도 따라 할 수 있게 그림과 코드를 함께 실었습니다.

무한 점프맵 만들기 완성 화면

전체 글

1화무엇을 만들고 무엇을 배우나메이플스토리 월드로 끝없이 위로 올라가는 무한 점프맵을 처음부터 만듭니다. 첫 글에서는 완성된 게임의 규칙과 장애물, 탑이 끝없이 이어지는 원리, 메이플스토리 월드가 게임 만들기를 쉽게 해 주는 이유, 준비물과 강의 흐름을 정리합니다.2화손으로 탑 1층코드 없이 새 월드를 만들고, 발판 일곱 개와 시작점을 손으로 놓아 탑 1층을 완성합니다. 캐릭터가 얼마나 뛸 수 있는지에 맞춰 발판 사이를 정하고, 떨어지면 시작점으로 돌아오는 기본 동작과 맵 경계도 살펴봅니다.3화첫 코드로 계단 만들기첫 스크립트를 만들고, 테이블과 반복문으로 발판 일곱 개를 계단 모양으로 옮깁니다. 실행 중에 옮긴 발판을 밟으려면 무엇이 필요한지, 움직이는 발판만 있을 때 맵 경계를 어떻게 정하는지도 함께 다룹니다.4화무작위로 층 만들기캐릭터의 점프 거리를 재서 발판 사이 규칙을 정하고, 무작위 함수로 실행할 때마다 모양이 달라지는 층을 만듭니다. ServerOnly 를 빼 보면서 무작위처럼 결과가 달라지는 일을 왜 서버 한 곳에서 정해야 하는지도 확인합니다.5화층 끝에서 위층으로한 층짜리 맵을 세 층짜리 탑으로 키웁니다. 층을 만드는 코드를 함수로 묶어 세 번 부르고, 메이플의 포탈을 우리만의 출구로 고친 뒤, 출구에 닿으면 서버가 플레이어를 위층으로 옮기게 합니다.6화서버와 클라이언트플레이어가 지금 몇 층에 있는지 기억하게 만듭니다. DefaultPlayer 에 층 번호를 담는 컴포넌트를 붙이고, 위층으로 옮기는 일을 플레이어에게 맡긴 뒤, 서버에서 바뀐 값이 내 화면(클라이언트)까지 어떻게 오는지 Sync 로 확인합니다.7화게임오버발을 헛디뎌 떨어지면 탑 1층부터 다시 시작하게 만듭니다. 층 바닥 아래에 보이지 않는 선을 두고 서버의 OnUpdate 에서 매번 확인하며, 순간이동한 위치가 서버에 늦게 도착할 때 생기는 문제까지 미리 막습니다.8화화면에 층 표시지금 몇 층인지 화면 위쪽 가운데에 글자로 보여 줍니다. UI 편집기에서 글자를 올려 앵커와 PosY 로 자리를 잡고, 화면에 하나뿐인 글자는 Logic 으로 맡기며, UI 가 클라이언트에만 있으니 OnUpdate 를 ClientOnly 로 바꿔 내 플레이어의 층을 읽어 옵니다.9화게임오버 알림떨어졌을 때 몇 층까지 올랐는지, 떨어진 그 사람의 화면에만 알려 줍니다. UI 편집기에서 바탕 판과 글자 두 줄로 알림을 만들고, Enable 과 SetTimerOnce 로 띄웠다가 감추며, 실행 공간 Client 와 UserId 로 서버가 그 사람의 클라이언트에서만 알림을 띄우게 합니다.10화최고 기록 저장내가 오른 가장 높은 층을 최고 기록으로 남기고, 게임을 껐다 켜도 그대로 남게 만듭니다. 기록만 맡는 TowerRecord 를 만들어 화면에 최고 몇 층인지 띄우고, 데이터 스토리지에 SetAsync 로 저장한 뒤 들어올 때 GetAndWait 로 불러옵니다. 처음 들어온 사람은 오류 없이 빈 값이 온다는 함정도 직접 틀려 보고 고칩니다.11화난이도탑을 오를수록 어려워지게 만듭니다. 층마다 어려움을 0 에서 1 사이의 숫자 하나로 계산하고, 그 숫자로 짧은 발판이 나올 확률과 틈의 너비를 정합니다. 길이가 다른 발판 사이의 거리를 다시 계산하고, 틈의 한계는 그대로 둔 채 가장 좁은 틈을 올립니다. 마지막으로 숫자들을 Property 로 꺼내 Maker 에서 바로 난이도를 바꿔 봅니다.