일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ice cream parlor
- find the town judge
- making anagrams
- dp
- boj 6443
- boj 11657
- boj 1074
- 지게차와 크레인
- 브루트포스
- the longest increasing subsequence
- the maximum subarray
- boj 1717
- lock based queue
- string construction
- pcce 기출문제 풀이
- c++
- pccp 기출문제 풀이
- special string again
- count triplets
- DirectX12
- PCCE
- lock free stack
- DirectX
- find the running median
- LCS
- lock based stack
- gas
- 2025 프로그래머스 코딩챌린지 1차예선
- two characters
- 프로그래밍공부
- Today
- Total
목록Game (16)
오구의코딩모험

https://59travel.tistory.com/125 [GAS] 프로젝트 설정 및 캐릭터 구성하기프로젝트 설정 GAS는 언리얼 엔진에서 플러그인으로 제공하고 있다.따라서 사용하고자 할 때, 플러그인 추가와 프로젝트 설정이 필요합니다. 1) 에디터에서 GameplayAbilitySystem 플러그인 활성화 2) [Y59travel.tistory.com 저번 포스팅에서는 GAS를 위한 프로젝트 기본 설정과 캐릭터를 구성하여 점프 Ability를 구현해보았습니다. 이번 포스팅에서는점프 이외의 피격 Ability를 구현해보며 피격 판정을 Gameplay Tags를 활용해보았습니다. Gameplay Tags Gameplay Tags란?게임플레이 태그는 단어에서 유추할 수 있듯이 게임을 플레이하는 데 ..

프로젝트 설정 GAS는 언리얼 엔진에서 플러그인으로 제공하고 있다.따라서 사용하고자 할 때, 플러그인 추가와 프로젝트 설정이 필요합니다. 1) 에디터에서 GameplayAbilitySystem 플러그인 활성화 2) [YourProjectName].Build.cs 파일의 PuplicDependencyModuleNames에 "GameplayAbilities", "GameplayTags","GameplayTasks"을 추가 3) Visual Studio 프로젝트 파일 새로 고침/재생성. 4) UE 4.24 ~ 5.2 버전은 UAbilitySystemGlobals::Get().InitGlobalData()를 호출하여 TargetData를 사용합니다. 샘플 프로젝트는 이 작업을 UAssetManager::..

Lock-Free Stack 학습 정리 (上편) 멀티스레드 환경에서 Stack을 공유할 경우, 일반적으로는 mutex를 사용해 동기화합니다.하지만 잠금(lock)은 성능을 떨어뜨릴 수 있습니다.그래서 오늘은 Lock-Free Stack, 즉 락 없이 작동하는 스택에 대해 공부했습니다!compare_exchange_weak 같은 CAS(Compare-And-Swap) 연산을 사용해서 락 없이도다중 스레드 환경에서 안전하게 Push와 Pop을 수행할 수 있다는 게 핵심입니다. Lock-Free Stack이란? Lock-Free Stack은 이름 그대로 락(mutex 등)을 사용하지 않고도 멀티스레드 환경에서 안전하게 동작하는 자료구조입니다.이 스택은 atomic 포인터와 연산을 기반으로 구현되며, 핵심은..

메모리 모델, TLS, 락 기반 자료구조 학습 정리 이번엔 C++ 멀티스레드 프로그래밍에서 중요한 개념들인 Memory Model, Thread Local Storage, atomic, 그리고 Lock-Based 자료구조(스택/큐)를 공부했습니다. 1. 메모리 모델 (Memory Order) Memory Model (정책) 1) Sequentially Consistent (seq_cst) 2) Acquire-Release (acquire, release) 3) Relaxed (relaxed) (1) seq_cst (가장 엄격 = 컴파일러 최적화 여지 적음 = 직관적) - 가시성 문제 바로 해결! 코드 재배치 바로 해결! (2) acquire-release - 딱 중간! - release 명령 ..

멀티스레드 동기화와 비동기 처리: condition_variable & future 서버 개발에서는 멀티스레드를 다룰 때 반드시 스레드 간 동기화와 비동기 처리에 대한 이해가 필요합니다. 오늘은 'condition_variable'을 이용한 생산자-소비자 패턴 구현, 그리고 'future', 'promise', 'packaged_task'를 사용한 비동기 처리 방식에 대해 공부했습니다. 1. condition_variable핵심 개념- condition_variable은 한 스레드가 특정 조건을 충족했을 때 다른 스레드에게 알림을 보내는 동기화 도구입니다. - 일반적으로 mutex와 함께 사용하며, 생산자-소비자 구조에 적합합니다. 아래는 Producer 스레드가 데이터를 추가하고 Consume..

