멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 1주차 회고

ssunn·2022년 5월 21일
0

멋쟁이사자처럼 10기 활동 중에 넥슨과 함께하는 MOD 서포터즈 해커톤에 운영진으로 참여하게 되었다. 게임에 관심이 많았던 나로써는 3학년 때 컴퓨터 그래픽스 수업에서 미니 게임을 만든 것 외에 별 다른 게임 제작 프로젝트를 해보지 못한 것이 많이 아쉬웠는데 이번 기회에 그 아쉬움을 해소할 수 있을 것 같아 매우 기대가 된다.

1주차에는 기본적인 툴의 구성에 대해 배웠다. 유니티 같은 툴을 사용할 것이라고 생각은 했지만 넥슨에서 직접 제작한 툴을 사용하게 될 줄은 몰랐다. 더군다나 메이플스토리 ui를 기본적으로 제공해준다. 덕분에 흥미도가 한층 더 업됐던 것 같다ㅎㅎ

기본의 이해

MOD 클라이언트 구성 소개 및 사용법

MOD: 넥슨에서 제공하는 메타버스 기반 게임 제작 프로그램

Window 지원, MacOS는 개발 중

  • 홈 : 내가 플레이 했던 게임들
  • 플레이 : 내가 플레이 하진 않았지만 다양하게 출시되는 게임들. 원하는 게임 선택해 플레이 가능
  • 아바타 : 아바타 꾸미기 가능. 현재는 따로 결제 시스템이 되어 있지 않아 원하는대로 캐릭터 꾸미기 가능
  • 배경 : 원하는 배경화면 지정 가능
  • 더보기 : 프로필 편집, MOD 포럼, 개발자 사이트, 건의하기 등으로 연결.
  • 소셜 기능 : 개발중

게임 만들기

  • 새로 만들기(빈 프로젝트) : PC에서만 지원. 모바일은 불가
  • 꾸미기: 모바일에서도 가능
  • 내가 만들던 게임을 이어서 만들기도 가능

새로 만들기 → 게임 메이커 진입

이미지, 배경, 타일 등 그래픽 소스는 제공됨. 바로 가져다 사용하면 됨.

플레이 버튼을 눌렀을 때, 프로젝트가 저장되어 있지 않으면 프로젝트를 저장하라는 메시지가 뜸. 저장하고 다시 버튼을 누르면 내 캐릭터로 플레이 할 수 있음.


File

여러가지 설정 가능. 최대 플레이어 수(한 서버 당), 플레이 가능 여부(공개해야 다른 사람들이 내가 만든 게임을 해볼 수 있음), 리메이크 허용, 플레이 가능 기기 등 설정 할 수 있음.

메이커를 통해 게임을 만들고 출시할 수 있음.

publish : 출시. MOD상에서 내 게임 출시.

save: 저장하는 즉시 서버에 저장됨. 로컬에 따로 저장되지 않음.

export to file: 파일로 게임 내보내기 기능.

revisions: 버전 기록 기능. 버전 백업. 특정 버전으로 되돌리기, 다운로드 가능.

Edit

편집 기능. Undo, Redo, Cut, Copy, Paste 등 기능 있음.

Create

생성 기능. Entity, Ui Entity, folder, scripts 등을 새로 생성할 수 있음.

Panels

여러 패널들을 제공하고 있음. 정말 필요한 패널의 경우 화면에 도킹 시켜 사용할 수 있음. 원하는대로 패널들을 꺼내고 닫고 할 수 있음.

reset panel: 패널 초기화. 초기 화면대로 돌아갈 수 있음.

Window

도킹이 안되는 기능들 제공.

Map List: MOD에서 제공하는 맵 리스트

MapleStory Map 또한 제공.

Script Manager: 기본적으로 제공하는 스크립트 샘플들 확인 가능.

Debug

스크립트 개발에서 문제가 생기는 부분 디버깅으로 확인 가능.

메이커에서도 건의하기로 버그 건의 가능.

차례대로 Undo, Redo, 기본 커서(컴포넌트 선택), 화면 이동 커서(화면 스크롤 가능), 지우개 커서(개체 삭제-우클릭으로도 가능), UI 편집, 타일에디터 토글(타일맵모드를 변경할 수 있음)

차례대로 실행, 디버그, 테스트용 유저 추가(멀티 클라이언트 기능을 통해 테스트 가능). 실행 다음 두 버튼은 아직 기능 미지원.

Scene

  • 그리드 정보 : 직사각형 모양의 그리드가 뜸. 좌표를 좀 더 정확하게 확인할 수 있음.
  • 발판 정보 : 기본적으로 타일의 모양에 따라서 발판 정보가 형성됨. 발판의 정보를 확인 할 수 있음. 수평/수직 배치 가능. 해당 타일들은 연결되어 있음. 폴드가 연결되어 있는 부분은 통과할 수 없음. 타일 정보를 활성화 시켜서 해당 맵의 폴드가 어떻게 형성되어 있는지 확인 가능.
  • 여기서 시작 : 원하는 지점에서 테스트 시작 할 수 있음.
  • 모바일 시뮬레이터 : 모바일에서 플레이하는 것처럼 테스트 할 수 있음.
  • 성능 통계 : 현재 이 게임의 statics를 확인할 수 있음.

