개발일지14 [The Outcast House] 3. 적 인공지능 추격하는 적이 필요했다.그리고 AI가 자연스럽게 세상과 상호작용 하길 원했다.우선 유튜브에서 비헤비어 트리 튜토리얼을 찾아 따라한 뒤 이곳저곳 돌아다니는 적을 만들었다. AI가 틈새를 뛰어넘거나 땅에서 떨어지며 이동하게 하기 위해서 Nav Link Proxy를 사용했다.적이 Nav Link Proxy에 도달하게 되면 어떠한 행동을 하게 할지 프로그래밍할 수 있다.다음 문서를 참고했다.https://dev.epicgames.com/documentation/ko-kr/unreal-engine/overview-of-how-to-modify-the-navigation-mesh-in-unreal-engine#3-%EB%82%B4%EB%B9%84%EA%B2%8C%EC%9D%B4%EC%85%98%EB%A7%81%E.. 2025. 2. 26. [The Outcast House] 2. 플레이어와 아이템 구현 이번에는 플레이어 캐릭터 기능 구현과 아이템 상호작용을 만들었다.플레이어먼저 플레이어 기능 구현이다.필요한 요구사항은 다음과 같다.앞을 밝힐 손전등1인칭 카메라움직일 때 카메라 흔들림 (Head bob)아이템을 넣을 인벤토리앞을 밝힐 손전등공포게임이면 손전등이 필요하다.이 게임에서는 스마트폰 불빛을 사용하기로 했다.카메라 앞에 스마트폰을 달고 그 밑에 라이트를 달아서 손전등을 만들었다. 스마트폰에 스프링암 컴포넌트를 달고 Rotation Lag를 체크하여 라이트가 뒤늦게 따라오는 효과를 구현했다. 1인칭 카메라해당 플레이어 캐릭터는 언리얼 1인칭 템플릿에 등장하는 기본 플레이어 캐릭터라 크게 손 볼 부분은 없었다.다만 개발 영상 촬영을 위해 부드러운 카메라 움직임이 필요하다는 생각이 들었다.게임패드를 사.. 2025. 2. 26. [The Outcast House] 1. 공포 게임 개발 시작 공포 게임을 개발하기로 했다.원래는 독특한 게임을 만들고 싶었는데, 사람들이 원하는 게임을 먼저 만들고 독특한 것을 시도해도 늦지 않을 것 같았다. 수개월 내의 빠른 개발을 목표로 했고, 다음의 순서로 개발을 진행하려고 한다.전체적인 기획 생각하기 (시작부터 엔딩까지)게임에 필요한 기술을 탐구하고 대충 구현해 보기세부 기획 생각하기게임 플레이 다듬기항상 머릿속에 있던 계획이지만 막상 개발할 때는 잘 지켜지지 않고 다른 길로 새는 경우가 많았다.이번에는 계획에 집중하며 작업하려고 한다. https://www.youtube.com/watch?v=TYFRkw_SN6w 게임의 줄거리는 도심 속에 홀로 서있는 폐건물을 탐험한다는 내용이다.배경은 한국이다. 골목과 도심을 고퀄리티로 구현해보고 싶은 욕심이 있었기 때.. 2025. 2. 24. [ChopChop] 5. 게임 최적화 하기 [2025-01-27]내 게임을 어떻게 최적화해야 하는가. 문제 해결을 위한 방안을 생각해 보았다.모델링의 폴리곤 개수를 줄인다.카메라가 안 움직이니까 LOD는 필요 없다.셰이더 복잡도 뷰에서 메가스캔 오브젝트가 전부 빨간색으로 보여서 재질에서 안 쓰이는 부분을 삭제해서 최적화를 해줬다.필요 없는 옵션(AO, 모션블러 등)을 껐다.그러나 여기까지 해도 눈에 띄는 프레임 향상이 있지 않았다. 씬에는 풀이 많다. 그림자도 생성한다. 보통 식생 그림자가 성능을 많이 잡아먹기 때문에 그림자 옵션을 꺼 놓는다. ChopChop의 경우 풀의 1/3만 그림자를 드리우고 있고, 전부 꺼버리면 시간 변화에 따른 그림자가 없어지기 때문에 씬이 재미 없어진다. 그래서 Foliage의 Density를 설정을 통해 조절하도록 .. 2025. 2. 18. [ChopChop] 4. 게임 출시하기 [2024-12-29]스팀덱에 넣어서 돌려봤다. 언리얼 특징인지 프레임이 매우 잘 안 나왔다… 60프레임도 될까 말까 했다. 다른 유니티 3D게임이나 둠을 돌려보면 90프레임은 가볍게 찍던데 내 게임은 왜 그럴까?테스트를 하고 ScreenPercentage옵션을 넣었다. 렌더링 해상도를 낮추고 TSR이나 스팀덱의 FSR을 사용하게 하려고 한 것이다. 나중에 알게 되었지만 TSR 자체가 프레임을 많이 잡아먹는 원흉이었다… 업적 관련한 문제가 있어 해결했다.내 게임은 나무 1000개를 패면 업적이 달성된다. 그리고 일정 시간이 지날 때마다 통계를 저장하고 있다. 통계를 저장해야 업적이 달성되었는지 확인이 된다.그런데 만약 통계 저장 시간이 지나기 전에 1000개를 팬다면? 게임상에서는 1000개 팼다고 하지.. 2025. 2. 16. [ChopChop] 3. SDK 적용 [2024-10-13]업적을 관리하기 위해 플랫폼의 SDK를 넣어야 했다.이 SDK의 함수를 통해 통계 설정, 업적 해금 등의 작업을 진행할 수 있다.언리얼 엔진은 OnlineSubSystem 플러그인을 통해 해당 작업을 쉽게 할 수 있도록 하고 있다. 그런데 내가 직접 해보니 그렇게 쉽게 해결될 문제가 아니었다.과정을 간단히 요약하자면1. OnlineSubSystem을 사용해 봤으나 기능에 제약이 많다. 예) IndicateAchievementProgress (업적 진행상황을 띄워주는 스팀의 기능) 같은 독특한 기능은 OSS로 구현할 수 없다.2. 스팀, 에픽 각 플랫폼마다 같은 기능을 제공하는 경우가 있다. (업적 해금, 통계 설정 등 공통적으로 들어갈 수 있는 내용) 하지만 플랫폼 간 성격이 다.. 2025. 2. 16. 이전 1 2 3 다음