프로젝트 목록으로 돌아가기

Knight Quest

2026 개인 프로젝트 Unity 6, C#
Knight Quest title screen

프로젝트 소개

Knight Quest는 Unity 6로 제작한 2D 사이드스크롤 방치형 RPG입니다. 플레이어는 시작 화면에서 메인 스테이지로 진입한 뒤, 기사 캐릭터가 자동으로 이동하고 몬스터를 탐지해 전투를 진행합니다.

몬스터를 처치하면 골드와 경험치를 얻고, 획득한 재화를 사용해 스탯을 강화하거나 장비와 스킬을 성장시키는 구조입니다. 짧은 플레이에서도 성장 흐름이 보이도록 자동 전투, 보상, UI, 저장 시스템을 하나의 루프로 연결했습니다.

방치형 RPG란?

방치형 RPG는 플레이어가 모든 전투 조작을 직접 하지 않아도 캐릭터가 자동으로 전투와 성장을 이어가는 RPG 장르입니다. 핵심 재미는 반복 전투 자체보다 캐릭터가 계속 강해지는 흐름, 보상 획득, 스탯·장비·스킬 강화의 선택에 있습니다.

Knight Quest에서는 자동 이동, 적 탐지, 공격 타이밍, 사망 처리, 보상 지급이 자동 전투 루프 안에서 동작합니다. 플레이어는 전투 과정을 지켜보면서 성장 방향을 관리하고, 더 높은 스테이지로 나아가는 방식으로 게임을 진행합니다.

주요 기능

  • 플레이어와 몬스터의 자동 타겟팅, 공격, 피격, 사망, 보상 흐름
  • 스테이지 진행과 몬스터 스폰을 데이터 기반으로 관리
  • 레벨, 경험치, 골드, 스탯 강화, 장비 보너스, 스킬 성장 시스템
  • 스탯, 스킬, 장비 패널을 제어하는 게임플레이 UI 창 관리
  • ISaveable, SaveManager, SaveData 기반의 JSON 저장 및 불러오기
  • 경량 DIContainer를 활용한 런타임 의존성 등록과 주입

사용 기술

Unity 6 C# URP 2D ScriptableObject Object Pooling Auto Battle Stage System Reward System Stat Upgrade Skill System Equipment System JSON Save Save/Load Custom DI Balance Data VFX Playback UI Window System

개발 포인트

전투, 보상, 스테이지, 스킬, 장비, 저장 기능을 각각 분리해 유지보수하기 쉬운 구조로 구성했습니다. 몬스터와 스테이지 밸런스는 ScriptableObject와 데이터 클래스로 분리해 수치 조정이 코드 수정 없이 가능하도록 만들었습니다.

저장 시스템은 여러 시스템이 직접 파일을 다루지 않고 SaveManager를 통해 상태를 모으는 방식으로 설계했습니다. 이를 통해 플레이어의 성장 상태, 보유 재화, 장비와 스킬 정보를 일관된 JSON 데이터로 보존할 수 있습니다.