일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Replication
- unity
- gas
- local prediction
- ability task
- rpc
- gameplay tag
- 게임 개발
- Unreal Engine
- listen server
- stride
- UI
- C++
- 유니티
- 언리얼 엔진
- Aegis
- animation
- attribute
- level design
- widget
- gameplay ability system
- MAC
- os
- CTF
- 언리얼엔진
- 보안
- gameplay effect
- photon fusion2
- 게임개발
- Multiplay
- Today
- Total
목록2025/05/28 (8)
Replicated
버텍스란?struct Vertex { float x, y, z; // 위치 float r, g, b; // 색 float nx, ny, nz; // 법선 float u, v; // 텍스처 좌표};3D 모델이나 장면에서 위치, 색, 법선, 텍스처 좌표 등의 정보를 담고 있는 점다각형(주로 삼각형)을 구성하는 기본 단위, GPU는 이 버텍스 정보를 기반으로 화면에 물체를 렌더링함 버텍스 처리 과정1. 버텍스 셰이더- 버텍스 데이터를 입력받아 화면에 보이도록 변환 (ex. 모델 -> 월드 -> 카메라 좌표계) 2. 클리핑 및 정규화- 화면 밖으로 나간 버텍스를 제거하고 정규화된 좌표로 변환 3. 래스터화- 버텍스로 구성된 삼각형을 픽셀 단위로 변..
Draw Call이란 무엇이며, 이를 줄이는 방법은?GPU에 "어떻게 그려줘"라는 명령 한 번을 의미 오브젝트 하나를 그릴 때마다 GPU에 그리라고 요청 보내는데,드로우 콜이 많을 수록 CPU -> GPU 전송 비용이 커져 성능 저하 발생 왜 드로우 콜이 많으면 느려지는가?- CPU는 한 번에 하나씩 명령을 GPU에 보내야 함- 드로우 콜이 많으면 CPU 병목, GPU가 기다리게 됨- 모바일, 저사양 디바이스는 더 심각 드로우 콜 줄이는 방법1. Batching 활용하기Static Batching움직이지 않는 오브젝트를 미리 묶음Dynamic Batching작은 오브젝트(버텍스 300개 이하)를 실시간으로 묶음비슷한 메시, 머티리얼을 묶어서 한 번에 그리기 위해 사용 2. GPU 인스턴싱- 같은 메시,..
Unity에서 UGUI의 성능 병목 현상을 해결하는 방법은? * UGUI (Unity GUI)- 유니티에서 UI 만들기 위한 시스템- 게임오브젝트 기반- Canvas: 모든 UI는 캔버스 위에서 렌더링, 월드 공간에서도 UI 배치 가능- 레이아웃 시스템: 자동 정렬, 앵커, 피벗, 패딩 등- 드래그 앤 드롭 방식의 편집- 이벤트 시스템 UGUI는 편리하지만 렌더링 중 성능 병목을 일으킬 수 있음 Canvas Rebuild- UI가 조금만 변경되어도 전체 캔버스 재계산 발생 Draw Call- UI 요소가 많고 batching이 안되면 그만큼 CPU/GPU 부하 오름 오버드로우- 겹치는 UI가 많은 GPU가 동일 픽셀을 여러 번 그림 레이아웃 컴포넌트 과용- Layout Group 등 사용 시 계산 비용 ..
클라이언트-서버 모델과 P2P 모델의 차이점항목클라이언트-서버 (Client-Server)P2P (Peer-to-Peer)구조중앙 서버가 모든 통신과 상태를 관리모든 클라이언트가 서로 직접 통신권위(Authority)서버가 진실의 기준 (권위)클라이언트 간 권한 공유 (종종 호스트에게 위임)보안상대적으로 안전 (서버 검증 가능)취약 (해킹/조작에 취약)동기화서버 기준으로 일관된 상태 유지각 클라이언트 상태가 불일치할 수 있음성능서버 성능에 의존, 확장성 필요지연이 적을 수 있지만 불안정 가능성 있음호스팅 비용서버 인프라 필요 (비용 높음)서버 불필요 (비용 절감 가능) 클라이언트-서버 모델장점- 일관된 상태 유지- 보안 관리 쉬움- 데이터 저장 용이 단점- 서버 운영 비용- 서버 지연 시 전체 영향P2P..
게임 클라이언트의 기본 구조사용자와 서버 간 중개자화면에 그래픽을 표시하고 입력을 처리하고 네트워크 통신 입력, UI, 렌더링, 오디오, 게임 로직, 애니메이션, 네트워크, 리소스 관리, 씬/레벨 관리, 로컬 저장/관리 MVC, MVMM 패턴을 게임 클라이언트에 어떻게 적용?패턴 주요 목적 게임 클라이언트에서 적용 대상MVCUI와 로직 분리메뉴 UI, HUD, 인벤토리 등MVVM바인딩 중심의 구조화데이터와 UI가 자주 바뀌는 경우 (예: HP 바, 채팅창 등) MVC (Model-View-Controller)- Model: 게임 데이터 (ex. 인벤토리 데이터 클래스)- View: UI 요소 (ex. 인벤토리 위젯)- Controller: 입력 처리 및 로직 연결 (ex. 아이템 클릭 시 처리, 서버 ..
포인터와 참조의 차이항목 포인터 (Pointer) 참조 (Reference)선언 방법int* p = &a;int& r = a;널(null) 가능가능 (p = nullptr;)불가능 (항상 유효한 참조여야 함)초기화 여부나중에 초기화 가능선언 시 반드시 초기화 필요재지정 가능 여부다른 객체를 가리킬 수 있음한 번 정해지면 다른 객체 참조 불가간접 접근*p, p->직접 변수처럼 사용 (r)메모리 주소 연산가능 (&p, p++)제한적 (&r은 실제 객체 주소) virtual과 override항목virtual override정의 위치기본 클래스(Base class)파생 클래스(Derived class)목적함수가 파생 클래스에서 오버라이드 가능하게 함해당 함수가 기본 클래스의 가상 함수 재정의임을 명시오류 방지 ..
두 벡터 a, b의 외적 -> 3차원 공간에서 정의되며 벡터를 반환함n: a, b에 수직인 단위 벡터 (오른손 법칙)θ: 두 벡터 사이의 각도 a = (a1, a2, a3), b = (b1, b2, b3)라 하면3x3 행렬식(determinant) 계산* i, j, k는 단위벡터 기하학적 의미- 결과 벡터는 a, b 둘 다에 수직- 외적의 크기 -> a, b가 만드는 평행 사변형의 넓이 기하학적 해석- 외적 벡터 -> a, b로 형성된 평면에 수직한 방향- 외적의 방향은 오른손 법칙을 따름 * 오른손의 법칙외적은 단순 크기가 아닌 방향성이 있는 벡터를 만들어야 함a, b가 만드는 평면에 수직이면서 a->b의 회전 방향을 따르는 방향이어야 함 엄지, 검지, 중지를 각각 직각이 되도록 하고검지: a 방향으로..