초고교급 희망

[수학레인저] 개발 일지 3화 (23년 6월 4주차) 본문

Game/개발 일지

[수학레인저] 개발 일지 3화 (23년 6월 4주차)

연모링 2023. 6. 25. 23:30
728x90

안녕하세요?

며칠 전 하지였죠. 본격적으로 무더위가 시작되네요. 제철 과일 드시면서 무더위를 이겨내시길 바라겠습니다. 전 최근에 기획 허지향님과 자두 한 박스를 사서 나눠 먹고 있습니다.  

 

1.이벤트 기반 아키텍처

저번 화에 플레이어는 싱글톤으로 처리했다고 했었지요.

하지만 은주님이 이벤트 기반으로 변경하는 것이 좋겠다고 리뷰를 달아주셔서 개선했습니다! 🫡

 

이벤트 기반 아키텍처란?

소프트웨어 디자인 패턴 중 하나로, 이벤트를 중심으로 컴포넌트 간의 상호작용을 구조화하는 방법입니다. 이 패턴은 애플리케이션의 유연성, 확장성, 모듈성을 높이고, 결합도를 낮추는 데 도움이 됩니다.

일반적으로 이벤트 기반 아키텍처에서는 이벤트(또는 메시지)를 발행(Publish)하고, 해당 이벤트를 구독(Subscribe)하는 리스너(또는 핸들러)가 이벤트를 수신하여 처리합니다. 이렇게 이벤트와 리스너 간의 느슨한 결합을 통해 컴포넌트들이 독립적으로 작동하면서도 통신할 수 있게 됩니다.

 

2. 카메라 범위

원래 저번 주차에 카메라 구현할 때 같이 했어야 했는데 빠뜨린 기능이 한 가지 있더라구요.

맵 범위가 정해져 있어서 맵의 모서리로 가면 카메라는 더 이상 플레이어를 따라가지 않고 멈춰야 합니다.

그래서 Mathf.Clamp 함수를 사용하여 카메라가 이동할 수 있는 위치를 최솟값과 최댓값 사이로 제한했습니다.

이제 카메라가 설정된 경계를 벗어나지 않습니다.

 

3. 캐릭터 자동 공격

공격이 랜덤 방향으로 나아갈지, 혹은 몬스터에게 유도하여 발사될지 등등...이 부분은 게임의 난이도에 따라 앞으로 기획적 변경이 있을 수도 있습니다. 일단은 보스의 방향으로 계속해서 총알이 날아가게 했습니다. 

은주님이 미리 만들어두신 오브젝트 풀링을 이용해서 총알(?)을 관리합니다.

 

오브젝트 풀링이란? 

자주 생성되고 제거되는 게임 오브젝트를 미리 생성해두고 재활용하는 방식으로 성능을 개선할 수 있습니다.

 

4. 협업이란...

개발 회의를 진행하면서 은주 센빠이와 코드리뷰를 진행합니다.

남에게 설명하기 시작하니 한없이 더러운 나의 코드...

그래서 저번 주차에 작성한 코드들을 보기 좋게 정리도 했습니다.

클린 코드 책 사놓고 덜 읽었는데, 빨리 봐야겠습니다 ㅎㅎㅎㅎ

 

마무리하며...

중간 평가를 앞두고... 다 함께 마일스톤을 조정했습니다.

당분간 게임의 핵심이 되는 전투 부분을 우선 개발하기로 하였습니다. 👍

 

읽어주셔서 감사합니다~

728x90