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
'Today I Learned' 카테고리의 다른 글
[TIL][Github] 리드미(README.md) (0) | 2024.05.14 |
---|---|
[TIL][Unity] 3주차 게임 개발 기초 개인 프로젝트 4일차 (0) | 2024.05.13 |
[TIL][Unity] 3주차 게임 개발 기초 개인 프로젝트 2일차 (0) | 2024.05.09 |
[TIL][Unity] 3주차 게임 개발 기초 개인 프로젝트 1일차 (0) | 2024.05.08 |
[TIL][C#] C# 콘솔 게임 만들기 프로젝트 (0) | 2024.05.07 |