분류 전체보기 55

Gemini CLI vs Codex CLI 간단 후기 / Unreal Engine 에서 Gemini CLI와 Codex CLI 사용 후기

게임 개발을 하며 AI를 적극적으로 도입해보고 있다.요즘은 거의 바이브 코딩에 가까울 정도로 많은 작업을 AI에게 맡기고 있다. 그러다 보니 어떤 AI가 나와 잘 맞는지, 실제 작업 효율은 어떤지 직접 체험해보고 싶어 여러 회사의 AI 도구를 하나씩 사용해보는 중이다.가장 유명한 것은 아무래도 Claude Code인 것 같지만, 어쩌다 보니 Claude Code가 아닌 다른 AI 도구들을 먼저 사용해보게 되었다. Claude Code도 추후에 사용해보고 후기를 추가해볼 예정이다.이번 글은 Google의 Gemini CLI와 OpenAI의 Codex CLI를 직접 사용해본 간단한 후기다.사용한 요금제이번에 사용해본 요금제는 다음과 같다.Gemini CLI: Google AI ProCodex CLI: Cha..

GameDevelop/AI 2026.05.15

UnrealEngine 5.4 - 몬스터가 버벅이는 현상 / 길찾기 버벅이는 현상 / 네비메쉬 간섭 문제

몬스터 이동 버벅임 현상 해결하기: 네비메쉬 간섭 문제 언리얼 엔진으로 몬스터 AI를 구현하고 테스트하던 중, 몬스터가 이동할 때 버벅이는 현상을 겪었다. 처음에는 뭔가가 충돌해서 몬스터를 밀치는건가 싶었는데 아니었다.범인은 네비메쉬(NavMesh)였다. 언리얼 엔진에서는 콜리전(Collision)이 있는 오브젝트가 월드에 스폰되면, 기본적으로 네비메쉬에 영향을 주어 AI가 그 위를 걷지 못하도록 장애물 처리를 한다. 결과적으로 몬스터는 발밑에 떨어지는 작은 골드나 시체들을 '피해야 할 벽'으로 인식하고 계속해서 경로를 재계산 하느라 버벅였던 것이다. 내 경우에는 '골드'가 범인이었는데, 몬스터 처치 시 골드가 팝콘처럼 튀어나오는 방식이다.이 때, 골드가 공중에 떠있을 때는 벽으로 인식하면서 피하려고 ..

Suno 곡 길이 연장하기 / Extend 기능으로 곡 길이 늘리기 / Suno 노래 길이

Suno 곡 길이 연장하기 / Extend 기능으로 2분 -> 5분으로 늘리기 / Suno 노래 길이 Suno 에서 노래의 길이를 연장하는 법 포스팅입니다.Pro기준에서 작성되었으며 버전이나 리뉴얼 됨에 따라 동작이 다를 수 있음을 말씀드립니다. Remix/Edit에서 Extend를 선택해줍니다. 그럼 좌측에 이런 창이 뜨는데, 곡의 어디부터 새롭게 연장해줄지 정해줍니다.Create를 눌러줍니다. 그러면 Extend된 부분만 새로 나오는데,들어보고 마음에 드는 것을 골라서 Get Full Song을 눌러줍니다. 1:57 길이의 곡이 연장되어서 2:31초가 되었습니다.연장된 곡에서 Extend를 계속 해서 더 길게 할 수도 있을 것 같습니다. 다만 주의할 점.꼭 제대로 들어보셔야 ..

Tips 2026.04.04

Gemini CLI 설치 및 사용방법

1인 개발 중인 프로젝트에서 Gemini CLI를 사용해보려고 한다.하는 김에 설치 및 사용방법을 정리해본다. 여러 에이전트들이 있지만, 무료로 사용해볼 수 있는 Gemini CLI를 적용해보기로 했다. 1. 파이썬 다운로드아래 공홈에서 다운로드.자세한 설치 방법은 구글 검색이나 AI 통해 물어보면 잘 알려준다.https://www.python.org/ Welcome to Python.orgThe official home of the Python Programming Languagewww.python.org 2. Node.js 다운로드아래 공홈에서 다운로드.https://nodejs.org/ko/download Node.js — Node.js® 다운로드Node.js® is a free, open-s..

Tips 2026.03.18

UnrealEngine 5.4 - 랙돌 적용, 랙돌 적용 시 바닥 뚫음 현상

랙돌 적용몬스터가 죽을 때 랙돌 기능을 적용하여 타격감을 살리고자 한다.랙돌 적용 자체는 아주 간단했다. 적용하고 싶은 시점에 아래 코드를 호출하면 된다.GetMesh()->SetCollisionProfileName(TEXT("Ragdoll"));GetMesh()->SetSimulatePhysics(true)콜리전 프로필을 언리얼에서 제공하는 Ragdoll 프로필로 변경 후피직스를 켜주면 바로 흐느적거린다. 단, 아래와 같은 조건이 적용되어 있어야 동작을 할 것이다.스켈레탈 메시에 피직스 애셋이 적용되어 있어야 한다.피직스 애셋의 PhysicsType이 Kinematic이 아니어야 한다. 잘 적용되어있다면 피직스 애셋에서 시뮬레이트를 눌러 잘 흐느적거리는지 확인해보자. 랙돌 적용 시 바닥 뚫음 현상나는 ..

UnrealEngine 5.4 - 마우스로 뷰포트를 클릭해야 키 입력 이벤트가 발생 / 뷰포트 포커스 / 키 입력 이벤트 발생 안함

언리얼엔진으로 마우스 이동 및 WASD 이동을 구현하고 있는데,WASD 이동을 하려면 Play후에 뷰포트를 한 번 클릭해줘야 키 입력 이벤트가 발생을 하는 현상이 있었다. EnhancedInputComponent->BindAction(SetWASDMoveAction, ETriggerEvent::Triggered, this, &AMyHackSlashPlayerController::OnSetWASDMove);사용했던 키 입력 이벤트. 처음에는 코드 문제인가 했는데 그건 아니고에디터에서 플레이할 때에만 발생하는 문제이다. 이걸 해결하려면 편집 - 에디터 개인설정 - Play in Editor - 게임이 마우스 컨트롤 획득 을 켜주면 된다. 다만 이럴 경우 마우스가 뷰포트를 빠져나오려면 Shift + F1 ..

언리얼엔진의 애셋매니저(AssetManager)

언리얼엔진의 애셋매니저에 대해 정리. 언리얼 엔진의 AssetManager는 프로젝트 내의 애셋을 탐색, 로드, 관리하는 싱글톤 오브젝트이다.특히 런타임 중에 필요한 시점에 애셋을 동적으로 로드(비동기 로드)하는 데 핵심적인 역할을 한다. 아래와 같은 역할을 한다. 1. 애셋 검색 및 식별프로젝트 설정에 등록된 Primary Asset 들을 자동으로 검색하고, 이를 PrimaryAssetID를 통해 고유하게 식별한다. 2. 비동기 로딩FStreamableManager를 내장하고 있어, 비동기 로딩(Async Loading)을 통해 애셋을 백그라운드에서 로드할 수 있도록 한다. 3. 메모리 관리어떤 애셋이 로드되어 있는지 추적 및 더 이상 필요하지 않은 애셋을 메모리에서 해제하는 시점을 제어할 수 있다. ..

퀵 정렬 (Quick Sort)

1. 한 줄 정의퀵 정렬은 기준 원소(Pivot)를 기준으로 분할을 반복하는 분할 정복 정렬 알고리즘이다.2. 핵심 아이디어기준값(Pivot)을 하나 선택Pivot보다 작은 값은 왼쪽Pivot보다 큰 값은 오른쪽좌·우 부분 배열에 대해 재귀 반복3. 동작 과정 예시예시 배열[8, 3, 1, 7, 0, 10, 2]Pivot = 7[3, 1, 0, 2] 7 [8, 10]이후 각 부분 배열에 대해 동일한 과정 반복4. 분할(Partition) 과정이 핵심대표적인 Partition 방식1) Lomuto Partition (로무토 분할)마지막 원소를 Pivot구현 간단성능은 상대적으로 떨어짐2) Hoare Partition (호어 분할)양쪽에서 포인터 이동교환 횟수 적음실무에서 더 자주 사용5. 시간 복잡도평균O..

GameDevelop/Notes 2026.01.26

함수 포인터, 함수 객체, 람다

한 줄 요약함수 포인터는 주소,함수 객체는 객체,람다는 익명 함수 객체다. 함수 포인터 (Function Pointer)함수의 주소를 저장하는 포인터int Add(int a, int b) { return a + b;}int (*FuncPtr)(int, int) = Add;int result = FuncPtr(1, 2); 함수의 이름이 곧 주소이기 때문에, 함수의 이름을 포인터로 저장하거나 매개변수로 넘겨줄 때 함수 포인터를 사용하게 된다. 간편하지만 상태(누적값, 이전 호출 결과 등)를 가질 수 없기 때문에 주로 전역 함수나 static 함수가 사용된다. STL 알고리즘은 Callable을 요구하며, 함수 포인터도 사용할 수 있지만함수 객체나 람다가 더 일반적이다. STL에서 조건자로서 사용할 수..

GameDevelop/Notes 2026.01.20

렌더링 파이프라인

렌더링 파이프라인(Rendering Pipeline)1. 한 줄 정의렌더링 파이프라인은3D 공간의 정점 데이터를최종적으로 화면의 픽셀로 변환하는 전체 과정이다. 2. 전체 흐름 한눈에 보기로컬 스페이스 ↓월드 스페이스 ↓뷰 스페이스 ↓백페이스 컬링 ↓조명 ↓클리핑 ↓투영 ↓뷰포트 변환 ↓레스터라이즈 로컬 스페이스 (Local / Model Space)물체를 기준으로 한 좌표메시가 자기 자신을 원점으로 가짐월드 스페이스 (World Space)월드를 기준으로 한 좌표모든 오브젝트가 공통 기준 공간에 위치뷰 스페이스 (View / Camera Space)카메라 기준 좌표계카메라가 원점가상카메라를 기준으로 물체들을 보여주는데, 이 가상카메라에 회전값이 있거나 하면 투영할 때 등 번..

GameDevelop/Notes 2026.01.20