카테고리 없음

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

프로틴형님 2022. 7. 16. 11:03

멋쟁이사자처럼 10기로 활동 중 넥슨과 함께하는 MOD 서포터즈 해커톤에 참여하게 되었다. 게임 개발은 생소하고 접해보기 다소 힘들었는데, 이번 기회를 통해 게임 개발에관한 기초적인 지식 및 경험들을 얻고 싶다. 이를 기반으로 내 적성에 맞는지 판단해보고, 다른 분야들과 비교해보며 게임 개발 분야에 대한 나만의 시각을 갖는 것이 목표이다.

MOD란?


  • 넥슨에서 제공하는 메타버스 기반 게임 제작 프로그램
  • 누구나 자유롭게 컨텐츠를 제작하는 플랫폼을 목표로 하는 신규 프로젝트이다.
  • 메이플스토리를 포함한 그 외 IP 사용을 통해 어떤 클라이언트든 상관 없이 변형 게임을 제작할 수 있는 UCC 소프트웨어이다.

제작한 월드 관리

MOD 클라이언트에서 월드 목록으로 이동한 후, 월드 불러오기 / 출시 취소하기 / 월드 삭제하기를 실행할 수 있다.


Workspace

  • BaseEnvironment : 메이커에서 제공하는 모델과 스크립트 등이 저장됨
    | NativeScript, NativeDataSet, NativeModel 총 세 개의 폴더로 분류
    | 셋 모두 복제하거나 확장해서 활용 가능
  • MyDesk : 크리에이터가 만든 리소스를 보관함
    | 직접 추가한 음악, 스크립트, 이미지 파일 등이 추가됨
    | MyDesk에 추가한 리소스를 월드에 배치하면, SceneMaker에 Entity(객체)가 만들어짐
  • DefaultPlayer : 작업의 편의를 위해 제공됨

Scene Maker

Scene Maker는 제작 중인 게임 현황을 계층 구조로 볼 수 있는 패널이다.
복잡하게 구성한 맵에서 체계적으로 Entity를 관리하기 위해 사용한다.

  • World : 실제로 제작에 사용한 Entity들이 모여있으며 가장 상위 계층이다.
  • common : 게임 전체에 적용되는 룰을 만들 수 있다.
  • maps : 맵에 배치한 Entity들은 맵 Entey 하위에 위치한다.
  • ui : UI 편집기에서 추가하는 Entity들이 하위에 위치한다.

계층구조(부모-자식 구조)이기에 부모 Entity 아래에 있는 자식 Entity들은 부모 TransformComponent 값에 따라 영향을 받는다.
부모 -> 자식으로 영향을 끼치는 단방향 구조이기 때문에, 자식을 선택하면 자식의 상태만 변경할 수 있다.


기본 개념의 이해


Entity


빨간색으로 칠한 부분이 Entity다. 뿐만 아니라 보이지는 않지만 돌아가고 있는 모든 것들이 Entity이다.


Component

Component는 Entity의 각각의 기능을 담당하며, 때로는 다른 Component와 결합하여 다른 효과가 날 수도 있다.
MOD에서는 Property 에디터에서 Component를 관리한다.


Property

Property는 Component의 세부사항을 설정한다. 즉, Entity를 조작했을 때 컴포넌트가 어떻게 작동할 것인가를 결정한다. 컴포넌트 별로 가지고 있는 Property는 다르다. 따라서 Entity가 같은 컴포넌트를 사용하는 경우에도 Property 값을 다르게 설정하면 다르게 동작한다.


Service & Logic

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

  • 서비스 : MOD에서 유저가 제어하기 힘든 코어한 부분을 제공하는 로직. 크리에이터가 편집 불가능.
    | user, log, data, camera
  • 로직 : 게임 상에서 돌아가는 로직, 서비스와 달리 가공 가능. 크리에이터가 직접 로직을 만들 수도 있음.
    | ui, utils, logic
  •  

Model

모듈화 된 객체. 기존 Entity와는 다르게, 이미 규격화된 Entity라고 볼 수 있다. 기존 Entity에 컴포넌트, 프로퍼티 등이 미리 초기화 되어 있는 형태이다. Model을 가져와서 알맞게 가공하면 객체가 된다. 크리에이터가 만든 객체를 모델로 저장할 수 있다.