Project/unity

Rubik Dungeon

fullfish 2025. 12. 12. 13:23

 

게임 플레이 링크

 

RubiksDungeon by full-fish

 

full-fish.itch.io

 

플레이 영상

 

git 링크

https://github.com/full-fish/RubicksDungeon

 

GitHub - full-fish/RubicksDungeon

Contribute to full-fish/RubicksDungeon development by creating an account on GitHub.

github.com

 

 

게임 개요

루빅 던전은 루빅스 큐브의 회전 메커니즘을 던전 탐험에 결합한 퍼즐 어드벤처 게임입니다.

플레이어는 단순히 캐릭터를 이동시키는 것을 넘어 던전의 가로줄과 세로줄 전체를 회전시켜 지형 자체를 재구성하며 목적지에 도달해야 합니다.

핵심 게임 메커니즘 플레이어는 화살표로 캐릭터를 움직이거나 WASD 키를 사용하여 자신이 위치한 가로줄이나 세로줄을 통째로 밀어낼 수 있습니다.

모바일 환경에서는 화면 오른쪽 부분을 스와이핑시 캐릭터가 움직이며, 화면 왼쪽 부분을 스와이핑시 맵이 움직입니다.

이 시스템을 통해 지형 배치를 실시간으로 바꾸어 막힌 길을 뚫거나 위험한 함정을 멀리 보내는 등 전략적인 판단이 가능합니다.

또한 소코반 스타일의 상자 밀기 시스템을 포함하여 상자를 직접 밀거나 맵 회전 시 발생하는 충돌 로직을 이용해 퍼즐을 해결할 수 있도록 설계했습니다.

 

데이터 중심 설계와 확장성

이 프로젝트의 가장 큰 특징은 프리팹을 고정하여 배치하는 방식이 아니라 타일 아이디 기반으로 동작한다는 점입니다. 모든 지형 정보는 정수형 아이디로 관리되며 이를 통해 다음과 같은 기술적 이점을 확보했습니다.

 

객체화 모델링

오브젝트 아이디 하나에 이동 가능(isShift), 밀기 가능(isPush), 사운드등 여러 속성을 독립적으로 부여할 수 있습니다. 덕분에 새로운 기믹을 추가할 때 코드를 수정하는 대신 아이디에 속성을 체크하는 것만으로 확장이 용이합니다.

오브젝트별 속성

 

스크립트 기능별 분리

스크립트 분리

 

======================================
  [타일 ID 규칙: Rubik's Dungeon]
======================================
ID 형식: CCCSSU (세 자리)
  - C (100의 자리): 카테고리 (대분류)
  - S (10의 자리): 속성 (테마/특징)
  - U (1의 자리): 유닛 (개별 변형/확장성)

[I. 대분류 (Category)]
0xx : 시스템/캐릭터 (특수)
1xx : 바닥 (Floor)
2xx : 벽 (Wall/Stop)
3xx : 상자 (Object/Push)
4xx : 함정 (Trap/Dead)

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

[II. 속성 (Theme/Property)]
x0x : 기본 (Normal) - 예: 100(기본 땅), 200(돌벽)
x1x : not_shift
x2x : 얼음 (Ice) - 미끄러짐
x3x : 불/용암 (Fire) - 데미지/녹음
x4x : 나무/자연 (Nature) - 불에 탐
x5x : 금속 (Metal) - 무거움

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

[III. 주요 ID 목록]
0   : 플레이어 시작 위치 (맵 로딩 후 100으로 변경)
1   : 골인 지점 (Chest/Goal)

100 : 기본 바닥 (흙/돌)
110 : 얼음 바닥 (미끄러짐)
200 : 기본 벽 (막힘)
300 : 기본 상자 (밀기 가능)
400 : 기본 함정 (가시)

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

 

지능형 렌더링 시스템

비주얼 측면에서는 효율적인 리소스 관리를 위해 FBX 모델 파일은 하나만 유지하면서 코드에서 매터리얼을 실시간으로 교체하는 방식을 채택했습니다.

  • 가중치 기반 랜덤 외형: 동일한 아이디의 타일이라도 설정된 확률에 따라 깨진 바닥이나 이끼 낀 바닥 등 다채로운 모습으로 나타나게 했습니다.
  • 자동 레이어 생성: 상자나 트랩 같은 오브젝트 아래에 자동으로 바닥 타일을 깔아주는 기능을 추가하여 시각적 완성도를 높였습니다.

결론 및 향후 계획

루빅 던전은 탄탄한 데이터 설계를 바탕으로 무궁무진한 확장성을 갖추고 있습니다. 앞으로 미끄러지는 빙판길이나 속성 바닥 등 복잡한 퍼즐 기믹을 지속적으로 추가하여 지형 자체가 살아 움직이는 독특한 게임성을 완성해 나갈 예정입니다