Model List

  • 배경, solid 배경, 이미지 배경, 타일, 객체, 몬스터, npc, foothold, 사다리, 로프, 포탈, 트랩, bgm, 아이템, 스페셜 모델, 내 모델, ui preset 등 게임에 필요한 컨텐트 리스트.
  • 슬라이더 조작으로 미리보기 크기 조정 가능
  • Foothold: 발판 정보를 갖고 있는 객체 → edit foothold 사용해서 foothold 정보 수정 가능. foothold 기능이 없는 객체여도 기능 추가 가능.
  • 새 그룹 추가: 나만의 카테고리 생성

Scene Maker

  • 게임에 추가한 모델들 확인 할 수 있음
  • 모델들 사이에 관계를 형성 할 수도 있음
  • 기존 모델을 변형한 버전을 저장하고 싶으면 make origianl model 기능을 사용해 workspace에 저장하면 됨. workspace에서 모델의 자세한 설정 가능.

Workspace

  • scene에 추가한 모델들의 원본 이미지가 저장됨
  • 스크립트 추가 가능
  • 폴더 추가 가능
  • 일종의 파일 탐색기
  • 스크립트의 텍스트 편집 가능 → export 하면 파일로 내보내기 가능

Property

  • name: npc 이름 지정
  • message: npc 말풍선 지정
  • 초기에 저장되어 있는 속성들 뿐만 아니라 새로운 속성을 추가할 수도 있음. (plain text 기능으로도 공유 가능 - 코드의 단순화? 같은 느낌)
  • SpriteRUID : 리소스 ID. 각 리소스마다 각기 다른 UID를 갖고 있음. Sprite Picker에서 다른 이미지로 교체 가능.

Map Layer

  • 타일의 경우 레이어별로 동일한 하나의 타일만 배치 가능
  • 레이어를 하나 더 만들어서 다른 타입의 타일 배치 가능
  • 기본적으로 더 상위에 위치한 레이어의 우선순위가 더 높음. 외에 객체들은 property-OrderInLayer를 사용해 레이어의 배치 순서를 지정할 수 있음

Panel - ResourceStorage

나만의 리소스를 직접 올리고 메타데이터 수정 가능.


기본 개념의 이해

Entity

월드를 구성하고 있는 객체 (npc, 몬스터, 지형, 월드 등 물체 모두를 일컬음)

오브젝트 = entity

Scene Maker에 있는 월드를 구성하는 모든 것을 엔티티라고 함.

특성

  • 각각의 개체는 모두 트리 형태로 구성되어 있다. (부모, 자식 관계를 이루고 있다.) 부모는 상위 개념이므로 부모에 변화를 주면 자식에도 변화가 적용된다. (자식은 부모의 상태를 따라간다.)
  • 그룹화가 가능하다. (조작이 편리해짐)

Component

엔티티의 성질 및 기능을 결정하는 것.

각각의 엔티티들은 여러개의 컴포넌트로 구성되어 있음.

ex) 포탈 컴포넌트

script component

  • 직접 컴포넌트를 만들 수 있음. 어떤 일을 할지는 컴포넌트 함수 안에서 정의.

native component

  • 미리 만들어놓은 컴포넌트.
  • WorkSpace → BaseEnvironment → NativeScripts → MODComponent : MOD에서 기본적으로 제공하는 컴포넌트 목록. api reference 페이지에서 상세 확인 가능.
  • 컴포넌트 안에서 어떻게 일이 처리되는지 구체적으로 알 수 없음. (상세 코드를 알 수 없다는 뜻)

Property

컴포넌트의 고유 특성, 컴포넌트의 세부적인 작동을 설정할 수 있음.

즉, 엔티티를 조작했을 때 컴포넌트가 어떻게 작동할 것인지 결정.

체크박스로 해당 컴포넌트 활성화/비활성화 가능함

컴포넌트마다 다른 property를 가짐. Property 창에서 쉽게 설정할 수 있도록 노출되어 있음.

api reference 페이지에서 상세 확인 가능.


서비스와 로직

컴포넌트는 같은 컴포넌트여도 property를 다르게 설정하면 다르게 동작함 → 같은 이름의 함수를 객체마다 다르게 설정해 사용 가능.

서비스와 로직은 월드상에 딱 하나만 존재하는 동작 함수.

서비스: MOD에서 실제가 유저가 제어하기 힘든 코어한 부분을 제공하는 로직. 기본적인 일을 많이 함. 크리에이터가 편집 불가능.

ex) 유저 서비스, 로그 서비스, 데이터, 카메라 등.

로직: 게임 상에서 돌아가는 로직. 서비스와 달리 가공할 수 있음. 크리에이터가 직접 로직을 만들수도 있음.

ex) ui, utils 로직 등


모델

모듈화 된 객체

객체와는 다름. 스탬프의 원본이라고 생각하면 이해가 쉬움. 모양틀이라고 생각하면 쉬움.

미리 규격화된 형태를 만들어 둔 것으로 컴포넌트, property 등이 미리 초기화 되어 있는 형태.

모델을 가지고 와서 알맞게 가공하면 객체(entity)가 됨.

반대로 내가 만든 객체를 모델로 저장할수도 있음.

*makeChildModel → 내가 설정한 기능들이 기본적으로 제공되는 나만의 모델을 생성. 같은 객체를 여러 개 만들고 싶을 때 사용. 생산성을 높이고 싶을 때 사용하면 됨.

profile
BackEnd Developer

0개의 댓글