1S3B Helling Farm

플랫폼
PC
WebGL
itch.io
장르
라이프스타일
생산성
2D
싱글플레이
픽셀 아트
시뮬레이션
수집
캐쥬얼
PC
탑다운
깃허브 주소 #1 🌱
발표자료
1S3B의 마감 10분전 최종발표.pdf
프로젝트 기간
2024/03/07 → 2024/04/26
10
1 more property
목차

게임 소개

프로젝트 시연 영상

프로젝트 개요

프로젝트 명 : 1S3B Helling Farm
장르 : 힐링 게임
플랫폼 : PC 기반 (2D 픽셀 게임)
게임 조작법
키보드
W, A, S, D : 상하좌우 움직임
ESC : 설정창 및 그만하기
Q : 퀵슬롯 장착
E : 인벤토리 창 활성화
M : 미니맵
X : NPC 상호작용
1 ~ 9 : 퀵슬롯 단축키
마우스
왼쪽 키 : (장비 미장착 시) 작물 수확 / (장비 장착 시) 도구 사용
오른쪽 키 : (장비 장착 시) 작물 수확
버튼
1번 : 설정창 팝업
2번 : 미니맵 팝업

기술적인 도전 과제

FSM
싱글톤
Excel2JSON으로 받아온 Database를 이용한 농사의 전반적인 과정
NPC 웨이포인트
동적 스크롤

클라이언트 구조

Scene 구조
FadeIn FadeOut
씬 이동, 맵 이동을 포함해서 게임의 전반적으로 FadeInOut이 많이 사용되는 편이여서 FadeInOut 기능을 코루틴으로 나눠서 만들었습니다.
이동, 잠자기, 씬이동 등의 기능들을 구현할 때 초기화, 이동, 세팅 등의 부분에서 뒤늦게 따라오는 시점문제가 있었습니다.
FadeInOut 코루틴을 감싸는 코루틴을 만들어서 어두워진 후에 모든 기능을 세팅한 후 화면이 밝아지게끔 해서 해결했습니다.
씬 로딩
AsyncOperation 클래스와 SceneManager의 LoadSceneAsync를 사용했습니다.
FadeIn이 된 후에 슬라이드 바를 세팅하고 위의 클래스와 연결했습니다.
슬라이드 바와 AsyncOperation에 SceneManager의 LoadSceneAsync을 연결해서 UI로 로딩씬 기능을 만들었습니다.
슬라이드 바의 value가 조금 늦게 따라오는 경향이 있어서 progress가 어느정도 진행됐을때 value를 전부 채워주는 퍼포먼스를 보여주고 있습니다.
맵 이동
URP를 사용한 Global조명을 사용하게 되면서 조명과 날씨효과로 인해 실내와 실외의 씬을 구분지었습니다.
카메라가 맵 밖으로 나가지 않는 기능을 만들기위해 Cinemachine을 사용했고 각 맵별로 카메라가 따로있어서 FadeInOut시에 각 맵별로 카메라를 켜고 꺼주는 방식으로 사용 중입니다.
실외는 기본적으로 오픈월드로 되어 있으며 맵간의 이동은 UI의 FadeInOut때 캐릭터의 위치를 바꿔주는 것으로 이동이 가능합니다.
매니저 구조
GameManager
GameManager는 싱글톤과 DontDestroyOnLoad를 이용하여 만들어져 있습니다.
처음에 각 매니저들이 생성될 때 GameManager를 가져오면서 자기자신을 알려주는 방식을 사용했으나 GameManager를 통해서 다른 매니저들을 참조할 때 시점의 문제가 생겼습니다.
그래서 Manager라는 상속 클래스를 만들고 GameManager의 Awake시점에서 Find로 찾아오게끔 하였고, Init을 이용하여 초기화 시점의 주도권을 가져왔습니다.
다른 매니저들은 Start 시점에서 참조를 받아오면 되게끔 만들어 초기화 시점의 문제가 큰 폭으로 줄어들었습니다.

사용자 개선 사항

유저 테스트 진행 예정(2024.04.26 ~)

사용된 기술 스택

게임 엔진
개발 환경
협업 도구 & 언어
데이터 관리

팀원 구성 및 연락

Search
이름
구분
깃 주소
이메일
부리더
https://github.com/Oh-Seung-Hee
mailto:oohsseung@naver.com
팀원
https://github.com/shahon922
mailto:jih092@naver.com
팀원
https://github.com/yomgoun
mailto:ygy718500@naver.com