개발/개발일지

Tales Saga Chronicle Blast 개발일지 22 - 2장 완성, 중간 정리

메피카타츠 2023. 3. 31. 10:01

Github 주소 (스크립트만 포함)

Mepkatatsu/TSCB_OnlyScript: Tales Saga Chronicle Blast의 Script만이 포함된 Repository (github.com)

 

GitHub - Mepkatatsu/TSCB_OnlyScript: Tales Saga Chronicle Blast의 Script만이 포함된 Repository

Tales Saga Chronicle Blast의 Script만이 포함된 Repository - GitHub - Mepkatatsu/TSCB_OnlyScript: Tales Saga Chronicle Blast의 Script만이 포함된 Repository

github.com

*사용한 리소스의 저작권 등의 문제로 현재 개발한 부분까지의 스크립트만 따로 모아 public으로 업로드 한 Repository의 주소임

 

파트별 녹화 영상

인트로 ~ 메인화면

 

스토리 1장

 

스토리 2장 ~ 슈팅 게임 시작 전

 

슈팅 게임 (일반 적 페이즈)

 

슈팅 게임 (보스 페이즈)

 

슈팅 게임 종료 ~ 스토리 2장 마무리

 

일본어 로컬라이징 적용 영상 (메인화면 ~스토리 1장) (2023. 04. 02 추가)

*일본어로 옵션을 변경하는 부분부터 시작

 

사용한 에셋

 

DoTween

https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676

 

DOTween (HOTween v2) | 애니메이션 도구 | Unity Asset Store

Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store.

assetstore.unity.com

 

TextMeshPro

 

+

 

넥슨게임즈의 블루 아카이브 게임 내 이미지, UI 및 시스템 등 사용

https://play.google.com/store/apps/details?id=com.nexon.bluearchive&hl=ko&gl=US 

 

블루 아카이브 - Google Play 앱

마음 속 담고 싶은 이야기 청춘X학원X밀리터리 RPG "블루 아카이브"

play.google.com

 

 

일자별 활동

2023. 01. 11. : 개발 시작

2023. 01. 11 ~ 2023. 01. 13. : 인트로, 메인 화면, 옵션, 사운드 등 구현

2023. 01. 14. ~ 2023. 01. 19. : 스토리 기본 틀 구현, 스토리 1화 완성

 

2023. 01. 20. ~ 2023. 03. 09. : 개발 중단(취업 준비)

 

2023. 03. 10.  : 개발 재개, GitHub 연동, 픽셀 아트 작업 병행

2023. 03. 11. ~ 2023. 03. 15. : 스토리 선택 화면, 스토리 2화 진행 (게임 이전 부분까지 완성)

2023. 03. 16. ~ 2023. 03. 28. : 슈팅 게임 개발

2023. 03. 29. ~ 2023. 03. 30. : 스토리 2화 완성, 최적화 작업 및 코드 정리

2023. 03. 31. ~ 2023. 04. 02. (추가) : 일본어 로컬라이징

 

 

새로 배우고 적용한 기술 및 개념

오브젝트 풀링: 총알, 적 등의 오브젝트에 적용

베지에 곡선/기즈모: 슈팅 게임에서 적이 곡선으로 이동하는 기능 구현

싱글톤: 각종 Manager.cs 스크립트에 적용

DOTWEEN 에셋: 이미지, 텍스트 Fade, 각종 이동에 사용

 

작성한 스크립트

Manager: 하나만 존재, Controller: 여러 개 존재할 수 있음

 

/Script/

AudioManager.cs: BGM, 효과음 등 오디오를 관리 (106 line)

ButtonManager.cs: 버튼을 관리 (153 line)

DialogManager.cs: 스토리의 대사를 관리, 스토리 작업을 간편하게 하기 위해 분리 (187 line)

GameManager.cs: 게임의 전체적인 부분을 관리 (305 line)

Singleton.cs: 싱글톤이 필요한 Manager에 싱글톤을 일률적으로 적용하기 위해 작성 (42 line)

SliderController.cs: Slider를 관리 (31 line)

StoryManager.cs: 게임의 스토리 관련 부분을 관리 (1655 line)

 

/Script/Game1/

BulletController.cs: 슈팅 게임의 총알의 정보를 저장하고 충돌을 감지함 (38 line)

EnemyController.cs: 적 객체의 정보를 저장하고 이동, 공격 등의 행동을 수행 (204 line)

LazerController.cs: 보스의 4번 스킬인 레이저를 관리 (185 line)

MidoriPlaneController.cs: 플레이어의 비행기를 관리 (23 line)

ShootingGameManager.cs: 슈팅 게임의 전체적인 부분을 관리 (1327 line)

StarColorController.cs: 배경의 별빛이 반짝거리는 기능 구현 (48 line)

=============================================================

 

더보기

게임 개발 관련 느낀점

나는 게임 개발이 즐겁다. : 프로그래밍 자체도 재미있고, 그 중에서도 게임 개발이 가장 즐겁다. 게임 개발이 나의 적성에 굉장히 잘 맞는 일이고 나의 업이라고 생각한다. 앞으로도 계속 게임 개발을 하고 싶다.

 

게임 기획은 굉장히 어려운 일이다. : 기획은 애매한 것을 정하는 일이라고도 하던데, 실제로 그러했다. 게임의 모든 것을 하나부터 열까지 확실하게 정해놓는 일이 기획이다. 게임의 시스템은 물론이고 상황에 어울리는 BGM, 효과음을 찾는 일도 굉장히 고된 작업이다.

 

협업은 굉장히 중요하다. : 이미 존재하는 게임을 배경으로 만드는 작업이었음에도 혼자 시나리오, 기획, 아트, 개발 전반을 혼자 담당하는 것이 무척 어려웠다. 특히나 그림에는 소질이 없기 때문에 게임에 필요한 이미지를 직접 구상하고 그리는 것이 굉장히 힘들었다. 에셋 등을 사용해도 되지만, 에셋 스토어에 내가 원하는 그림이 모두 있지는 않다. 일부 리소스를 실제 게임에서 가져와 사용할 수 없었더라면 개발에 몇 배의 시간은 더 걸렸을 것이다. 내가 개발을 하면서 즐거운 것처럼, 기획, 아트 등의 업무를 하면서 즐거운 사람과 협업한다면 굉장히 큰 시너지를 낼 수 있을 것이다. 또한, 개발하면서 가끔 친구들에게 보여주고 의견을 들으며 수정을 거쳤기 때문에 더 만족스러운 결과물이 나온 것 같다. 나 혼자서는 보지 못하고 놓칠 수 있는 것들이 많이 있기 때문에, 여러 사람들의 의견을 참고하며 개발하는 것이 더 좋은 게임을 만드는 길이라고 느꼈다.

 

계획을 세우는 것은 중요하다. : 기획이 되지 않은 상태로 개발을 하거나 손에 잡히는 대로 작업을 하면 일정이 굉장히 늘어진다. 어떤 작업을 할 것인지 계획을 세우고, 그 작업을 작은 단위로 나누어 할 일, 필요한 일 등을 명확하게 해 놓는 것이 가장 효율적으로 개발할 수 있는 길이다.

 

게임 프로그래머로써 해야할 일 : 같은 기능을 구현한다고 해도 아주 많은 방법이 있다. 그 중에서도 가장 효율적인 방법을 추구해야 한다. 또, 개발자들도 서로 협업을 하기 때문에 알아보기 쉽게 코드를 작성해야한다. 이를 위해 코드를 통일성있게 작성하고, 디자인 패턴이나, 오브젝트 풀링과 같은 개념들을 많이 알고 적용할 수 있도록 꾸준히 공부해야겠다.

 

 

30일간 게임 개발자로서 많이 성장한 것 같다.

처음에는 재미로 시작하고, 취업 준비로 중단하였다가 그럴듯해 보이는 게임을 하나 만들어 보자라는 마음으로 개발을 재개했었다. 도중에 지금 내가 하고 있는 것이 맞는 것인지에 대한 고민도 들었다. 단순히 기능을 구현하기만 하다가 더 효율적인 방법을 찾게 되면서 오브젝트 풀링이라든지 디자인 패턴 등에 대한 개념을 알게 되었다. 취업 준비를 위해서 이것저것 찾아보며 코드를 깔끔하게 작성하는 법 등에 대해서도 알게 되었다.

 

확실히 인간은 실패를 통해 성장하는 것 같다. 취업에 실패해서 개발을 재개하고, 짧은 기간이었지만 그 과정에서 많은 것들을 배웠다. 이전에 재직하던 회사에 계속 다녔더라면이라는 생각도 했었지만, 워낙에 일이 바쁘고 개발 규모도 크지 않아 주먹구구식으로 개발하는 버릇만 들었을 것 같다. 그런 면에서 봤을 때 아마 그렇게 했을 때보다 지금의 내가 더 나은 모습이지 않을까 하는 생각이 들기도 한다.

 

이제는 이전에 지원할 때와는 다르게 남에게도 보여줄 수 있는 개발물이 있고, 혼자 작업한 정리된 코드나, 적용한 기술이나 개념들이 있기 때문에 포트폴리오를 더 올바른 방향으로 작성할 수 있을 것 같다. 이전에는 몇 개월은 걸릴 것이라고 생각했는데 지금도 어느정도 준비가 된 것 같다. 회사에 취업해서 내가 익힌 기술을 활용해 실제 서비스하는 게임 개발에 기여하고 싶다. 또 회사이기에 배울 수 있는 새로운 것들을 배우면서 계속 성장하고 싶다.

 

당분간은 코드 수정 등의 간단한 작업만 하고, 포트폴리오를 작성하면서 다시 취업 준비를 해봐야겠다. 이번에도 실패한다면 다시 개발을 계속하면서 더 많은 기술들을 익히고 적용하면서 더 매력적인 개발자가 될 것이다. 물론 취업에 성공하고 난 이후로도 계속 경쟁력을 유지하기 위해 노력할 것이다. 사람들에게 재미는 물론이고 쾌적한 플레이를 보장하기 위해서도 말이다.