게임 개발에 자주 쓰이는 7가지 패턴
1.싱글톤 패턴
클래스의 인스턴스가 딱 하나만 존재하도록 보장하는 디자인 패턴.
게임이 실행되고 꺼지기 까지, 그 인스턴스가 한 번만 생성되는 것이 핵심.
이 인스턴스가 게임 어디서든 전역적으로 접근이 가능해야함.
프로그램 생명주기동안 이 인스턴스는 한 번만 생성이 된다.
전역 변수보다 안전하다.
게임의 설정, 오디오 매니저, UI 매니저 처럼 전역적으로 하나만 존재해야 하는 객체에 사용됨.
2. 상태 패턴
객체의 상태에 따라 객체의 행동을 변경하게 해주는 디자인 패턴.
조건문으로 나누는 것이 아니라, 객체의 상태를 별도의 클래스로 캡슐화함
상태에 따른 행동이 복잡할 때 유용하다.
게임 캐릭터의 상태(대기, 이동, 공격)에 따라 행동이 다르게 구현할 때 유용함.
3. 관찰자 패턴
일종의 구독 시스템으로 생각하면 편하다.
주인공 객체의 상태 변화를 관찰하는 다수의 관찰자 객체들이 존재.
- 주인공 객체가 변하면 관찰자에게도 자동으로 알려준다.
- 상태 변화에 따른 자동 업데이트 기능
ex. 플레이어가 몬스터를 죽이면 일어나는 여러가지 현상
4. 커맨드 패턴
게임 유저의 input이 많은 경우에 이 input들이 깔끔하게 처리되어야 할 때 사용한다.
5. 컴포넌트 패턴
객체의 행동을 작은 부품(컴포넌트)으로 분리.
협업에 컴포넌트 패턴은 필수! (일을 나눌 수 있고, 시간을 절약할 수 있음)
6. 빌더 패턴
복잡한 객체의 생성 과정을 단계별로 분리.
객체의 생성과 표현을 분리함.
생성하는 과정에서 서로 다른 표현을 가진 객체를 만드는 것
ex. 난이도 (몬스터 개수 결정), 맵을 여러가지 variation으로 만들 때 (환경 조성)
7. 플라이웨이트 패턴
메모리 사용을 최적화하기 위한 패턴
객체의 공유를 촉진하는 형태
변경 불가능한 (공유 상태)
객체마다 다를 수 있는 (개별 상태)
공유 상태는 객체 내부에 저장, 개별 상태는 클라이언트에 의해 관리됨.
ex. 전역 퀘스트 아이템 (모든 플레이어가 공유하는 아이템, 진행상황에 따라 기록이 달라짐)
** 모든 패턴을 사용하는 것이 좋은 게 아니라, 상황에 따라 맞는 패턴을 적용시키는 것이 중요하다.
Unity 게임 개발 입문 : 팀프로젝트 : Arkanoid Like Game 만들기
Unity 2D 기능을 사용해 고전게임 <벽돌깨기>를 우리 팀만의 방식으로 새롭게 만드는 것이 이번 과제이다.
코드 컨벤션, 깃 커밋 컨벤션, 깃 Repository 생성 이후에 역할 분담까지 마쳤다.
우선 오늘은 기초 오브젝트 (패들, 벽돌, 공) 생성까지 병합을 마쳤다.
나는 벽돌 맵 만들기, Panel로 UI 만들기, Scene 구성을 맡았다.
Panel 개별로 스크립트를 작성했고, 추후에 GameManager 부분이 정리되는 대로 연동할 것이다.
좋은 프로젝트 완성을 위해
내일도
'게임 개발 일지 > 내일배움캠프 TIL' 카테고리의 다른 글
ogg 파일 사용 / UI - BestScore 만들기 (0) | 2023.12.04 |
---|---|
ScriptableObject / 메타 파일의 중요성 (2) | 2023.12.01 |
Math.sqrt / 벡터 이해하기 (1) | 2023.11.29 |
카메라가 플레이어 따라가기 / object 생명주기 (1) | 2023.11.28 |
객체지향 프로그래밍의 특징 (0) | 2023.11.27 |
댓글