0.11 업그레이드 가이드
이 가이드를 참고하여 기존 경험(Experiences)을 업데이트하고 0.11 버전의 새로운 기능을 최적화하여 사용하세요.
Last updated
이 가이드를 참고하여 기존 경험(Experiences)을 업데이트하고 0.11 버전의 새로운 기능을 최적화하여 사용하세요.
Last updated
게임 메이커 0.11에서는 충돌(Collision) 시스템이 업데이트되었으며, 멀티플레이어 호환이 가능한 목표 시스템(Objectives System)이 도입되었습니다.
모든 변경 사항은 게임 메이커 0.11 버전 노트에서 확인 가능
이 설정은 카메라, 조작, 애니메이션을 포함하여 전반적인 게임 느낌에 영향을 미칩니다.
새로운 경험들은 더 나은 플랫폼을 위해 코요테 타임(Coyote Time) & 엣지 리커버리(Edge Recovery)가 포함된 기본 팔레트를 사용하지만, 개체/블록 위치가 달라져야 합니다.
0.11 이전 경험들은 레거시 (Legacy) 팔레트에서 선택적으로 업데이트 할 수 있습니다.
플레이어가 특정 구역에 접근하지 못하도록 방지
세심하게 설계된 점프 높이/거리 및/또는 난이도 단계를 활용한 플랫폼 작업
일부 애셋 디자인
맞춤형 아바타 사용
맞춤형 아바타(Custom Avatars) 및 움직임 팔레트(Movement Palettes)
이전 애셋은 새로운 0.11 기본 움직임 팔레트(Default Movement Palette) 사용 시 엣지 복구(Edge Recovery) 애니메이션이 포함되지 않을 수 있습니다. 맞춤형 아바타(Custom Avatars)의 모든 필요한 애니메이션을 신중하게 플레이 테스트하세요.
새로운 기본 팔레트에서는 액세스 배리어(Access barriers)의 높이가 2블록이 아닌 3블록이어야 합니다.
오브젝트 모서리를 정렬하고, 더 단순한 콜라이더(colliders)를 가진 오브젝트에 Climbable을 적용하면 최상의 결과를 얻을 수 있습니다.
정렬
가장자리를 정렬하여 등반 가능한 오브젝트에서 표면으로 부드럽게 전환할 수 있습니다.
복잡한 충돌 (Complex Collisions)
면이 많은 오브젝트에서는 충돌을 제거하세요. 그리고 동일한 위치에 단순한 충돌을 가진 보이지 않는 애셋을 둔 뒤, 그 애셋에 Climbable 컴포넌트를 적용하여 부드럽게 오를 수 있도록 합니다.
오브젝트에 [SP] Speaker를 적용하면 충돌이 제거됩니다. 이로 인해 로직을 수정해야 할 수 있습니다.
액터를 회전시키는 Look at Target 옵션으로 인해, 멀티플레이어 경험에서 [SP] 스피커 컴포넌트가 서버와 클라이언트 간 물리 동작 불일치를 일으킬 수 있습니다. 이를 해결하기 위한 두 가지 업데이트 옵션이 있습니다:
[SP] 스피커 컴포넌트를 [MP]로 변경하고, 동일한 로직 결과가 나오도록 필요한 조정을 합니다.
오브젝트에 [SP] 스피커 컴포넌트를 그대로 유지하세요. 그 후 충돌이 있는 복제본을 만들어 모든 로직을 제거하고, 그 복제본을 보이지 않도록 설정하세요.
0.11 목표 시스템
기존 경험을 마이그레이션 하는 것은 선택 사항입니다.
소량의 UI 변경으로 중복 요소가 제거되고 기능성이 개선되었습니다.
0.11 이전 퀘스트 설정(탭 이름)에 따라 각 퀘스트 상태에 대해 아래의 단계별 지침을 따르세요.
퀘스트 해제
퀘스트 유형
퀘스트 완료
완료 후 액션
퀘스트는 이제 서버에서 관리되므로, 멀티플레이어 경험에서는 [MP] 로직과만 통신합니다. 싱글플레이어 경험에서는 [SP]와 [MP] 로직 모두가 퀘스트를 트리거합니다.
0.11 목표 시스템에는 새롭고 다양한 창의적 가능성이 있습니다. 그러나 멀티플레이어 게임의 경우, 이번 첫 버전은 주로 기존 기능(소셜 허브에서 단독으로 진행되는 퀘스트)을 마이그레이션하는 데 집중하고 있습니다.
향후 업데이트를 통해 다른 퀘스트 시나리오 제작이 더 쉬워질 예정이지만, 커뮤니티 여러분이 추가 로직을 활용하여 0.11에서 다른 잠재적 퀘스트 시나리오를 시도하고 싶어 할 것이라 예상합니다.
특정 플레이어(들)가 경험해야 하는 퀘스트에 따라 퀘스트를 트리거하는 것도 가능합니다. 다만 플레이어, 팀, 글로벌 등의 변수 의존성이 내장된 게임 룰 시스템처럼 간단하지는 않기에, 시도해 볼 수 있는 몇 가지 옵션을 준비했습니다. 이 중에는 간단한 방법도 있고, 조금 더 고급적인 방법도 있습니다.
아래 제안된 방법 사용하기 아래에 제시된 일반적인 방법에서는 1단계가 2단계를 트리거하고, 그다음 단계도 같은 방식으로 진행되어 플레이어 소스 데이터를 전송하고 의도된 플레이어에게 목표를 트리거합니다. 꼼꼼히 테스트하고 알게 된 내용을 커뮤니티와 공유해 주세요.
아래 예시들은 내장 기능을 사용하지 않습니다. 로직 흐름에 단절이 있어 퀘스트가 정확히 제때 트리거되지 않을 수 있으므로, 충분히 테스트하여 안정적으로 동작하는지 확인하세요. 멀티플레이어 퀘스트 디자인을 더욱 간편하게 만들기 위한 추가 개선도 진행 중입니다.
싱글플레이어 - [SP] 동작 및 컴포넌트(Behaviours and components)가 목표(Objectives)를 트리거 합니다.
멀티플레이어 - 상호작용이 가능한 [MP] 동작 및 컴포넌트에서 발생한 트리거를 사용하여 플레이어 소스 데이터를 전송해야 합니다:
[MP] 객체 --> 목표(Objectives)
[MP] 객체 --> 기타 로직 ( 룰 Rules 포함) --> 목표(Objectives)
룰(Rules) -> [MP] 객체 스폰 / [MP] 객체로 텔레포트 -> 목표(Objectives)
[MP] 트리거 (옵션):
수집가능(Collectable
) (Global = TRUE)
트리거 볼륨(Trigger Volume
) (한번 사용 후 객체 파괴)
버튼(Button
) (한번 사용 후 객체 파괴 또는 처음이 아니었음을 플레이어들에게 알리는 스피커(Speaker
) 스폰)
(Asker
) (Only once = TRUE로 설정 또는 한번 사용 후 비활성화 Toggle
적용)
[MP] 메세지 방송(Message Broadcaster) (Broadcast only once = TRUE 또는 한번 사용 후 비활성화를 위해 Toggle 적용)
목표 (Objectives
)
[MP] 트리거 (옵션):
수집가능(Collectable
) (Global = FALSE)
트리거 볼륨 (Trigger Volume
)
버튼(Button
)
애스커(Asker
)
목표 (Objectives)
[MP] trigger (options):
수집가능(Collectable
) (Global = TRUE)
트리거 볼륨(Trigger Volume
) (한번 사용 후 객체 파괴)
버튼(Button
) (한번 사용 후 객체 파괴 또는 플레이어들에게 알리는 스피커 스폰)
애스커(Asker
) (Only once = TRUE로 설정 또는 한번 사용 후 비활성화 Toggle 적용)
룰(Rules
) (플레이어 변수가 메시지 전송 기준으로 사용됩니다.)
[MP] 메세지 방송(Message Broadcaster
) (한 번만 브로드캐스트 = TRUE 또는 한번 사용 후 비활성화를 위해 Toggle 적용)
목표(Objectives)
[MP] trigger (options):
수집가능(Collectable
)
트리거 볼륨(Trigger Volume
)
버튼(Button
)
애스커(Asker
)
Asker
룰(Rules
) (플레이어 변수가 메시지 전송 기준으로 사용됩니다.)
목표(Objectives)
[MP] 트리거 볼륨(Trigger Volume)
(Detection = EveryAvatarInRange)
룰(Rules)
(global variable as a criteria to send a message)
애셋 스포너(Asset Spawner)
[MP] Trigger Volume
(Detection = EveryAvatarInRange) 스폰
목표(Objectives)
멀티플레이어 경험 제작이 처음이라면, 군중 이벤트 (Crowd Event) 동작으로 협동 목표를 추가해 보세요. 퀘스트보다 설정이 간단하고, 자체 UI도 갖추고 있습니다!
각 팀별로, [MP] 트리거 볼륨(Trigger Volume
) (Detection = TeamInRange, 팀 이름 설정)
룰(Rules)
(팀 변수가 메시지 전송 기준으로 사용됩니다.)
각 팀별로, 메세지 보내기(Send Message
) 룰 (Broadcast = Team, 팀 이름 설정)을 사용하여 해당 기준을 충족한 팀이 메시지를 트리거하도록 설정합니다.
각 팀별로, [MP] 애셋 스포너 (Asset Spawner
)를 사용하여 [MP] 트리거 볼륨(Detection = TeamInRange)을 스폰합니다.
목표
레거시 (0.11 이전)
5 블록
7 블록
1.5 블록
신규기본 (0.11+)
7 블록
10 블록
2.5 블록
레거시 (0.11 이전)
160 복셀
224 복셀
48 복셀
신규기본 (0.11+)
224 복셀
320 복셀
80 복셀
각 플레이어는 태그된 오브젝트를 수집할 수 있습니다.
수집 가능한 오브젝트별 설정: 글로벌(Global) = 거짓(False)
플레이어 수(Player Count) × 오브젝트 수(Object Count)
한 명의 플레이어가 태그된 오브젝트를 수집할 수 있습니다.
수집 가능한 오브젝트별 설정: 글로벌(Global) = 참(True)
오브젝트 수(Object Count)
조합(Combination)
수집 가능한 오브젝트별로 필요에 따라 글로벌(Global) 값을 거짓(False) 또는 참(True)으로 설정하세요.
(플레이어 수 × 오브젝트 수) + 오브젝트 수
멀티플레이어 환경에서, 이 변경은 오브젝트의 통신 방식을 클라이언트에서 서버 동기화로 바꿉니다. 따라서 더 이상 [SP] 오브젝트와 통신하지 않습니다. 필요한 경우 다른 로직도 수정하세요.
오브젝트에 다른 [SP] 로직도 적용되어 있다면, [MP]로 전환할 수 없습니다. 수정이 너무 복잡하다면 다른 업데이트 옵션을 고려하세요.
정렬 안됨
정렬됨
계산해야 할 등반 표면이 너무 많습니다.
손쉬운 계산을 위해 등반 가능한 애셋 대체