본문 바로가기

전체 글332

UKGame::Input 보호되어 있는 글 입니다. 2023. 11. 13.
UKGame::GameplayAbilitySystem 보호되어 있는 글 입니다. 2023. 11. 13.
Game Ability System(aka.GAS) ## GAS의 특징 게임플레이 태그(GameplayTag)를 기반으로 모듈화된 클래스로 동작하며, 어빌리티의 리플리케이션을 자체적으로 지원함. 태그기반으로 동작하기 때문에 예외처리가 무척 간편하며 비교적 쉽게 리플리케이션 처리가 가능함. 또한 어빌리티가 모듈로 나뉘어져있기 때문에 캐릭터와 스킬이 다양한 게임에 적합함. - ## GAS의 요소 GameplayAbility : 게임플레이 어빌리티 ; 게임 내 어빌리티가 하는 일, (있다면) 시전하는 데 드는 비용, 언제 어떤 상황에서 사용할 수 있는지 등을 정의 GameplayEffect : 게임플레이 이펙트 ; 액션이 어떤 영향을 주는지 정의.(체력, 마나, 데미지, 버프/디버프 등) GameplayCue : 게임플레이 큐 ; GA가 발동되었을 때 어떤 효.. 2023. 10. 4.
UI Optimization(ongoing) Why is UI so expensive? 1. 불필요한 Tick(NativeTick & BlueprintTick)을 제거하자. UCLASS(Meta=(DisableNativeTick)) 항상 업데이트가 필요한 데이타 세팅이 아니면 이벤트나 딜리게이트를 사용하자. TimerEvent를 사용해 원하는 만큼만 갱신되도록 하자. 2. CreateWidget 함수는 비용이 비싸기 때문에 Pooling 해서 사용하자. ex> loading 시간에 pool을 채우고 필요할 때 가져와서 사용하자. 3. Visible 보단 HitTestInvisible(인터렉션 받지 않음-하위 불가능), SelfHitTestInvisible(자신만 인터렉션 받지 않음-하위 가능) 를 사용하자. enum class ESlateVisib.. 2023. 8. 20.
DFS(깊이 우선 탐색) & BFS(너비 우선 탐색) DFS와 BFS는 모두 *그래프를 탐색할 때 사용한다. *그래프:정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조 하나의 정점에서 시작하여 차례대로 모든 노드들을 순회(방문)하면서 탐색하는 탐색 알고리즘이다. DFS(깊이 우선 탐색) ; 루트 노드(혹은 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 모두 순환하여 탐색하는 방법. 모든 노드를 방문하고자 하는 경우나 이전 경로의 정보가 필요한 경우에 사용한다. 최대한 깊이 내려간 뒤에 더 이상 깊이 갈 곳이 없으면 옆으로 이동한다. 스택(stack) 또는 재귀함수로 구현한다. DFS 구현(재귀) 1. 노드를 방문 리스트에 기록 2. 현재 노드에 인접한 노드를 기준으로 반복 3. 노드의 인접 리스트가 비었을 경우 .. 2023. 8. 17.
그래프(Graph) 그래프는 실제 세계의 현상이나 사물을 정점(Vertex) 또는 노드(Node) 와 간선(Edge)로 표현하기 위해 사용한다. 노드(Node) : 위치를 말한다. 정점(Vertex)이라고도 함. 간선(Edge) : 위치 간의 관계를 표시한 선으로 노드를 연결한 선이라고 보면 됨.(link or branch) 인접 정점(Adjacent Vertex) : 간선으로 직접 연결된 정점(또는 노드) 무방향 그래프 ; 방향이 없는 그래프 간선을 통해 노드는 양방향으로 갈 수 있음 보통 노드 A,B가 연결되어 있을 경우, (A, B) 또는 (B, A)로 표기 방향 그래프 ; 간선에 방향이 있는 그래프 보통 노드 A,B가 A->B로 가는 간선으로 연결되어 있을 경우, 로 표기. 는 B -> A로 가는 간선이 있을때에 표.. 2023. 8. 14.