【공모전】 : LEGO x Unity Micro Game

【프로젝트명】 : Blockfall

  • Waterfall(폭포)와 비슷한 어감

【게임】 : 하러가기

 

【목표】 : 최우수상

【결과】 : 진행중

 

【간단 설명】 : 연동되어 떨어지는 블록을 넘어 닭을 구출

【컨셉】

  • 고전 레고
  • 구출 스토리
  • 최대한 자극적, 폭력적, 경쟁적이지 않을 것
  • 난이도 하 ⇒ 난이도 중

【레퍼런스 게임】 : 없음

 

【현 상황:2020-11-16】 : 완료

youtu.be/IV6Fteb04gE

 

【리미트 설정】

  1. 레고 스크립트의 수정 없음
  2. 타 에셋 사용 없음

【구현 설계】

  1. 2차원 [2][2] 블록 맵 작성 : 완료
  2. [0][0]을 스타트 지점으로 [1][1]을 트로피 지점으로 작성 : 완료
  3. PlayerPrefs에 현재 스테이지를 저장, 트로피를 얻으면 승리 화면 : 완료
    1. 기존 튜토리얼 Scene을 수정해서 사용 : 완료
  4. 승리 화면에서 NextStage 버튼을 누르면 현재 스테이지 +1 상승 후 다시 Main 씬 로드 : 완료
  5. 현재 스테이지에 맞춰서 2차원 블록 맵이 확장 : 완료
  6. 밟으면 블록이 떨어져 제거
    1. 밟은 블록 확인 : 완료
    2. (테스트) 밟은 블록 색깔 변화 : 완료
    3. 새로이 색깔 변화 스크립트를 만들어서 블록에 붙임 : 완료
    4. 블록이 떨어져 제거 : 완료
  7. 2개의 블록 링크 및 링크된 블록 색깔 변화 : 완료
  8. :: [BUG] : 스테이지 재 로드 시 블록이 분해되어 작동 안함 : 해결 완료
    1. 블록 스크립트를 만들어서 Prefab에 저장? or Touch 블록을 사용해서 스크립트 실행이 되나 확인? : 실패
    2. Prefab에 LEGO Behaviour Block을 붙임 : 성공
      1. 해결 과정 : Behaviour Block이 붙어있는 것은 재 로드시 분해되지 않는 결과가 있었기에 그것을 활용
  9. 스타트 블록과 마지막 블록을 제외하고 모든 블록 링크 : 완료
  10. 링크 블록 같이 떨어져 제거 : 완료
  11. 최종 스코어 저장 : 완료
  12. 실패 시 PlayerPrefs 초기화 및 첫 스테이지부터 시작 : 완료
    1. :: [방향 수정] 하드코어 스테이지 작성, 하드코어 스테이지 이상일 시 다시 하드코어 스테이지 처음으로 초기화 : 완료
  13. 난이도 조절
    1. Enemy Low : 완료
    2. Enemy Mid : 완료
    3. Stage 7 이후 대각선 제거 : 완료
    4. Enemy High : 완료
      1. 닿으면 플레이어를 부수는 레고 캐릭터(하자드) : 완료
    5. BOSS, 거대 보스, 3개의 트로피도 모두 획득하라? : 완료
      1. :: [방향 수정] 보스만 존재 : 난이도 중하 : 완료
  14. 프로젝트 정리 및 코드 정리 : 완료
    1. In Game의 Touch the object를 Touch & Save the Chicken으로 변경 : 완료
    2. 한글화 : 완료
  15. <I want Elsa Lego!!!>가 들어간 Credit 만들기 : 스킵
  16. 승리 / 패배 씬 작성 : 완료
    1. :: [컨셉] 친구 닭들을 구하는 기사
  17. 레고를 사용한 심플 이펙트 설치 : 완료
  18. 4.11f로 다운그레이드 : 완료
  19. BGM  : 완료
  20. QA : 완료
  21. 빌드 및 제출 : 완료

 

【스크립트 구조】

Scripts.zip
0.03MB

 

 

Dictator(총괄)
: 사라지지 않음, 중복 불가
: 씬의 이동과 초기화를 관리

[Scene]_Ruler
: 씬의 지배자
: 기본적인 움직임과 시나리오, 각 치프들은 룰러가 지배함

[Scene]_GOCheif
: 씬의 UI를 제외한 것들의 움직임을 관리하는 팀장
: 다만 움직임을 설정만 해서 룰러에게 제공할 뿐, 실제로 움직이는 것은 룰러의 일

[Scene]_GOHolder
: 씬의 UI를 제외한 것들의 GameObject를 보관하고 있는 홀더

[Scene]_UIChief
: 씬의 UI의 움직임을 관리하는 팀장
: GOChief랑 거의 하는 일은 같음

[Scene]_UIHolder
: 씬의 UI GameObject를 보관하는 홀더

// [그 외 스크립트]
: 각 독립 오브젝트들의 움직임을 관리 : 룰러의 지배를 받지 않음 : 효용성과 구조에 대한 고찰 필요

【해당 프로젝트로 학습한 사항】

  • 스크립트 구조에 대한 설계
    • 움직이는 관리자(치프)와 갖고 있는 홀더를 나누고, 그 관리자를 지배하는 시나리오 메이커(룰러)와 모든 씬을 총괄하는 총괄(딕테이터)을 놓아 두는 구조
    • 장점 : 어디서 문제가 생기는 지, 코드를 다시 보았을 때 구조에 대한 이해가 빠름
    • 현재 개선점 : 독립적인 부분 등에 대한 관리가 필요
  • 작성한 스크립트가 아닌 타 스크립트와의 연계
블로그 이미지

RIsN

,