2026/05/13 10

Oblivio 디버그 및 치트 시스템: 효율적인 테스트 환경 구축

게임이 하드코어 해질수록 테스트가 힘들어지기 때문에 후반부 맵이나 보스 기믹을 테스트해야 하는데, 배터리가 모자라서, 혹은 몬스터에게 죽어서 1층부터 다시 파밍 하는 것은 엄청난 시간 낭비였다. 이를 해결하기 위해 나만의 커스텀 치트 시스템을 엔진 깊숙이 심었다.1. 개발자용 콘솔 명령어(UFUNCTION(Exec)) 도입언리얼 엔진의 강력한 기능 중 하나인 Exec 매크로를 AOblivioCharacter 클래스에 도입했다.이를 통해 게임 플레이 도중 ~ (백틱) 키를 눌러 콘솔 창을 열고, 코드에 선언해둔 함수 이름을 타이핑하면 즉시 해당 기능이 토글(Toggle)되도록 만들었다. 별도의 디버그 UI를 띄우지 않아도 되어서 접근성이 매우 뛰어나다.2. 3대 치트 시스템 구현 로직가장 테스트를 방해하는..

카테고리 없음 2026.05.13

Oblivio 인벤토리 시스템 개발: 생존의 무게를 담다

파밍과 크래프팅, 그리고 열쇠를 통한 탈출까지. 이 모든 시스템이 맞물려 돌아가려면 아이템을 담고 관리할 튼튼한 '가방'이 필요하다. 단순히 아이템을 배열에 넣는 것을 넘어, 생존 호러의 템포를 해치지 않는 모듈화 된 UOblivioInventoryComponent를 개발했다.1. 인벤토리 데이터 구조(FInventorySlot) 설계아이템의 정보가 파편화되지 않도록 FInventorySlot이라는 구조체(Struct)를 정의하여 하나의 슬롯이 독립적인 데이터를 갖도록 만들었다.슬롯 안에는 ItemID, ItemName, ItemIcon, MaxStack(최대 겹침 수량), ItemType(음식, 자원, 열쇠 등), 그리고 현재 Quantity를 담았다.구조체를 활용하니 인벤토리 UI를 띄울 때 해당 슬..

카테고리 없음 2026.05.13

Oblivio 문 상호작용 및 레벨 이동

폐병원의 9층부터 시작해 1층, 그리고 지하로 내려가는 여정을 시스템적으로 구현했다. 레벨(맵)이 바뀌어도 플레이어의 몰입과 생존 상태가 끊어지지 않게 만드는 것이 핵심이었다.1. 문(ADoorBase) 상호작용 및 열쇠 검증 시스템플레이어 캐릭터가 상호작용 키를 누르면 레이캐스트를 쏴서 맞은 액터가 ADoorBase인지 확인하고 InteractDoor() 함수를 호출한다.문이 열리는 조건을 체크하기 위해 GameMode에서 플레이어가 수집한 열쇠 개수(CollectedKeys)와 층별 요구 개수(RequiredKeys)를 비교하여 다음 층 이동(NextFloor)을 트리거한다.2. 게임 인스턴스(GameInstance)를 통한 데이터 보존언리얼 엔진은 맵(Level)이 이동하면 플레이어 캐릭터를 포함한..

카테고리 없음 2026.05.13

Oblivio 아이템 설계 및 개발: 어둠 속의 파밍과 시각적 피드백

플레이어가 생존하기 위해 끊임없이 맵을 뒤져야 하는 만큼, 파밍(Farming)의 편의성과 아이템 상호작용 시스템은 생존 호러 게임의 쾌적함을 결정짓는 중요한 요소다.1. 상호작용 가능한 아이템 베이스(AOblivioItemBase) 구축모든 아이템의 부모가 되는 베이스 클래스를 설계했다.접근 감지: 아이템에 USphereComponent를 부착하여 일정 반경 내로 플레이어가 들어오면(OnSphereOverlap) 감지하도록 구현했다.감지된 아이템은 플레이어 캐릭터의 SetNearbyItem 함수를 통해 등록되며, 이후 플레이어가 상호작용 키(E)를 누르면 레이캐스트를 통해 아이템을 획득하는 구조로 연결했다.2. Custom Depth를 활용한 아이템 외곽선(Outline) 효과가장 공을 들인 부분이다...

카테고리 없음 2026.05.13

Oblivio 크래프팅 시스템 설계 및 개발: 생존을 위한 장애물 크래프팅

도망치는 것만으로는 살아남을 수 없다. 맵에 널린 자원을 활용해 몬스터의 경로를 차단할 장애물을 세우는 UOblivioCrafting 컴포넌트를 본격적으로 개발했다. 이 과정에서 C++ 객체지향의 중요성과 시각적 피드백(UX)의 힘을 크게 배웠다.1. 크래프팅 컴포넌트 모듈화 및 레이캐스트(Raycast) 배치크래프팅 로직이 캐릭터 클래스를 무겁게 만들지 않도록, UOblivioCrafting이라는 별도의 액터 컴포넌트(Actor Component)로 완전히 모듈화 했다.아이템 선택: 플레이어가 키보드 1~7번을 누르면 컨트롤러에서 입력값(Magnitude)을 받아 SelectObstacle()로 넘기고, 미리 설정된 CraftingRecipes 배열에서 설치할 장애물 클래스를 불러온다.실시간 미리 보기..

카테고리 없음 2026.05.13

Oblivio 캐릭터 클래스 설계 및 개발: 뼈대 세우기

