게임 개발 포트폴리오 | 토당토당 찰떡쿵
내일배움캠프 1기 Unity 게임 개발 과정 트랙 수료생 최종 프로젝트 '토당토당 찰떡쿵'을 소개합니다.
Feb 26, 2024
🍡달 나라 삼남매 중 누가 떡집의 후계자인가!
VIDEO
게임 맛보기
WebGL 버전
- WebGL 버전으로 최적화 되어있지 않아서 로딩 시간이 소요되는 점 참고해주시면 감사하겠습니다.
Window / MAC / Android 버전
게임 기능
🌙 게임 스토리와 소개 🐇
게임 스토리
달 나라에서 가장 유명한 떡 집을 운영하는 토끼 부부
삼남매 중 누구에게 가업을 물려줘야 할지 고민인데…
“지구에 내려가서 혼자 떡 집을 운영해봐라!
가장 좋은 성과를 낸 사람에게 떡 집을 물려주겠다!”
게임 소개
🐰막내 토끼가 되어 최고의 떡집을 운영해보세요!🐰
🍡 다양한 떡과 음료를 판매하세요! 🍡
🍵 재료를 구매하고 유통 기한을 관리하세요! 🍵
🫖 새로운 레시피와 주방 기구를 잠금 해제해보세요! 🫖
🌵 귀여운 장식품으로 가게를 꾸며보세요! 🌵
📰 뉴스를 통해 지구 별 소식을 들어보세요! 📰
💨 떡 장인이 되기 위한 길을 걸어보세요! 💨
⭐ 평점 5점을 달성해서 토사장 님의 가게를 물려받으세요! ⭐
🐇 막내 토끼 파이팅! 🐇
게임 미리 보기
게임 기능 소개
⭐ 평점과 달조각 🌙
🥕 게임의 목표는 토슐랭 평점 5점을 달성하여 부모님인 토사장 님의 가게를 물려받는 것입니다.
🥕 게임에서는 ‘달조각’을 재화로 사용합니다.
🥕 하루 영업을 종료하면 그 날의 영업 결과를 볼 수 있으며, 영업 결과에 따라서 평점이 달라집니다.
🥕 만약 평점이 0점으로 떨어지면 게임 오버가 되어 처음부터 다시 시작하게 됩니다.
🥕 인벤토리에 남은 재료가 없고, 달조각도 없다면 파산 이벤트로 연결 됩니다.
🥕 만약 재료는 있지만 보유한 달조각이 부족하다면, 도움 시스템을 사용할 수 있습니다.
🥕 도움 시스템
➕ 도움 시스템은 유저에게 남은 달조각이 부족하여 가게 영업을 정상적으로 진행할 수 없을 때, 이벤트를 통해 도움을 주어 지속적으로 게임을 즐길 수 있도록 하는 시스템입니다.
➕ 조건에 따라 일정 금액 또는 재료를 제공합니다.
➕ 재료를 제공하는 이벤트일 때는 평점이 1점 깎이게 됩니다.
➕ 일정 금액을 제공하는 조건일 때는 파산 이벤트로 연결됩니다.
🐰 튜토리얼 🐰
🥕 게임의 전반적인 흐름과 조작 방법 및 기능을 알려주기 위한 튜토리얼입니다.
🥕 첫 튜토리얼 이후에는 Skip 버튼이 활성화 되어, 튜토리얼을 건너뛸 수 있습니다.
🥕 조작 방법은 PC 버전과 모바일 버전이 다르기 때문에
각각 알맞는 방식을 튜토리얼로 제공합니다.
🥕 PC 버전 : 키보드 WASD로 캐릭터 이동
+ 마우스 좌클릭/우클릭으로 상호작용 및 들기/내려놓기
🥕 모바일 버전 : 가상 조이스틱으로 캐릭터 이동
+ 터치 버튼으로 상호작용 및 들기/내려놓기
🥕 평점 및 달조각에 대한 설명을 제공합니다.
🥕 레시피 및 주방 기구를 잠금 해제하고 업그레이드 하는 방법을 제공하며 재화 사용처에 대해서 알려줍니다.
🍡 매장 운영 🍡
🥕 화면 상단은 게임의 진행과 관련된 정보를 표시합니다.
+ 획득한 달조각, 남은 손님 수 등을 확인할 수 있습니다.
+ 중앙에는 시간의 경과가 표시되며, 주어진 시간이 다 되어가면 색상 변화와 효과음으로 경고합니다.
🥕 영업 조기 종료 버튼을 통해 하루의 영업을 일찍 마무리할 수 있습니다.
🥕 쿡북에서 보유한 레시피의 조리법을 확인할 수 있습니다.
🥕 일시정지 버튼을 눌러 홈으로 이동하거나, 게임 설정을 변경 할 수 있습니다.
+ 게임 설정에서는 배경음악과 효과음의 크기를 조절할 수 있고, 텍스쳐 및 프레임을 설정할 수 있습니다.
+ 데이터를 초기화하거나 게임을 종료하는 등의 중요한 기능은 팝업을 통해 한 번 더 확인합니다.
🥕 각 주방 기구에 알맞은 재료를 넣고 상호 작용하여 요리를 만들 수 있습니다.
+ 돌아가는 레일 위 찜기 또는 냄비에 재료를 넣어 익힐 수 있습니다.
+ 조리대나 절구에서는 상호작용 버튼을 여러 번 눌러서 조리 할 수 있습니다.
🥕 음식을 오랫동안 익히거나, 잘못된 절차로 조리할 경우 쓰레기로 변합니다.
+ 쓰레기는 쓰레기통에 버려서 처리합니다.
🥕 손님이 픽업 테이블에 도착한 후 인내심 게이지가 올라가기 시작합니다.
+ 게이지가 다 찰 때까지 음식을 받지 못한 손님은 불만족하여 퇴장합니다.
🥕 손님은 음식을 받는 속도에 따라 다른 만족도를 표시합니다.
+ 손님은 만족도에 따라 다른 금액의 팁을 지불하며, 만족도는 Perfect, Good, Soso로 나누어집니다.
🥕 재료가 부족하여 음식을 서비스할 수 없는 경우, <거절하기> 버튼을 통해 손님의 주문을 거절할 수 있습니다.
+ 주문을 거절할 경우 손님은 불만족하여 퇴장합니다.
🥕 손님은 한 가지 또는 두 가지의 음식을 주문할 수 있으며,
두 가지의 음식을 주문할 때는 떡과 차를 한 종류씩 주문합니다.
+ 두 가지 음식 중 하나를 먼저 제공하면 손님의 인내심 게이지가 일정량 줄어듦으로써 더 오래 대기할 수 있게 됩니다.
🍵 재료 구매 🍵
🥕 영업을 종료하고 하루에 한 번 재료를 구매할 수 있습니다.
🥕 탭을 선택하여 전체 재료/떡 재료/차 재료로 나누어 확인할 수 있습니다.
🥕 재료의 가격 순으로 오름/내림차순 정렬이 가능합니다.
🥕 +, - 버튼을 눌러 재료를 장바구니에 담거나 뺄 수 있습니다.
🥕 전체 재료의 금액이 보유한 달조각을 초과하면 주문할 수 없습니다.
🥕 주문하지 않고 재료 주문 창을 닫으려고 하면 팝업으로 경고를 해줍니다.
🥕 인벤토리에서 재료의 수량과 유통기한을 확인할 수 있습니다.
🥕 보유한 재료를 판매하여 재고를 관리할 수 있습니다.
🥕 재료의 유통기한이 지나면 하루 영업이 종료되었을 때 자동으로 폐기되며,
이때 재료 폐기 비용이 발생합니다.
🫖 레시피와 주방 기구 관리 🫖
🥕 인벤토리에서 재료 뿐만 아니라 레시피 및 주방 기구를 관리할 수 있습니다.
🥕 레시피 또는 주방 기구의 기본 정보와 업그레이드 비용 및 정보를 확인할 수 있습니다.
🥕 달조각이나 평점이 기준보다 부족하면 레시피를 잠금 해제/업그레이드 할 수 없습니다.
📰 뉴스 📰
🥕 유저는 뉴스를 통해 지구별의 새로운 소식들을 접할 수 있습니다.
🥕 뉴스의 내용에 따라 다양한 이벤트가 발생합니다.
+ 재료의 시장 가격이 변동되거나, 평소보다 손님의 수가 증가하는 등의 효과가 있습니다.
🥕 뉴스로 인한 효과는 다음 날부터 적용됩니다.
🥕 유저가 달성한 성과에 따라 여러 보상을 제공합니다.
🥕 새로운 주방 기구와 새로운 레시피를 함께 제공하여, 게임의 재미를 다채롭게 만듭니다.
🌵 장식품 상점 🌵
🥕 장식품 상점에서 매장 장식품을 구매할 수 있습니다.
🥕 각 장식품에는 특정 효과가 있으며, 해당 효과는 영구적으로 지속됩니다.
🥕 장식품 상점에서 산 매장 장식품들을 구입하면 홈 화면과 게임 화면에서
실제로 배치된 것을 확인할 수 있습니다.
장식품 종류
[ 테이블 ]
손님이 지불하는 팁 금액이 증가합니다.
[ 화분 ]
손님이 지불하는 팁 금액이 증가합니다.
[ TV ]
손님의 대기 시간이 증가합니다.
[ 바탁 타일 ]
손님의 대기 시간이 증가합니다.
💨 연습 모드 💨
🥕 하루 영업을 준비하기 위해 연습하기 모드를 제공합니다.
🥕 연습하기 모드에서는 재료를 제한 없이 사용할 수 있습니다.
🥕 제한 시간과 손님이 존재하지 않아서 원하는 때에 언제든지 종료할 수 있습니다.
🥕 연습하기 모드는 현재 유저의 보유 주방 기구, 레시피에 따라 세팅됩니다.
🥕 나가기, 레시피 버튼이 존재하여 레시피를 지속해서 참고가 가능하며, 필요할 때 바로 갈 수 있는 버튼 또한 존재합니다.
🥕 주방 기구에 가까이 다가가면 활성화 되는 물음표 버튼을 눌러,
각 주방 기구를 사용하는 방법을 확인할 수 있습니다.
🌨️ MAIN STRUCTURE 클라이언트 구조
Manager
플레이어
인벤토리
재료 주문
손님
뉴스
🌈 CODE 코드
담당자 | 기능 | GitHub |
김정민 | UIManager를 통한 UI 관리 | |
김정민 | Object Pooling | |
김정민 | MVC 구조를 활용한 Inventory | |
박희원 | Camera 해상도 대응 | |
박희원 | MVC 구조를 활용한 Market(재료주문) | |
박희원 | 확장성을 고려한 DecoStoreMapSetter | |
노동균 | 다양한 데이터를 저장하는 DataManager | |
노동균 | EditorScript와 ScriptableObject를 이용한 커스터마이징 손님 | |
노동균 | [IMGUI] 빠른 개발을 위한 Cheater 개발 | |
이현지 | New InputSystem을 이용한 PC UI 대응 | |
이현지 | 다양한 주방기구를 하나의 클래스, 인터페이스로 | |
이현지 | 상태머신을 활용한 플레이어의 행동과 상태제어 |
🫖 TROUBLE SHOOTING 기술적인 도전 과제
사용 기술
MVC 패턴 / 빌더 패턴 / 상태 머신
MVC 패턴
⚠️ 기술 도입 배경
- UI에서 데이터를 보여주기 전 데이터를 가공하는 연산이 필요
→ 해당 연산을 UI에서 처리하게 되면 UI가 너무 많은 역할을 맡게 되는 문제 발생
💡 기술 도입으로 얻은 이점
- UI를 보여주는 View와 UI에서 보여주기 위한 데이터를 가공하는 Controller를 분리함으로써 클래스의 역할이 나누어짐
💫 발전
- 초기에는 옵저버 패턴을 사용하여 View에서 필요로 하는 데이터를 직접 구독하고, 필요한 데이터는 Controller를 통해 받는 MVC 방식을 사용
→ 다른 Scene에서 데이터의 갱신이 발생하면서 참조할 수 없는 UI에 접근하는 문제 발생
- View의 데이터 갱신도 Controller를 통해서 하도록 MVP 패턴의 구조로 변경하여 문제를 해결
→ View와 데이터의 결합도 감소
상태머신
⚠️ 기술 도입 배경
- 플레이어와 손님의 경우 상태에 따라 행동이 달라, 이를 수월하게 통제할 요소가 필요
- 플레이어의 경우 손에 음식을 들고 있는 상태, 아닐 때의 상태에서의 행동이 다른데, 이를 하나의 메소드로 통제할 경우, 코드 가독성과 확장성이 매우 떨어질 우려
💡 기술 도입으로 얻은 이점
- 각 상태 별로 할 수 있는 행동을 제한하거나, 변경될 수 있는 상태를 지정함으로 써 상태에 따른 행동을 통제하기가 수월해짐.
- 또 새로운 행동이 추가되었다고 하더라도, 해당 행동에서 변화할 수 있는 상태나, 기능에 대해서만 신경쓰면 되었기 때문에 편리
빌더 패턴의 일부 차용 시도
⚠️ 기술 도입 배경
- 손님 초기화 과정에서 많은 매개변수 사용으로 코드 가독성 저하
- 빌더 패턴에서 사용되던 메서드 체이닝을 이용 관련 있는 매개변수 끼리 묶어 메서드 화
💡 기술 도입으로 얻은 이점
- 관련있는 메소드끼리의 사용으로 가독성 향상
💡 추가 개선
- 오브젝트 풀 사용 과정에서 Init의 메서드 체이닝 보다는 필요 할 때만 각각의 Init을 수행하게 하여, 불필요한 초기화 과정을 줄이고, 초기화 과정의 오버헤드를 줄임.
데이터 Cheater
추가 설명
- ⚠️ 기술 도입 배경
- 게임을 테스트 하는 과정에서 테스트가 필요한 위치까지 도달하는 데에 시간이 많이 소요
- ex) 뉴스 이벤트는 날짜 기준의 이벤트
- 테스트를 위해 10,20일까지 게임 플레이를 해야했음(소요시간 多)
- 🤔 기술 도입 과정
- Inspector를 활용하는 방안
- Hierachy에서 오브젝트를 선택하고, Inspector를 수정 해야하는 불편함 존재
- 더 편리한 방법을 고민하였음.
- 💡 기술 도입으로 얻은 이점
- IMGUI를 도입함으로 써 인게임 내에서 필요시 즉각적으로 데이터를 수정가능
- 필요한 날짜, 상태, 유저의 상태를 조정이 가능
- 빠른 테스트 수행
사용 예
Firebase Analytics
추가 설명
⚠️ 기술 도입 배경
- 기획적인 요소나 반영된 사항이 제대로 적용이 되고 있는 가를 데이터로 측정하여 현재 게임을 어떻게 보완해 갈 것 인가에 대한 정보를 수집하고 싶었음.
- 플레이 데이터를 이벤트로그 로서 수집이 가능해, 구글 폼, 유저의 피드백을 받는 것보다 통계적인 데이터를 수집하기가 용이했음.
🤔 기술 도입 과정
- Firebase Analytics가 도입이 쉽고 사용하는데 무리가 없다는 조언을 받아, 모듈을 설치하고 데이터를 적용함
- 이 과정에서 모듈의 크기가 150MB가 넘어가는 일이 발생을 하였고, GitHub 에서는 100MB 이상의 파일을 Push 하기 위해서는 LFS를 활용
💡 기술 도입으로 얻은 이점
- 통계자료를 통해 기획의 의도가 정확히 전달되는지 통계적으로 알기 쉬워졌음.
인벤토리 탭 UI의 구현
추가설명
⚠️ 문제
- 인벤토리 탭 UI의 구현 방식
🛠️ 시도
- 각 탭마다 3가지의 UI를 미리 만들어서 탭을 누를 때 sort order를 조절하여 해당하는 탭 UI가 나타나도록 구현
→ 매번 보이지 않는 UI까지 모두 생성해야 하는 문제
→ 해당 탭을 클릭하지 않는다면 불필요한 생성을 하게 되는 것이므로 효율성 저하
💡 선택
- 1개의 UI를 재사용 하는 방식
- 각 탭을 클릭하면 탭에 맞는 데이터들을 보여주도록 구현
- ScrollView의 슬롯 오브젝트들은 오브젝트 풀을 활용
→ 탭을 누를 때마다 ScrollView가 갱신되어야 하는데, 이때마다 슬롯 오브젝트들을 생성하고 파괴하는 것은 비효율적인 동작
→ 탭을 누르는 것은 자주 일어날 수 있는 동작이므로 매번 오브젝트를 생성/파괴하면 CPU 성능이 저하될 수 있음
→ 오브젝트 풀을 활용하여 미리 처음 인벤토리를 열었을 때 슬롯 오브젝트들을 생성한 뒤, 탭이 변경될 때마다 해당 탭의 데이터 개수만큼 슬롯 오브젝트들을 풀에서 가져와 사용
요리 과정을 검증하는 방식
추가 설명
⚠️ 문제
- 게임의 핵심인 음식을 만드는 조리 과정과 재료를 처리할 로직이 필요하였음.
- 로직을 어떻게 단순화하고, 음식을 추가하고, 삭제하는데 어려움이 없는가
🛠️ 시도
행위를 특정 인덱스로 고정시킴
재료 내에 각 행위 인덱스를 부여하고,
레시피의 int배열과 조리 과정의 int배열을 비교하는 방식
유저가 재료들을 string형태의 id로 보관
각 주방 기구는 재료들의 string에 따른 결과물을 보관
유저가 재료들 string을 주방 기구에 넣고, 상호작용 수행
재료들의 string을 주방 기구 내 재료들의 string을 비교하여 결과물을 반환
주방 기구 (내 재료 → 결과물) 을 보관
재료를 주방 기구에 넣고, 그 상호작용으로 나오는 중간 결과물을 반환,
중간 결과물을 다른 주방 기구에 넣어 또 다른 결과물을 반환을 반복하는 형식
💡 선택
- Cookstep(재료 리스트, 결과물)를 만들어 각 주방 기구에서 보유할 수 있게 함.
- 주방 기구는 유저가 놓기로 내려놓은 받은 재료들을 보관
- 유저가 상호작용을 통해 조리를 완료 시, 주방기구가 보유한 Cookstep리스트 검색해 재료 내용이 일치하는 Cookstep이 있을 때 해당 결과물을 반환할 수 잇게 변경
💡 얻은 이점
- (재료→ 결과물)을 가지는 Cookstep를 ScriptableObject로 관리되어, 주방기구에서 각각의 Cookstep을 추가/삭제가 편리함.
- 요리 과정 전체를 들고 있을 필요가 없어 메모리 절약
- 요리 과정 중간중간 다른 요리를 넣어 만들 수 있음.
💡 관련 코드
CookStep.cs (ScriptableObject)
[CreateAssetMenu] public class CookStepSO : ScriptableObject { [SerializeField] public List<IngredientInfoSO> Ingredients; [SerializeField] public GameObject result; public IngredientInfoSO ResultData { get { IngredientObject ingredientObj; IngredientInfoSO ingredientInfoSo; if (result.TryGetComponent<IngredientObject>(out ingredientObj)) { return ingredientObj.GetIngredientObjectSO(); } Debug.LogError("Null : IngredientObject"); return null; } } }
KitchenInteraction.cs (주방기구 클래스 내 비교부분)
protected virtual void CheckValidity() { List<IngredientInfoSO> ingredientStack = new List<IngredientInfoSO>(); foreach(var ingredient in ingredients) { if (ingredient == null) continue; ingredientStack.Add(GetIngredient(ingredient)); } foreach (var cookStep in availableRecipe) { if (AreListsEquivalent<IngredientInfoSO>(ingredientStack, cookStep.Ingredients)) { MakeResult(cookStep.result); return; } } MakeResult(); currentProgress = 0; }
UIManager를 통해 Popup들을 관리하는 방식
추가 설명
⚠️ 문제
- 팝업의 종류가 증가하면서 모든 팝업의 매개변수를 UIManager의 메서드에 전달하던 방식에 문제 발생
→ 확장성 및 가독성 저하
🛠️ 시도
- UIManager의 ShowPopup 메서드에는 각 팝업들의 공통된 속성만 전달 후 해당 팝업 컴포넌트를 반환 받는 방식
- 반환 받은 팝업 컴포넌트에 메서드 체이닝 기법으로 각 팝업에서 필요로 하는 파라미터를 Set하는 메서드 사용
- 컴포넌트 변수를 선언하여 해당 변수를 Null 체크 후 Set 메서드 사용
→ 반환 받은 컴포넌트가 Null일 경우 메서드 체이닝으로 인한 오류 발생 가능
→ 각 팝업들을 Show하는 동작과 파라미터를 Set하는 동작이 분리되어 불편
💡 선택
- 팝업들의 매개변수를 담는 PopupParameter 클래스 생성
- 각각 세분화 되는 팝업들은 PopupParameter 클래스를 상속 받아서 필요한 Parameter를 선언하여 전달
- 세분화 되는 팝업 내부에서 필요한 Parameter 클래스 타입으로 형 변환하여 사용
→ 파라미터를 Set하는 동시에 팝업의 Show 동작까지 UIManager를 통해 한 번에 처리 가능
마우스 좌클릭의 동작
추가 설명
⚠️ 문제
- 상호작용 키를 마우스 좌클릭으로 변경하면서 Input 입력과 버튼 클릭이 겹치게 됨
→ 재료상자나 찻주전자 앞에서 UI버튼을 누를 경우, 입력이 우선적으로 처리되어 전용 UI가 뜨기 때문에 버튼의 기능을 수행할 수 없는 상황이 됨
🛠️ 시도
마우스 커서를 숨기고, alt키를 눌렀을 때만 커서가 보이도록, 이 때는 상호작용 입력 경로로 사용되지 않도록 설정하는 방법 고민. 하지만 기획적인 측면에서 좋지 못하다고 판단
UI 버튼을 On-ScreenButton으로 변경하는 것을 고려했으나, 마우스 클릭보다 늦게 인식되는 것이 마찬가지였고, 인풋 액션의 우선순위를 설정하지 못한다는 문제가 여전히 존재
버튼 위에 마우스가 있을 때 인풋 자체를 막는 방법에 대해 생각했으나, 순간적으로 인풋을 막는 행위가 반복적으로 일어나는 것은 비효율적이고 이미 인풋을 활성/비활성화하는 부분이 있기 때문에 문제 발생 우려
💡 선택
- 마우스 좌클릭 이벤트에 연결 된 콜백 메서드에서 현재 마우스가 버튼 위에 있는지 확인한 후 메서드를 실행하도록 함 (EventSystem.current.RaycastAll)
해상도 대응
추가 설명
⚠️ 문제
- 해상도에 따라서 배치된 오브젝트들이 보이지 않거나 너무 많은 빈 공간과 함께 보이는 문제 발생
🛠️ 시도
- 레터박스를 이용하여 고정된 화면 비율을 나타내는 방식
→ main 카메라 외에도 UI만 그리는 별도의 카메라 사용
→ GPU가 두 번의 렌더링을 수행하여 메모리가 추가로 소비됨
- 가장 극단적인 해상도 비율을 계산하고 현재 해상도와 비교하여 비율의 차이만큼 카메라 size를 조절
→ 매직넘버 사용으로 더 극단적인 해상도 비율이 나온다면 대응할 수 없음
💡선택
- 기준이 되는 물체를 두고 ScreenPoint를 가져와서 해상도 안에 들어올 때까지 카메라 사이즈를 조절하여 보다 더 자연스럽게 조절이 가능하며, 극단적인 경우에도 유동적으로 대응
→ 화면 크기를 비율에 맞게 동적으로 조절하여 게임의 해상도 대응 문제 해결
🌕 ACHIEVEMENT 십이갅zl 팀은 이런 목표를 달성했어요!
프로젝트 초반 목표
- 안드로이드 빌드 후 플레이 스토어 앱 출시
현재 목표 달성 현황
- 안드로이드 빌드 후 플레이 스토어 앱 출시 등록 완료
- 안드로이드/Window/Mac 빌드하여 베타 테스트 진행 중
- itch.io에 WebGL 베타 테스트 진행 중
앞으로의 계획
- 플레이 스토어 검토 완료 후 정식 출시
- Steam 배포 검토
✨ QA 토당토당 찰떡쿵은 이렇게 개선 되었어요!
Date | Case | Issue | Improvement |
Nov 29, 2023 | 피드백 | 레시피 북의 가독성이 떨어진다 | 레시피 북에 눌러야 하는 버튼과 각 재료 및 중간 결과물의 이름을 텍스트로 표시하여 가독성 향상 |
Nov 29, 2023 | 피드백 | 좌클릭/우클릭 표시 UI가 직관적이지 않다 | 좌클릭/우클릭 가상 패드에 색상을 추가
레시피 북에서도 같은 색상을 사용하여 어떤 버튼을 눌러야 하는지 명확하게 보여주도록 수정 |
Dec 2, 2023 | 피드백 | 영업 조기 종료 버튼을 실수로 누를 수 있을 것 같다 | 팝업 창을 띄워서 한 번 더 확인 후 영업 종료 하도록 수정
취소를 누를 경우 계속 게임 진행 |
Dec 2, 2023 | 피드백 | 3일차에 녹차 및 찻주전자가 잠금 해제되는 이벤트 팝업창의 prev/next 화살표 버튼이 잘 보이지 않는다 | 버튼 이미지를 변경하여 잘 보이도록 수정 |
Dec 2, 2023 | 피드백 | 2일차부터 가래떡을 판매하면서 급격하게 난이도가 상승한다 | 튜토리얼에서 잠금 해제하는 레시피를 가래떡에서 시루떡으로 변경하여 난이도 조절
손님의 수를 영업 일수에 따라 증가하도록 수정
초기 손님의 수를 줄여서 밸런스 조절 |
Dec 2, 2023 | 피드백 | 다이얼로그의 타이핑 소리가 거슬린다 | 사운드 변경 |
Dec 2, 2023 | 피드백 | 모바일에서 뉴스 및 게임 설정의 X 버튼이 잘 보이지 않고, 잘 눌리지 않는다 | 버튼의 크기를 키우고 raycast padding 값을 늘려서 조절 |
Dec 2, 2023 | 피드백 | 손님이 음식을 받았을 때 빨리 반응하지 않아서 답답하다 | 음식을 받은 뒤 반응까지의 시간을 줄임 |
Dec 2, 2023 | 피드백 | 이미 상태가 BAD인 손님에게 음식을 줄 수 있어서 불편하다 | 손님의 상태가 BAD가 되면 음식을 받지 않도록 수정 |
Dec 2, 2023 | 피드백 | 영업이 종료될 때 갑자기 종료되어서 당황스럽다 | 영업이 종료되기 10초 전 시간을 표시하는 바가 붉은 계열로 깜빡거리고
영업이 종료되기 5초 전부터 경고음이 울리도록 수정
영업이 종료된 뒤에는 끝이 났다는 것을 UI 이미지로 표현 |
Dec 2, 2023 | 피드백 | 레시피 북을 볼 때 시간이 일시 정지 된다는 사실을 알기 어렵다 | 레시피 북의 Tip 대신 시간을 정지했다는 문구를 추가 |
Dec 2, 2023 | 피드백 | 다이얼로그 대화 창을 넘길 때 당근 버튼을 눌러야 하는 것이 불편하다 | 대화 창 전체를 눌러도 넘어가도록 수정 |
Dec 2, 2023 | 피드백 | 모바일에서 현재 플레이어가 어떤 기구와 상호 작용 중인지 잘 보이지 않아서 불편하다 | 상호 작용 중인 기구에 아웃라인을 추가하여 가시성을 높임 |
Dec 3, 2023 | 버그 | Day 01 홈씬 영업 시작 전 튜토리얼에서 ESC를 누르면 다이얼로그 창이 사라진 뒤 튜토리얼이 진행되지 않는다 | 튜토리얼 중에 ESC를 누르면 설정 창이 뜨도록 수정 |
Dec 3, 2023 | 피드백 | 레시피를 잠금 해제하지 않고도 평점 5점을 달성한다 | 절구 및 냄비를 제공하는 이벤트에서 각 기구를 사용하여 만드는 레시피를 함께 제공하도록 수정 |
*Version 모두 알파
🐇 ABOUT TEAM 십이갅zl 팀을 소개합니다!
이름 | 태그 | 블로그 주소 | Github주소 | 담당 |
노동균 | 팀장 | 손님 AI,뉴스,프롤로그 씬,게임 엔딩 씬,데이터,Cheater,애널리틱스 | ||
김정민 | 부팀장 | 인벤토리,장식품 상점,튜토리얼,게임 오버 씬,연습모드,오브젝트 풀링,UIManager,UI 디자인 | ||
박희원 | 팀원 | 재료주문,하루결산,게임설정,해상도대응,파산 씬,Sound | ||
이현지 | 팀원 | 플레이어,입력시스템,주방기구,뉴스,연습모드,쿡북,닷트윈,애니메이션 디자인,UI 디자인 |
취업 준비, 어디서부터 시작해야 할지 모르겠다면?
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
Share article
Subscribe to our newsletter