2021 프로젝트, 리팩토링 ~2022 상반기
🕯 LightAway
2021 APPS Unity Project Team: ✨🥔 Lighting Potato
👾 Game Keywords
Roglite, Roglike, Top-Down, 2D pixel, Dreamy, Dungeon, Search & Collect
🕯 게임 소개
소녀가 촛불을 끄며 말하길
“나가서 더 많은 곳을 탐험하고 싶어-"
소원을 이루어주는 악마, 플루토의 꾐에 넘어가 소원을 빌게 된 주인공
하지만 플루토는 소원을 일그러진 방향으로 이루어주는데…
정신을 차려보니 이 곳은 꿈의 세계.
수 많은 시간대의 어린 아이들의 소원으로 이루어진 환상의 꿈.
과연 주인공은 위험이 도사리고 있는 꿈 속으로부터 무사히 빠져나올 수 있을까.
🎲 게임 조작법
<플레이어 이동>
W - 위쪽 이동
A - 왼쪽 이동
S - 아래쪽 이동
D - 오른쪽 이동
<플레이어 공격>
G - 공격
<아이템 관련>
- 1️⃣ 2️⃣ - 활성화할 인벤토리의 번호 지정
- Q - 아이템 줍기
- E - 현재 활성화된 인벤토리의 아이템 사용 및 드랍
(아이템의 사용처가 올바르지 않으면 자동적으로 드랍됩니다.)
- SpaceBar- 불 붙이기 및 탈출
<화면 조정 관련>
- 첫번째 화면에서 F키: 전체 화면, ESC키: 전체 화면 해제
- 마우스 조작으로 화면 크기 변경 가능
🕹 게임의 흐름
1. 게임 시작 시, 게임 제목의 랜턴을 주인공의 앞으로 드래그 앤 드랍하면 게임이 시작됩니다.
2. 게임이 시작되는 순간 부터 탈출 시간이 기록됩니다. 최대한 빠르게 게임을 클리어해보세요!
3. 붉은색 융단으로 덮인 제단의 푯말에 있는 아이템을 얻은 뒤 제단에 바쳐주세요.
4. 제단에 불을 밝히세요.
5. 모든 제단에 불을 밝히면 탈출구가 열립니다!
🎳 개발 팀 소개
Team: ✨🥔 Lighting Potato
2021.04 -
🗺 프로젝트 계기
초기에는 스토리 없는 가벼운 로그라이트 기반의 게임 제작이 목표였습니다.
하지만 많은 회의를 거쳐 점차 스토리를 기반으로 하는 형태로 발전하여, 지금의 Light Away가 탄생하게 되었습니다.
현재는 완성된 버전이 아닌, Demo 버전입니다. 정식 버전은 추후 제작될 예정입니다. 많은 기대 부탁드립니다.
💡 Credit
Small Forest by rowdy41
Monster Pack 1 by Troikapp.com
Pixel Mob by Henry Software
Magical Animation Effects by pimen
Pixel Art Effect - FX059 by NYKNCK
Cavorting by Missy Meyer
🔧사용 스택
✔내가 개발한 부분
시작화면 디자인
플레이어블 캐릭터 및 주요 Enemy 칩셋 제작
애니메이터 트리 조작 및 부착
레벨 디자인 요소 배치 및 프리팹 생성
레벨 구성요소 랜덤 배치 시스템(Prefabs, Instantiate, json 사용)
플레이어블 캐릭터 이동 스크립트 작성
주요 Enemy (Wanderer_FireTruck) 이동 AI 및 클리어 조건 스크립트 작성
랜덤 배치 후 GameManager에서 인스턴스 관리 위한 참조 연결
빌드 후 디버깅
❓Demo 버전의 한계
변수를 정리하지 않고 개발하여 참조 상황 파악이 힘듦
클래스를 이용하지 않고 각 Enemy마다 개별 스크립트 작성으로 메소드 중복 발생
유니티 특성 상 Instantiate 순서가 랜덤이기 때문에 참조하는 스크립트가 부착된 오브젝트가 아직 생성되지 않은 오브젝트를 참조하게 되면 null reference가 발생하는 부분을 생각하지 못하고 개발하여 디버깅 중 난항을 겪음
플레이어 캐릭터의 이동이 게임의 특성과 맞지 않게 x,y 축 동시 이동 가능 및 칸 단위로 이동하지 않고 연속적으로 이동.
💧현재 진행 상황
22년 전반기 까지 리팩토링 후 팀원들간의 개인사정 문제로 개발 잠정 보류중
❕리팩토링으로 해결한 부분
파일 및 계층구조, 변수 및 오브젝트 등 이름 컨벤션을 정함
Instantiate 되는 순서에 따라 참조하는데 영향이 가지 않도록 참조 방법을 수정
랜덤 배치 방법의 효율 개선
클래스 이용을 도입하여 메소드의 중복을 최소화
중복되는 스크립트 삭제 및 병합