시스템 기획이 끝난 후, 플레이어의 분신이 될 AOblivioCharacter 클래스와 이를 조종할 AOblivioCharacterController를 세팅했다. 탑다운(Top-Down) 뷰라는 시점의 특성과, 다양한 생존 도구를 다뤄야 하는 입력(Input)의 확장성을 고려하여 뼈대를 잡았다.1. 베이스 컴포넌트 및 탑다운(Top-Down) 시점 설계캐릭터가 폐병원의 복도를 내려다보는 으스스한 뷰를 연출하기 위해 카메라 시스템을 부착했다.SpringArmComponent를 900.f 길이로 설정하고, X축 방향으로 -65도 꺾어 캐릭터를 위에서 내려다보는 전형적인 탑다운 시점을 구현했다.이 시점에서는 벽 뒤에 있는 캐릭터나 몬스터가 가려질 수 있으므로, 카메라와 캐릭터 사이에 있는 벽을 투명하게(Dit..

카테고리 없음 2026.05.13

Oblivio 컨텐츠 설계: 이야기의 파편, 층별 메멘토

캐릭터의 생존 시스템과 몬스터의 기믹이 어느 정도 형태를 갖추고 "플레이어가 무서운 몬스터를 피해서 굳이 어두운 방 구석구석을 뒤질 이유가 있을까?" 라는 고민이 생겼다.단순히 다음 층으로 가는 열쇠만 찾고 스피드런(Speedrun) 하듯 도망치는 게임이 되지 않도록, 플레이어의 탐험 욕구를 자극하고 다중 엔딩을 가르는 핵심 수집 요소인 '메멘토(Memento, 유품)' 시스템을 구체화했다.1. 수집 요소(메멘토)의 기획적 의도'망각(Oblivio)'이라는 게임의 테마에 맞게, 병원 곳곳에 버려진 누군가의 기억과 유품들을 배치했다.시스템적 구현: 복잡한 인벤토리 아이템으로 처리하기보다, 상호작용 시 ActorHasTag("Memento")를 검사하여 곧바로 획득되도록 처리했다. 획득한 메멘토는 GameM..

카테고리 없음 2026.05.13

Oblivio 시스템 설계: 몬스터와 캐릭터의 상호작용

기획을 마친 후 가장 먼저 착수한 것은 플레이어 캐릭터(AOblivioCharacter)의 실질적인 생존 메커니즘을 C++로 구현하는 것이었다. 어두운 폐병원이라는 설정에 맞게, 플레이어는 빛과 소리를 통제해야 하며 끊임없이 줄어드는 자원과 싸워야 한다.1. 플레이어 생존 스탯 기획 및 구현기본적인 체력(HP) 외에, 플레이어를 압박할 세 가지 생존 스탯을 도입했다. 바로 허기(Hunger), 갈증(Thirst), 그리고 손전등 배터리(Battery)다.이를 구현하기 위해 언리얼 엔진의 Tick 함수 내부에서 매 프레임 호출되는 UpdateStatus(float DeltaTime) 함수를 설계했다.프레임 독립적 차감: 기기 사양에 따라 스탯이 줄어드는 속도가 달라지지 않도록 DeltaTime을 곱하여 일..

카테고리 없음 2026.05.13

Oblivio 기획

스토리천재적인 실력을 갖췄으나 윤리 의식이 결여된 의사 **알프레드 드레비스(Alfred Drevis)**은 정신병원 최상층에서 깨어납니다. 그의 앞에는 불법 생체 실험으로 유린당한 환자들의 원망이 서린 기괴한 복도가 펼쳐집니다. 00은 9층부터 1층까지 이어진 아홉수의 관문을 지나며 자신이 저지른 죄악의 실체들과 마주합니다. 눈을 빼앗긴 자, 소리를 잃은 자들이 주인공을 쫒으며, 그는 손전등의 빛으로 그들의 움직임을 묶어 생존을 도모합니다. 이곳의 괴물들은 00 감옥에서 꾸는 악몽이자, 그가 죽인 피해자들의 망령입니다. 괴물을 죽일 때마다 그들의 고통이 담긴 기억파편이 00의 뇌리를 스치며 사라졌던 진실이 복원됩니다. 빛은 길을 비추는 동시에 외면하고 싶었던 추악한 과거 선명하게 투영하는 낙인이 됩니다..

카테고리 없음 2026.05.13

Oblivio 프로젝트 기획 초안: 어둠 속의 생존, 그리고 탈출

본격적인 엔진 세팅과 코딩에 들어가기 전, 머릿속에 맴돌던 생존 호러 게임의 코어 아이디어를 구체화하는 시간을 가졌다. 이번 3D PC 게임 프로젝트의 가제는 'Oblivio(망각)'. 단순한 공포를 넘어, 플레이어가 스스로 생존의 길을 개척해야 하는 하드코어 한 시스템을 녹여내는 것이 목표다. 이번 프로젝트에서 처음으로 제대로 전체 기획과 조장을 맡게 돼서 기대된다.1. 프로젝트 개요 및 코어 게임루프 설계우리 게임의 핵심 무대는 빛이 닿지 않는 기괴한 폐병원이다. 플레이어는 이 억압적인 공간에서 살아남아 아래층으로 계속해서 내려가야 한다.게임을 관통하는 코어 게임루프(Core Game Loop)는 다음과 같이 설계했다.탐색과 파밍: 칠흑 같은 어둠 속에서 손전등 하나에 의지해 맵을 뒤진다.생존의 압박..

카테고리 없음 2026.05.13