Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Marble Ladder (Unity)

참여 인원과 당첨 인원을 설정하면
랜덤으로 생성된 사다리를 따라 구슬이 이동하고,
도착 결과에 따라 당첨자를 결정하는 캐주얼 시뮬레이션 게임입니다.


📌 프로젝트 개요

  • 장르: 캐주얼 시뮬레이션
  • 플랫폼: Mobile (Unity)
  • 엔진: Unity
  • 목적 : 단순한 게임 규칙을 기반으로 상태 관리, 실행 로직 분리, 재시작 구조 설계를 중심으로 한 포트폴리오 프로젝트

🎮 게임 흐름

Ready
└ 참여 인원 / 당첨 인원 설정

Running
├ 사다리 랜덤 생성
├ 구슬 스폰
├ 구슬 이동 시뮬레이션
└ 결과 계산

Result
├ 당첨자 표시
└ Retry → 내부 Reset 후 재시작

✔️ 씬 리로드 없이 상태 전환과 재시작을 처리하도록 설계


🏗️ 프로젝트 구조

핵심 구조 설계

  • 상태 관리와 실행 로직을 분리
  • 데이터 / 표현 / 연출 책임을 명확히 구분
영역 역할
GameFlowController Ready / Running / Result 상태 전환
MarbleSimulationRunner 게임 실행 흐름의 중심
LadderGenerator / Model 사다리 데이터 생성
LadderView 사다리 시각화
MarbleAnimator 구슬 이동 연출
MarbleMover 순수 시뮬레이션 계산

⭐ 핵심 설계 포인트

1️⃣ 상태 전환과 실행 로직 분리

  • UI 흐름과 게임 실행을 분리하여
    • 구조 이해도 향상
    • 재시작 / 확장 시 수정 범위 최소화

GameFlowController는 “언제 상태가 바뀌는지”만 책임지고,
MarbleSimulationRunner는 “게임이 어떻게 실행되는지”만 책임집니다.

2️⃣ 씬 리로드 없는 재시작 구조

  • Retry 시 씬을 다시 로드하지 않고, 애니메이션 / 뷰 / 오브젝트를 명시적으로 초기화한 뒤 재실행

Retry
→ Animator 중단
→ View / Object Clear
→ Simulation 재실행

✔️ 디버깅 용이성
✔️ 상태 꼬임 방지
✔️ 포트폴리오 설명 가능 구조

3️⃣ 데이터 / 표현 / 연출 분리

  • LadderModel : 사다리 구조 데이터
  • MarbleMover : 최종 도착 위치 계산
  • LadderView / MarbleAnimator : 시각적 표현 전담

시뮬레이션 로직을 UI와 분리하여 테스트와 유지보수가 쉬운 구조를 지향했습니다.


📂 대표 스크립트

  • GameFlowController
    • 게임 상태 관리
    • 버튼 입력에 따른 상태 전환
  • MarbleSimulationRunner
    • 사다리 생성
    • 구슬 스폰
    • 애니메이션 실행
    • 결과 계산 및 전달
    • ResetAndRun()을 통한 내부 재시작 처리
  • LadderGenerator / LadderModel
    • 랜덤 사다리 구조 생성
    • 데이터 중심 설계
  • MarbleAnimator
    • 구슬 이동 연출
    • 시뮬레이션 완료 이벤트 전달

🔧 확장 가능성

  • 사다리 규칙 변경
  • 다양한 당첨 조건 추가
  • 애니메이션 연출 교체
  • 모바일 환경 최적화

📝 마무리

이 프로젝트는 “단순히 동작하는 게임”이 아니라,
구조와 흐름을 설명할 수 있는 코드를 목표로 제작되었습니다.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages