2024년 6월 18일 화요일 개발일지 / 개인 과제 리마인드

2024. 6. 18. 20:48나의 개발자 기록/본 캠프 개발 일지

2024년 6월 18일 화요일


What did I today and yesterday

금요일날 개인 과제를 세팅만 해놓고, 주말에 해야지 했는데, 결국 주말에는 게임하며 놀고, 쉬었습니다. 물론 복습도 했지만, 주말에도 개인 과제를 진행했어야 했는데, 하루면 되겠지 하는 안일함 때문에 어제 밤늦게까지 개인 과제 하느라 TIL을 쓰지 못했네요. 그리고 하루 만에 개발하는 거라 그런지 완성도도 떨어지고 버그도 난무하고... 문제가 많습니다. 크음 변명은 여기까지만 하고, 개인 과제가 어떻게 진행되었는지 어떤 기능이 있는지에 대해서 정리해볼까 합니다.


개인 프로젝트 소개와 선정 이유

 

일단 이번 개인 과제에서 선택할 수 있었던 게임이 길건너기 게임, 2D 클릭커, 3D 방치형 게임이었는데, 저는 이번 개인 프로젝트를 길 건너기 게임 (StreetCrossingGame)으로 선정하게 됐습니다. 선정 이유로는 방치형 게임을 좋아하진 않고, 직접 플레이할 수 있는 게임을 좋아한 것도 있으며, 가장 큰 이유로는 지금까지 복습할 시간이 없어서 개인 과제할 겸 복습을 하려고 선정하게 됐습니다.


구현 사항 : InputSystem, Animation

 

이번 개인 과제에서 구현해야했던 InputSystem과 Animation을 적용한 모습인데, 길 건너 친구들처럼 한 개의 Tile만큼 이동하는 느낌을 주고 싶어서 이렇게 구현했습니다만, 애니메이션이 부자연스러운 느낌이 많이 나는 것 같네요.


구현 사항 : Prefab, EnvironmentManager

 

자동차나 땟목, 나무, 도로 등의 오브젝트를 Prefab화 시키고, 환경 매니저를 통해서 오브젝트가 자동 삭제 및 생성 기능을 만들었습니다.


구현 사항 : Collider, Score UI System

 

꽃 아이템을 먹으면 왼쪽 위의 UI에 점수가 표시되고, 자동차에 부딪히면 게임이 종료되는 판네일 나오면서 점수가 나타나게 구현을 했습니다. 근데 여기서도 문제인 게 시간만 더 있었더라면 바로 끝나는 게 아닌 애니메이션 연출 후, 판넬이 나오는 식으로 할 수 있었을 텐데 뭔가 많이 아쉽네요.


구현 사항 : SoundSystem, ScriptableObject

 

심화 강의를 기반으로한 사운드 시스템을 적용해 놨지만... 정작 사운드를 사용한 건 배경음악밖에 없었네요. 다른 거부터 빠르게 해결하느라 다른 사운드르 넣지 못했습니다. 그리고 Scriptable Object의 경우에도 자동차를 SO 데이터로 받아 오긴 했는데... MoveSpeed만 차별화를 두었기 때문에 이게 큰 의미가 있었나 싶네요. 또한 자동차 프리팹을 하나만 두려고 했는데, 차 종류와 디자인이 다르다 보니까 여러 개의 자동차 프리팹이 만들어졌네요.


구현 사항 : Object Pool

 

오브젝트 풀은 태그를 받아오는 방식으로 자동차와 땟목을 온/오프로 관리할 수 있게 구성 및 구현을 했습니다. 솔직히 Object Pool이 코드가 이해는 되는데, 직접 짜는 게 너무 어려워서 GPT의 힘을 빌렸습니다. 물론 그냥 가져다 쓰면 의미가 없기 때문에 오브젝트 풀에 대한 것은 분반별 컨텐츠에서 다뤘었기 때문에 코드를 이해하는 데에는 문제가 없습니다.

 

하여튼간에 이렇게 과제에 있던 구현사항들을 파티클 시스템을 제외하고 모두 구현을 하긴 했지만 하나같이 다 나사가 빠진 모양새라 여러 가지 문제가 많은 것 같습니다. 처음 할 때에 간단한 기획이나 구조를 만들어볼걸 그랬습니다. 이제 앞으로 주말에도 열심히 해야겠네요. 오늘 하루는 개인과제 마무리하고, 여러 가지 특강 듣고 TIL 쓰면서 마무리했습니다.


 

앞으로의 계획

 

 

지금까지 팀 프로젝트나 개인 프로젝트를 하면서 무언가 위화감이 많이 들었습니다. 그 위화감이 뭔지 이번 개인 프로젝트를 통해서 확실하게 깨달았는데, 그건 저번에도 얘기했었던 내용인 코드의 구조를 짜는 것이었습니다. 솔직히 말해서 뭔가 코드를 짤 때 검색이나 기존에 했던 작업들, 강의로 배웠던 코드들을 참고하지 않고, 내 머릿속만으로 구조를 짠다거나 뭔가를 만든다는 게 안 되는 것 같습니다. 물론 간단한 것 들은 잘 되긴 하는데, 오브젝트 풀 같은 복잡한 것들은 스스로 구조를 짜기가 어렵다는 걸 깨달았습니다. 이론적인 부분은 이해가 되는데, 코드를 짤 때 예시를 보고 하지 않으면 잘 안 되는? 그런 문제가 있는 것 같습니다.

 

그래서 이 문제를 해결하기 위해서는 복습을 자주 한다거나 제가 반복적으로 코드를 써봐야 하는데, 최근 들어 개인 프로젝트나 팀프로젝트를 쉬지 않고 달려와서 그런지 시간이 많이 없었던 것 같네요. 물론 주말에 복습할 시간이 있었음에도 불구하고 그동안의 피로를 푸느라 복습을 1~2시간 밖에 안 했었는데, 이제부터는 주말이나 남는 시간에 코드를 다시 정리하고 계속 써보는 연습을 해야 할 것 같습니다. 곧 있으면 최종 프로젝트가 시작되기 때문에 최종 때에는 노는 시간을 줄이고, 공부 및 복습하는 시간을 늘려서 게임 개발 실력을 최대한 끌어올리고, 최종 프로젝트에는 진심을 담아서 만들어야겠습니다!