About
풀스택 개발 마스터를 향한 고군분투를 담은 퍼즐 게임
Made by
Team Sinsa-Station - Team Wiki
Design
2021.06.16 ~ 2021.07.05
Develop
2021.07.06 ~ 2021.08.20
Release
2021.08.23
이름 | 목적 | 사용 버전 |
---|---|---|
RxSwift | 비동기 처리 | 6.2.0 |
RxCocoa | View 처리 | 6.2.0 |
Firebase | Database 및 이벤트 로깅 | 8.6.0 |
Firebase/Auth | 게임센터 로그인 연동 | 8.6.0 |
Launch | Story | Loading |
- Launch Screen 제공 | - 앱 첫 실행 시 게임 스토리 제공 - 스킵 가능 |
- Firebase/Coredata 데이터 로드 제공 - 애플 게임 센터 로그인 제공 - 오프라인 플레이 가능 |
Title | Item | Reward |
- 각종 메뉴 및 게임 화면 이동 제어 | - 에너지를 사용한 아이템 업그레이드 제공 | - 구글 애드몹 연동 보상 광고 제공 - 매일 자정 새로운 리워드 제공 |
Ranking | Setting | How To |
- 온라인 플레이 시 게임센터 랭킹 제공 - All time & Monthly Ranking |
- BGM, 효과음, 진동 설정 가능 - 게임 스토리 재시청 제공 |
- 게임 진행 방법 제공 |
Game1 | Game2 | Fever |
- 게임 시작 전 준비 시간 제공 | - 게임 플레이 제공 - 유저 하이스코어 연동 |
- 콤보 달성 시 피버 모드 제공 |
Pause | GameOver |
- 게임 정지 기능 제공 | - 랭킹 및 에너지 자동 저장 제공 - 점수에 따른 게임오버 스토리 |
WooSeok | Song |
- 앱 개발 - 앱 기획 - 내러티브 기획 |
- 앱 개발 - 앱 기획 - 픽셀아트 및 일러스트 |
github | github |
WooSeok's Develop History
프로젝트 초반에 생성해두었던 MemoryStorage를 PersistenceStorage로 수정했던 작업이 기억에 남습니다.
MemoryStorageType이라는 protocol을 활용하여 viewModel객체들에 의존성을 주입해서 코드를 설계했던 덕분에 쉽게 객체 바꿔치기가 가능했습니다.
적절한 protocol 사용과 의존성 주입이 유연한 코드 작성에 얼마나 효과적인지 직접 느낄 수 있었습니다.
- 기본 UI
- Auto Layout 확인 ((iPod touch, 8, 11, 12)
- ButtonController (Button 다형성)
- SceneCoordinator
- Scene 객체
- TransitionManager 객체
- 화면 이동
- CommonViewModel (모든 viewModel의 super class)
- MemoryStorage 및 CRUD 메서드
- Loading ViewController & Activity Indicator
- 이동 Button
- 기본 UI
- 배경음악 on/off
- 기능 구현
- 기본 UI
- 스토리 구상
- 기본 UI
- StoryScene 로직
- 기본 UI
- cell tap시 Main Image 변경
- Levelup Button 기능
- Required Money View
- Balance View
- Test App 등록
- GAD ID 발급
- Google Ads 삽입
- Dynamic Level 코드
- Storage Protocol 테스트
- AGC 로그인 구현
- Firebase와 로그인 연동
- Leader Boards
- Firebase 관리객체 생성
- Firebase와 Data 통신을 위한 DataFormatManager 생성
- Coredata와 Data 연동(background 진입 / 앱 종료 시)
- Real Time DB json
- Data 다운로드 완료시 LoadingVC dismiss
- hasLaunchedOnce 기능 구현
- SettingVC 기능 구현
- 기존 MemoryStorage -> PersistenceStorage로 객체 변경
- Core Data Entity
- CRUD 메서드
Song's Develop History
서드파티 라이브러리 사용 없이 Core Graphics와 UIKit만을 활용하여 모든 애니메이션을 구현한 경험이 가장 기억에 남습니다.
또한, 아이폰4s까지 지원할 수 있도록 Auto Layout을 짜야했던 것도 챌린징했습니다.
게임이라는 특성 상 화면 구성요소가 다양했기 때문에, View를 짜는 것에 있어서도 구조가 중요하다는 것을 느낄 수 있었습니다.
- Image Asset을 적용한 UI - AutoLayout
- BackgroundView의 랜덤 구름 Animation
- Title View 텍스트의 Type Writer Animation
- Loading View
- Layout 조정 및 assets 적용
- Image Asset을 적용한 UI - AutoLayout
- 기기 사이즈에 따른 Font Size 적용
- Item Upgrade 성공 Animation - 이미지 평균 컬러 반영
- Info View 텍스트의 Fade In Animation
- Item Upgrade 성공 여부에 따른 Haptic
- UI 구축 - AutoLayout
- Available(Ad or Gift) / Taken 상황에 맞춘 CollectionCell Update
- Reward Update Logic 구현 - AdStorage
- Banner Ads 연동
- Image Asset을 적용한 UI - AutoLayout
- 스토리 관리 모델 구축 - Line, Script, Story Manager
- Story View Animations
- UI 구축 - AutoLayout
- UI 구축 - AutoLayout
- Game Play Logic 구현 - GameUnitManager
- Match 성공 시 랜덤 코드 Animation
- Match 실패 대응 - Haptic 적용, Wrong Animation, 버튼 Cool time
- 게임 유닛 릴즈의 PerspectiveView & Animation
- Game Over Logic 구현 - TimeManager
- Game Over / Pause Scene 흐름 컨트롤
- Fever Time Logic 구현 - FeverManager
- 게임 BackgroundView의 FeverAnimation
- NormalTimeView / FeverTimeView & Animation
- Game Ready Mode 구현
- UI 구축 - AutoLayout
- Resume / Restart / Home 흐름 컨트롤
- BackgroundView Animation
- UI 구축 - AutoLayout
- High Score 연동
- Restart / Home 흐름 컨트롤
- BackgroundView Animation
- 랭크에 따른 랜덤 스토리 연동
- AdStorage 테스트
- 배경음, 효과음 재생 컨트롤 - Sound Station 객체들
- User Default와 연동
Thank you for reading!