Skip to content

Kim-minseok123/ProjectRAS

Repository files navigation

[Unreal Engine 5] Dungeon Crawler Portfolio

목차

소개

1 2 3 4 5 6 7 8 9 10 11 12

< 게임 플레이 사진 >

  • Unreal Engine 5 던전 크롤러 포트폴리오 입니다.

  • 게임 개발자로서 언리얼 엔진에 공부하고자 시작된 포트폴리오입니다.

  • 현재 일부 유로 에셋으로 인해 소스코드와 일부만 공개되어 있습니다.

  • 개발 기간: 2025.02.10 ~ 2024.07.29 ( 약 6개월 )

  • 개발 인원 : 1인

  • 형상 관리: Git SourceTree


개발 동기

최근 게임 업계에서 언리얼 엔진의 활용도가 점점 높아지고 있는 흐름에 맞춰,
언리얼 엔진 5를 활용한 C++ 기반 게임 개발 역량을 쌓기 위해 이 프로젝트를 시작했다.

언리얼 엔진의 구조와 워크플로를 깊이 이해하는 것을 목표로, 전체 구현의 90% 이상을 C++로 작성하고
필요한 부분에 한해 블루프린트를 곁들여 효율적으로 개발하는 방식을 연습했다.

장르로는 던전 크롤러를 선택하여, 전투 시스템을 포함한 핵심 게임 요소를 가능한 한 모두 구현하고자 했다.
플레이어 이동, 몬스터 AI, 전투 판정, 패링, 맵 생성 등
실제 게임 제작 과정에서 필수적으로 요구되는 시스템을 직접 설계하고 구현하며,
언리얼 엔진에서의 C++ 프로그래밍과 블루프린트의 장단점을 함께 체득하는 것을 목표로 했다.


개발 환경

  • Unreal Engine 5.4.4

  • Visual Studio 2022


🛠️ 사용 기술

🎥 카메라 & 애니메이션 전환

  • 전투 모드와 일반 모드에 따른 카메라 및 애니메이션 전환 시스템 구현
    • 전투 모드일 때와 일반 모드일 때, 카메라 움직임과 캐릭터 애니메이션을 각기 다르게 설정해 자연스러운 전환을 구현

🥋 콤보 시스템

  • 플레이어 콤보 컴포넌트 제작
    • 현재 상태에 따라 입력값(플레이어 키 입력)에 맞춰 콤보 어택을 실행하도록 구성
    • DataAsset을 사용해 입력과 콤보 전이 관계를 저장, 해당 데이터만 수정하면 콤보 추가나 변경이 가능하도록 설계

🛡️ 패링 시스템

  • 정확한 방어 판정에 따른 패링 구현
    • 적의 공격을 정확히 막으면 주변 적을 밀쳐내고, 타이밍이 빗나가면 스태미나를 소모하도록 구현

🗺️ 절차적 맵 생성

  • BFS 알고리즘 기반 절차적 맵 생성
    • 매 판마다 랜덤하게 맵과 경로를 생성하고, 이에 맞춰 미니맵과 월드맵을 자동 생성

🤖 몬스터 AI

  • 다양한 몬스터 AI 구현
    • 일반 몬스터는 상황별 행동 패턴을 설정하고,
    • 보스 AI는 점수제 로직(플레이어와의 거리, 공격 쿨타임, 체력 등을 종합 평가)과 비헤이비어 트리를 활용해 최적의 행동을 선택하도록 설계

⚔️ 전투 판정

  • LineTrace 기반 무기 공격 판정 구현
    • 플레이어, 몬스터 무기의 시작 지점과 끝 지점을 하나의 선으로 이어, 해당 선에 닿은 물체에 데미지를 주는 방식으로 판정
    • 공격 몽타주에서 NotifyState를 활용

📄 데이터 관리

  • Data Asset 기반 게임 데이터 관리
    • 체력, 공격력, 이동 속도 등 주요 능력치를 Data Asset으로 관리
    • 코드 수정 없이 Data Asset 값만 변경해 밸런스를 조정하거나 새로운 몬스터를 손쉽게 추가할 수 있도록 설계

개발 과정

연습

본작


플레이영상

https://youtu.be/gt7QqVNnY90

게임 다운로드

https://drive.google.com/file/d/1AxTOIpDtvCT0OZgcXggSW6w8towLR21f/view?usp=sharing

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages