본문 바로가기

Today I Learned

[TIL][Unity] 3주차 게임 개발 기초 개인 프로젝트 3일차

3주차 게임 개발 기초 개인 프로젝트 3일차

  • 캐릭터가 정지, 공격, 이동을 할 때의 애니메이션을 구분함
  • 근접, 원거리 몬스터를 각각 제작하여 플레이어를 추적, 공격함 (애니메이션 포함)
  • 투사체 관리를 오브젝트 풀링 방식으로 변경함
  • 카메라가 플레이어를 따라오도록 함

작업 내용 : https://excalidraw.com/#json=8bkfHxtI6Lugpzsm0Yrcp,UlMRCk_arhlIqI8NU0AZQA

 

Excalidraw — Collaborative whiteboarding made easy

Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.

excalidraw.com

Github : https://github.com/twotop6357/FledglingKnight

 

오브젝트 풀링

게임 개발에 널리 사용되는 테크닉으로, 게임 성능 개선을 위해 사용된다.

  • 객체를 미리 생성해두고 필요할 때 가져다 사용하고, 사용이 끝나면 다시 풀에 반납하는 방식
  • 생성(Instantiate)과 소멸(Destroy)이라는 비용이 큰 작업을 최소화하여 성능 향상에 중요한 역할
  • 빈번하게 생성 / 파괴되는 객체에 대해 중요한 테크닉
  • 적절히 사용하면 큰 성능 개선을 가져오지만, 불필요한 메모리 사용을 증가시킬 수 있으므로 사용시 신중해야 함

오브젝트 풀링 테크닉을 사용할 지 정확히 판단하는 것이 좋은 게임 개발자를 가르는 척도

 

싱글턴 패턴

특정 클래스의 인스턴스가 하나만 존재하도록 보장하고, 이를 전역적으로 접근할 수 있는 전역 접근을 제공하는 패턴

  • 전역 변수를 사용하지 않고도 객체 간 데이터를 공유하거나, 전역적인 상태를 관리하거나, 특정 서비스를 애플리케이션 전체에서 사용할 수 있게 해줌
  • 잘못 사용 시 코드의 결합도를 높여 테스트와 유지 보수를 어렵게 할 수 있으므로 주의해서 사용
  • 프로그램의 수명 주기 동안 계속 존재하므로 메모리 관리에 신경써야 함

위에서 언급한 두 테크닉은 모두 개발자가 적절히 판단하여 사용하여야 프로그램의 성능에 영향을 주지 않는 테크닉이다. 위 두 테크닉을 적절한 곳에 유창히 사용할 수 있도록 많은 노력이 필요하다고 느꼈다.

 

24.05.10 Today I Learned