서버 개발에서 배우는 동기화 기법 서버 개발에서는 성능 최적화와 동기화를 위한 다양한 기법이 사용됩니다.이번 글에서는 volatile, SpinLock, Sleep, Event (Auto Reset Event / Manual Reset Event) 등의 학습한 내용을 정리합니다. int32 a=0;a = 1;a = 2;a = 3;a = 4;1. volatile: 컴파일러 최적화 방지volatile이란?- volatile 키워드는 컴파일러의 최적화를 방지하는 기능을 합니다. - 일반적인 코드에서 불필요한 대입 연산이 제거되지만, volatile을 선언하면 모든 연산이 실행됩니다. 예제 개념- 변수 a가 여러 번 대입되는 경우, 컴파일러는 불필요한 연산을 제거하여 최적화합니다. - 하지만 volat..

멀티스레드와 동기화 기법: 게임 서버와 병렬 프로그래밍 멀티스레드는 게임 서버와 같은 고성능 프로그램에서 필수적인 요소입니다.이번 글에서는 Web Server와 Game Server의 차이, 멀티스레드와 동기화 문제, Atomic과 Mutex, Deadlock의 위험과 해결법을 중심으로 학습한 내용을 정리합니다. 1. Web Server와 Game Server의 차이 Web Server (HTTP Server)- Web Server는 질의/응답 형태로 작동합니다. * ex) 테이크아웃 전문 식당처럼 요청에 대한 응답을 빠르게 처리.Game Server (TCP Server, Binary Server, Stateful Server)- Game Server는 실시간 상호작용(Interaction)을..

게임 개발에서 배우는 그림자 처리와 애니메이션 기법 게임 개발에서 그림자 처리, 지형 렌더링, 픽킹(Picking), 애니메이션(Skinning)은 사실적인 그래픽 구현과 상호작용을 위해 중요한 역할을 합니다.이번 글에서는 Shadow Mapping, Tessellation, Terrain, Picking, Animation(Skinning)과 관련된 개념과 원리를 정리해 보았습니다. 1. Shadow Mapping Shadow Mapping이란?- Shadow Mapping은 빛의 기준으로 앞에 물체가 있을 경우 그림자를 표현하는 기술입니다. - 그림자는 빛의 방향과 물체 간의 관계를 계산하여 생성됩니다. 그림자 품질 개선 - 그림자가 깨지지 않으려면, 그림자를 그리는 화면 크기를..

게임 개발에서 배우는 렌더링 기법과 최적화 개념 게임 개발은 복잡한 그래픽 요소를 효율적으로 처리하는 기술과 최적화 기법을 요구합니다.이번 글에서는 Frustum Culling, Quaternion, Orthographic Projection, 렌더링 기법, Compute Shader, Particle System, Instancing의 개념의 학습한 내용을 중심으로 정리합니다. 1. Frustum Culling Frustum Culling이란? - Frustum Culling은 절두체 영역 내에 있는 물체만 렌더링하는 기술입니다. - 렌더링할 필요가 없는 물체는 CPU에서 예외 처리하여 GPU 연산을 최소화합니다. - 이 과정은 성능 최적화에 큰 도움을 주며, 복잡한 3D 장면에서 필수적..

게임 개발에서 배우는 다양한 개념과 그래픽 처리 게임 개발에는 데이터 관리, 그래픽 처리, 좌표 변환 등 다양한 개념이 포함됩니다. 이번 글에서는 union, 좌표계 변환, 광원(Light)와 빛의 특징, 그리고 Normal Mapping 을 중심으로학습한 내용을 정리합니다. 1. 데이터 관리와 코드 구조 Union - union은 동일한 데이터를 여러 형식으로 접근할 수 있게 합니다. - 메모리를 효율적으로 관리할 수 있지만, 데이터 해석의 일관성에 유의해야 합니다. DirectX SimpleMath 헤더 - DirectX의 SimpleMath 헤더에는 좌표계 변환과 관련된 함수들이 포함되어 있습니다. - 단, 오른손 좌표계 를 기준으로 동작하므로, 부호 설정을 정확히 해야 합니다. ..