멋쟁이사자처럼 10기 활동 중에 넥슨과 함께하는 MOD 서포터즈 해커톤에 운영진으로 참여하게 되었다. 게임에 관심이 많았던 나로써는 3학년 때 컴퓨터 그래픽스 수업에서 미니 게임을 만든 것 외에 별 다른 게임 제작 프로젝트를 해보지 못한 것이 많이 아쉬웠는데 이번 기회에 그 아쉬움을 해소할 수 있을 것 같아 매우 기대가 된다.
1주차에는 기본적인 툴의 구성에 대해 배웠다. 유니티 같은 툴을 사용할 것이라고 생각은 했지만 넥슨에서 직접 제작한 툴을 사용하게 될 줄은 몰랐다. 더군다나 메이플스토리 ui를 기본적으로 제공해준다. 덕분에 흥미도가 한층 더 업됐던 것 같다ㅎㅎ
MOD: 넥슨에서 제공하는 메타버스 기반 게임 제작 프로그램
Window 지원, MacOS는 개발 중
이미지, 배경, 타일 등 그래픽 소스는 제공됨. 바로 가져다 사용하면 됨.
플레이 버튼을 눌렀을 때, 프로젝트가 저장되어 있지 않으면 프로젝트를 저장하라는 메시지가 뜸. 저장하고 다시 버튼을 누르면 내 캐릭터로 플레이 할 수 있음.
여러가지 설정 가능. 최대 플레이어 수(한 서버 당), 플레이 가능 여부(공개해야 다른 사람들이 내가 만든 게임을 해볼 수 있음), 리메이크 허용, 플레이 가능 기기 등 설정 할 수 있음.
메이커를 통해 게임을 만들고 출시할 수 있음.
publish : 출시. MOD상에서 내 게임 출시.
save: 저장하는 즉시 서버에 저장됨. 로컬에 따로 저장되지 않음.
export to file: 파일로 게임 내보내기 기능.
revisions: 버전 기록 기능. 버전 백업. 특정 버전으로 되돌리기, 다운로드 가능.
편집 기능. Undo, Redo, Cut, Copy, Paste 등 기능 있음.
생성 기능. Entity, Ui Entity, folder, scripts 등을 새로 생성할 수 있음.
여러 패널들을 제공하고 있음. 정말 필요한 패널의 경우 화면에 도킹 시켜 사용할 수 있음. 원하는대로 패널들을 꺼내고 닫고 할 수 있음.
reset panel: 패널 초기화. 초기 화면대로 돌아갈 수 있음.
도킹이 안되는 기능들 제공.
Map List: MOD에서 제공하는 맵 리스트
MapleStory Map 또한 제공.
Script Manager: 기본적으로 제공하는 스크립트 샘플들 확인 가능.
스크립트 개발에서 문제가 생기는 부분 디버깅으로 확인 가능.
메이커에서도 건의하기로 버그 건의 가능.
차례대로 Undo, Redo, 기본 커서(컴포넌트 선택), 화면 이동 커서(화면 스크롤 가능), 지우개 커서(개체 삭제-우클릭으로도 가능), UI 편집, 타일에디터 토글(타일맵모드를 변경할 수 있음)
차례대로 실행, 디버그, 테스트용 유저 추가(멀티 클라이언트 기능을 통해 테스트 가능). 실행 다음 두 버튼은 아직 기능 미지원.
나만의 리소스를 직접 올리고 메타데이터 수정 가능.
월드를 구성하고 있는 객체 (npc, 몬스터, 지형, 월드 등 물체 모두를 일컬음)
오브젝트 = entity
Scene Maker에 있는 월드를 구성하는 모든 것을 엔티티라고 함.
엔티티의 성질 및 기능을 결정하는 것.
각각의 엔티티들은 여러개의 컴포넌트로 구성되어 있음.
ex) 포탈 컴포넌트
script component
native component
컴포넌트의 고유 특성, 컴포넌트의 세부적인 작동을 설정할 수 있음.
즉, 엔티티를 조작했을 때 컴포넌트가 어떻게 작동할 것인지 결정.
체크박스로 해당 컴포넌트 활성화/비활성화 가능함
컴포넌트마다 다른 property를 가짐. Property 창에서 쉽게 설정할 수 있도록 노출되어 있음.
api reference 페이지에서 상세 확인 가능.
컴포넌트는 같은 컴포넌트여도 property를 다르게 설정하면 다르게 동작함 → 같은 이름의 함수를 객체마다 다르게 설정해 사용 가능.
서비스와 로직은 월드상에 딱 하나만 존재하는 동작 함수.
서비스: MOD에서 실제가 유저가 제어하기 힘든 코어한 부분을 제공하는 로직. 기본적인 일을 많이 함. 크리에이터가 편집 불가능.
ex) 유저 서비스, 로그 서비스, 데이터, 카메라 등.
로직: 게임 상에서 돌아가는 로직. 서비스와 달리 가공할 수 있음. 크리에이터가 직접 로직을 만들수도 있음.
ex) ui, utils 로직 등
모듈화 된 객체
객체와는 다름. 스탬프의 원본이라고 생각하면 이해가 쉬움. 모양틀이라고 생각하면 쉬움.
미리 규격화된 형태를 만들어 둔 것으로 컴포넌트, property 등이 미리 초기화 되어 있는 형태.
모델을 가지고 와서 알맞게 가공하면 객체(entity)가 됨.
반대로 내가 만든 객체를 모델로 저장할수도 있음.
*makeChildModel → 내가 설정한 기능들이 기본적으로 제공되는 나만의 모델을 생성. 같은 객체를 여러 개 만들고 싶을 때 사용. 생산성을 높이고 싶을 때 사용하면 됨.