일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 언리얼5
- 생성자
- 배열
- 언리얼엔진
- 게임 개발
- C++
- Unreal Engine
- 게임프로그래밍패턴
- 복사생성자
- UE5
- 언리얼엔진5
- Unreal Engine5
- CPP
- 데이터구조
- 언리얼
- 포인터
- 복사대입연산자
- 디자인패턴
- AI
- cpp개발
- 소멸자
- effectivec++
- 자료구조
- 프로그래밍
- 프로세스
- BehaviorTree
- Unreal
- 게임개발
- C언어
- 언리얼 엔진5
- Today
- Total
목록디자인 패턴 (5)
리얼 개발
객체 풀 패턴 (ObjectPool Pattern) 이란생성 디자인 패턴으로, 필요에 따라 객체를 할당하고 삭제하는대신 사용할 준비가 된 일련의 초기화된 객체 "풀"을 사용한다. 클라이언트가 객체를 사용해야 하는 상황이 되면 미리 객체를 생성해 모아놓은 "풀"에 객체를 요청하고, 클라이언트가 객체 사용을 완료하면 삭제하는 대신 "풀"에 반환한다. 이러한 객체 풀 패턴은 게임 개발에서 자주 사용하곤 한다. (다른 곳에서는 어떤지 잘 모르겠음) 패턴 사용 상황내가 탄막 게임을 만드는 개발자라고 생각해보자. 화면을 가득 채우고 있는 탄환들은 어떻게 생성해야 할까?탄환은 계속해서 이동해야하며, 플레이어가 조종하는 캐릭터와 충돌했을 때 충돌 판정이 필요하다.이런 탄환들은 하나의 객체로 화면에 생성되고 삭제됨을 ..
관찰자 패턴객체 사이에 일 대 다의 의존 관계를 정의해두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업데이트 될 수 있게 만듭니다. 오늘날에 모델-뷰-컨트롤러 (MVC) 패턴은 아주 많이 사용되고 있다. 그 기반에는 관찰자 패턴이 있다. 업적 달성업적 시스템을 추가한다고 해보자. ‘다리에서 떨어지기’ 업적같은 경우 물리 엔진 코드 한 가운데서 업적 달성 코드를 실행해야 할 것이다. 특정 기능을 담당하는 코드는 항상 한데 모아놓는게 좋다. 그럼 업적 코드들이 모아져 있고, 커플링되지 않게 하려면 어떻게 해야할까? 답은 관찰자 패턴을 적용하면 된다. 관찰자 패턴을 적용하면 누가 받든 상관없이 알림을 보낼 수 있다. 다음과 같이 코드로 표현할 수 있다..
경량 패턴공유를 통해 많은 수의 소립 객체들을 효과적으로 지원합니다. (GoF 본문 설명) 웅장한 숲과 하늘 위로 솟아오른 수많은 노송들, 잎은 스테인드글라스 창처럼 햇빛을 산란시켜 황금빛 기둥을 만든다. 판타지 게임에서 흔히 볼 수 있는 설정이며, 일반적으로 이런 장면은 경량 패턴으로 종종 구현한다. 숲에 들어가는 나무들구비구비 뻗어 있는 숲을 글로는 몇 문장으로 표현할 수 있지만, 실시간 게임으로 구현하는 것은 전혀 다른 얘기다. 우리가 나무들이 화면을 가득 채운 빽빽한 숲을 볼 때, 그래픽스 프로그래머는 1초에 60번씩 GPU에 전달해야 하는 몇백만 개의 폴리곤을 본다. 수천 그루가 넘는 나무마다 각각 수천 폴리곤의 형태로 표현해야 한다. 설사 메모리가 충분하다고 해도, 이런 숲을 그리기 위해서는 ..

Part 2. 디자인 패턴 다시보기 명령 패턴요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자(client)를 매개변수로 만들고, 요청을 대기 시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다. (GoF 본문 설명) GoF의 디자인 패턴에 나와 있는 명령패턴에 대한 설명이다. 너무 난해하게 표현해 받아들이기 쉽지 않다. 저자는 다음과 같이 매우 간결하게 요약했다.명령 패턴은 메서드 호출을 실체화한 것이다.‘실체화’는 ‘실제하는 것으로 만든다’라는 뜻이다. 프로그래밍 분야에서는 무엇인가를 ‘일급(first-class)’로 만든다는 뜻으로 통한다.(*) 일급 객체(First Class Object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. ‘실체화..
이 카테고리는 "로버트 나이스트롬"의 "게임 프로그래밍 패턴"을 보고 개인적으로 필요하다고 생각되는 내용을 요약한 글입니다. 패턴의 개념이란?패턴은 오랫동안 정형화되고 축적된 경험을 추상화한 지식 단위이다. 여러 사람이 공유하는 개념이기 때문에 패턴 이름만으로도 많은 정보를 한 번에 정확하게 전달할 수 있다.해당 책의 요지“GoF의 디자인 패턴”에 나오는 패턴들 중 저자가 실제 게임을 제작하며 썼던 패턴들을 소개해주고 있으며 딱딱한 ‘직원 정보’, ‘은행 계좌’가 아닌 ‘몬스터’, ‘업적’ 같은 것들을 예제 삼아 패턴을 설명하고 있다. 또한 이 책 어디에도 3D 그래픽스에 필요한 선형대수나 게임 물리에 필요한 미적분 내용은 나오지 않는다. AI의 탐색 트리에서 알파-베타 가지치키를 하는 방법이나, 오디오..