시보드

[락락락] 4. 상속 구조와 몬스터

입력 2023-09-16 08:42:01

다음 내용이 궁금하다면?

불편하시다면 뒤로 가기를 눌러주세요

[락락락 개발일지]



4. 상속 구조와 몬스터



오늘 일지는 락락락의 오브젝트 설계 구조에 대한 내용이야.

전체적인 구조를 따라가는 걸 목적으로 글을 써서, 세부적인 함수 내용은 생략했으니, 대충 이런 구조구나 정도로만 보면 좋을 듯


16948212822651.png

게임메이커는 기본적으로 오브젝트간의 상호작용을 제어해서 게임을 만드는 구조고

오브젝트는 부모와 자식 오브젝트를 설정할 수 있어.



16948212837058.png

한번 작성해둔 공용 코드 돌려쓰는 일반적인 상속의 기능 외에도

다른 오브젝트와 충돌 이벤트에서, 대상을 부모 오브젝트로 설정하면, 해당 오브젝트의 자식과 충돌할 때도 이벤트가 발동하는 등

태그의 기능도 가지고 있다고 볼 수 있어




16948212849087.png

우리 게임의 경우 위 이미지와 같은 구조로 부모-자식을 선언해줬어



obj_physics_parent의 create 이벤트

16948212858955.png


obj_physics_parent의 step 이벤트

16948212864554.png

게임메이커는 [이벤트 발생 - 이벤트에 작성된 코드 실행] 방식으로 코드를 제어하는데

create 이벤트는 오브젝트 생성 시, step 이벤트는 매 프레임마다 실행되는 이벤트로

유니티의 Start, Update와 유사하다고 볼 수 있어


보통 create에서는 오브젝트 제어에 필요한 지역 변수 선언이나, 오브젝트 최초 설정 등의 코드를 넣고

step에는 오브젝트를 구동시키는 코드가 들어가지



16948212881795.png

한편, 변수는 오브젝트의 Variable Definitions 버튼을 눌러 선언할 수 있어.

create 이벤트에서 변수를 선언하면 되는데, Variable Definitions 기능은 왜 있는 거지 싶을 수 있지만



16948212894344.png

Variable Definitions에서 선언한 변수는, 룸에 배치된 인스턴스 개별적으로 수정해주는 게 매우 용이해

그래서 동일한 몹이나 물건이지만 혼자 hp, 최초 행동 함수, 기타 값 등이 다른 경우가 필요하다면, 해당 정보를 Variable Definitions로 관리하면 좋겠지.


문경새재에서는 튜토리얼 몹의 hp나, 일부 지역에서 원거리 몹의 순찰 코드 제거 등을 구현할 때 유용하게 사용했어.




16948212911431.png

정수, 실수, 문자열 등의 일반적인 변수 외에도, Type을 Asset으로 지정하면 미리 선언해둔 스프라이트, 오브젝트, 함수 등등을 변수에 지정해둘 수 있어

[이 경우엔 이미 만들어둔 것들을 지정한다는 측면에서, 포인터의 역할도 일부 수행한다고 볼 수 있을듯]


락락락에선 Variable Definitions를 통해 자식의 사용자 지정 함수를 선언했어. [create_sc, step_sc]

이를 통해, 자식 오브젝트들의 이벤트를 수정하지 않아도, 변수 값에 스크립트 정보를 집어넣으면 create, step 이벤트에서 원하는 코드를 실행시킬 수 있게 되어서 생산성을 올릴 수 있어.


일반적으로 자식 오브젝트에서 이벤트를 수정하게 되면, 새로 만들어 덮어쓰기로만 수정해야 하거든



16948212922447.png

이를 상속받은 플레이어 오브젝트는 create, step 이벤트를 수정할 필요 없이 선언해둔 create_sc, step_sc에 플레이어 제어용 함수를 넣어주면 깔끔하게 동작한다.



16948212928734.png

몹 부모용 obj_mob_parent의 경우, 부모의 정보를 받아와 사용자 지정 함수에 몹 제어용 코드를 넣고,

추가로 몹 개별 정보와 행동 함수를 받아온다.


mob_sc는 create 이벤트에서 발동할 함수로, 몹의 기본 정보를 선언하고

behave_sc는 step 이벤트에서 발동할 함수로, 몹의 행동 코드가 들어가


mob_sc와 behave_sc에 들어가는 함수만 변경하면, 새로운 몹을 매우 손쉽게 만들 수 있다.

영상에서 보면, 몹들이 공유하는 기능들이 눈에 보일거야.

1. 걸어서 순찰하는 인간형 몹과, 점프하면서 순찰하는 슬라임 몹
2. 사망 후 비활성화
3. 동일한 상성을 가진 가위, 바위, 보 몹
4. 개별적인 몹 스프라이트


1, 2번 등, 행동에 대한 부분들은 behave_sc를 통해 적용하고, 동일한 행동을 가진 몹들은 동일한 함수가 적용되어 있어.

3, 4번 등, 몹 정보에 대한 부분들은 mob_sc를 통해 적용해


------------------------------------------


게임메이커 스튜디오 2 입문을 고민하는 갤러들을 위해 좀 더 상세하게 써봤는데,

정작 우리 게임의 상속 구조의 큰 틀을 설명하는 내용이라, 입문자를 위한 글은 아니게 된 것 같다.


16948212946065.png



인디 게임 개발 갤러리


인기상품 확인하고 계속 읽어보세요!

5

원치 않을 경우 뒤로가기를 눌러주세요.

시보드 콘텐츠 더보기

해당 콘텐츠 제공사로 이동합니다.

많이 본 최근 기사

관심 많은 기사

실시간 검색어

2026-08-19 12:00 업데이트