K Project

혁신적인 게임 플레이와 독특한 아트 스타일이 결합된 실험적 게임 프로젝트

프로젝트 개요

K Project는 팀 개발로 진행된 2D RPG 슈팅 게임으로, Unity 2D를 기반으로 한 클라이언트와 별도의 서버 애플리케이션으로 구성되어 있습니다. 슈팅 게임 장르의 액션성에 캐릭터 성장과 탐험 요소를 결합하여, 플레이어가 세계를 탐험하고 타임 어택 미션을 수행하며 캐릭터를 성장시키는 재미를 제공합니다.

장르
2D RPG 슈팅 게임
개발 언어
C, C++, C#, MySQL
개발 기간
10개월
시작 일자
2024.01.06
지원 플랫폼
PC
개발자
서정현, 이건이, 최재호

주요 특징

다이나믹한 슈팅 전투

빠른 템포의 2D 슈팅 액션과 전략적 접근이 필요한 보스전을 경험하세요. 다양한 무기와 스킬을 활용하여 적을 물리치고 난이도 높은 전투를 즐겨보세요.

심층적인 캐릭터 육성

다양한 캐릭터 성장 시스템을 통해 자신만의 플레이 스타일을 구축하세요. 맞춤형 장비 커스터마이징으로 고유한 전투 경험을 만들어보세요.

광활한 세계 탐험

다채롭고 독특한 지역으로 구성된 넓은 2D 세계를 탐험하세요. 숨겨진 보물과 비밀 장소를 발견하고 흥미로운 NPC들과 교류하며 풍부한 스토리를 경험하세요.

기술 사양

개발 도구

  • Unity 2022.3.16f1
  • Visual Studio
  • Visual Studio Code
  • Ubuntu Server
  • Oracle Database

기술적 특징

  • 장비 시스템과 능력치 시스템 간의 상호작용
  • 다양한 무기와 장비 시스템
  • 다양하고 고급적인 UI/UX, 캐릭터와 맵 디자인
  • 실시간 멀티플레이어 기능과 데이터 베이스 연동

조작 방법

이동 조작법
A
왼쪽으로 이동
D
오른쪽으로 이동
SPACE
점프
상호작용
E
플레이어 능력치 확인
F
상호작용
I
지도 (맵) 열기
V
인벤토리 열기/닫기
추가 조작
TAB
무기 변경
SHIFT
달리기
마우스 조작
Mouse Left
공격, 음식 상점 스크롤, 무기 위치 이동
Mouse Wheel
미니맵 배율 조절
Mouse Right
음식 상점 구매, 대화

구현 기능 직접 구현

아래의 모든 기능은 본인이 직접 설계 및 개발한 주요 시스템입니다.

🔐 인증 & 사용자 시스템

로그인 & 계정 관리

  • • 게임 시작 후 아무 키로 로그인창 진입
  • • ID 존재하지 않음: "Enter ID..." 메시지
  • • 비밀번호 불일치: "Password does not match..." 메시지
  • • Register 버튼으로 계정 등록
  • • 비밀번호 확인 검증 시스템

멀티플레이어 시스템

  • • 실시간 다른 플레이어 위치 표시
  • • 상대 플레이어 반투명 렌더링
  • • 직업 변경 실시간 동기화
  • • 스테이지별 플레이어 분리 시스템
  • • 보스전 시 다른 플레이어 숨김
  • • 서버에서 다른 플레이어의 모습 실시간 표시 (외부 플레이어 동기화)

👤 캐릭터 & 직업 시스템

직업 선택 & 변경

  • • Costume 직업 선택 기능
  • • 좌클릭으로 직업 선택
  • • 스페이스바로 직업 변경
  • • 3가지 직업: 무투가, 검사, 마법사
  • • 각 직업별 고유 공격방식 & 능력치

능력치 & 스탯 시스템

  • • F키로 스탯 설정 UI 진입 (마을 왼쪽 끝)
  • • 마우스 스크롤로 UI 탐색
  • • 레벨당 6개 능력치 중 3개 선택 가능
  • • Sign 버튼: 사인 이펙트 + 포스트프로세싱 깃털 파티클
  • • 왼쪽 버튼으로 설정 취소
  • • 설정 시 즉시 능력치 반영 (체력바 증가 등)
  • • 스탯 UI 수평 스크롤 기능 (좌우 이동으로 능력치 탐색)

6개 핵심 능력치 시스템

Anger

공격력 증가

Haste

이동 속도, 공격 속도 증가

Patient

방어력, 쉴드 (체력바 회색 보호막)

Mystery

치명타 확률, 회피 확률

Greed

최대 체력 증가

Craving

강인함

기존 세부 능력치
  • • 대쉬시 추가 데미지
  • • 치명타시 추가 데미지
  • • 장전 감소 시간
  • • 방어 확률
  • • 추가 고정 피해

🎒 인벤토리 & 장비 시스템

인벤토리 관리

  • • V키로 인벤토리 열기/닫기 토글
  • • I키로 지도 (맵) 열기
  • • E키로 플레이어 능력치 상세 확인
  • • 12가지 세부 능력치 실시간 표시
  • • 장비 간 위치 자유 교환
  • • 빈 공간으로 자유 이동

장비 제한 시스템

  • • 두손검/지팡이 소지 시 한손검 제한
  • • 반지 등 액세서리 교환 시스템
  • • 능력치 실시간 반영
  • • 장착된 장비 판매 제한
  • • 자동 장착 vs 인벤토리 이동

🛒 상점 & 거래 시스템

장비 상점

  • • F키로 NPC 대화창 진입
  • • 스페이스바로 대화 스킵/진행
  • • 장비 상점 UI + 인벤토리 동시 표시
  • • 아이템 클릭 시 정보 & 가격 표시
  • • 돈 부족 시 구매 불가

구매 & 판매

  • • 구매 성공 시 코인 UI & 소비 금액 표시
  • • 구매 후 즉시 장착 또는 인벤토리 이동
  • • 우클릭으로 아이템 판매창 표시
  • • 판매 버튼으로 아이템 판매
  • • 장착된 장비는 판매 불가

음식 상점 시스템

  • • 랜덤 5가지 음식 중 선택
  • • 좌클릭 선택, 우클릭 구매
  • • 허기량에 따른 구매 제한
  • • 음식 섭취 시 능력치 상승
  • • 다음 전투 진행 시 허기량 5 감소

🏆 진행 시스템

보상 & 진행

  • • 보스전 승리 시 상자 생성
  • • 노말~레전더리 등급 무기 랜덤 획득
  • • 탐험 시간, 경험치, 장비 획득 결과
  • • Enter키로 마을 복귀
  • • 1~3 스테이지 동일 방식 진행

🗺️ 종합 UI 시스템

내비게이션 UI

  • • Minimap.cs: 미니맵 시스템
  • • SceneMap.cs: 씬 맵 관리
  • • CurrentSceneNameUI.cs: 현재 씬 표시
  • • 마우스 휠 배율 조절
  • • 실시간 위치 추적

인벤토리 UI 시스템

  • • Inventory.cs: 메인 인벤토리 관리
  • • InventoryPosition.cs: 아이템 위치 관리
  • • MoveInventory.cs: 아이템 이동 로직
  • • 드래그 앤 드롭 상호작용
  • • 실시간 위치 교환 시스템

상점 UI 시스템

  • • EquidStore.cs: 장비 상점 메인
  • • EquidStoreItem.cs: 상점 아이템 관리
  • • SaleItem.cs: 아이템 판매 시스템
  • • 가격 표시 및 구매 확인
  • • 코인 UI 및 거래 피드백

대화 & 상호작용 UI

  • • Dialog.cs: 대화 시스템
  • • ChatNPC.cs: NPC 채팅 관리
  • • UIOpen.cs: UI 요소 활성화
  • • UIOpenToKeyBoard.cs: 키보드 기반 UI
  • • Status.cs: 상태 추적 시스템

로딩 & 씬 전환 시스템

  • • Loading.cs: 메인 로딩 화면 관리
  • • LoadingProcessing.cs: 로딩 프로세스 처리
  • • 비동기 씬 로딩 UI
  • • 포스트 프로세싱 시각 효과
  • • God Ray 파티클 시스템
  • • 스테이지별 분리 로딩 최적화

🔧 고급 기술 시스템

플레이어 상태 관리

  • • OnlinePlayer.cs: 멀티플레이어 상태 관리
  • • PMove.cs: 플레이어 이동 메커니즘
  • • State.cs: 플레이어 상태 머신
  • • EquipmentState.cs: 장비 상태 추적
  • • AbilityTempState.cs: 임시 능력 상태

보안 & 암호화

  • • StringEncrypt 폴더: 문자열 암호화 시스템
  • • 플레이어 데이터 보호
  • • 네트워크 통신 보안
  • • 치팅 방지 메커니즘

Unity Editor 확장

  • • Editor 폴더: 커스텀 Unity 에디터 도구
  • • 개발 생산성 향상 도구
  • • 자동화된 게임 데이터 관리
  • • 디버깅 및 테스팅 지원

모듈식 아키텍처

  • • Building: 건물/구조물 시스템
  • • Monster: 적 AI 및 행동 패턴
  • • Stage: 스테이지 관리 시스템
  • • Utill: 유틸리티 및 헬퍼 클래스

🖥️ 서버 & 데이터베이스

서버 핵심 시스템

  • • Login.cs: 사용자 인증 및 로그인 처리
  • • MultiPlay.cs: 멀티플레이어 로직 관리
  • • SaveSystem.cs: 데이터 영속성 및 저장
  • • MainTheadAction.cs: 메인 스레드 작업 관리
  • • Oracle 데이터베이스 연동
  • • TCP/IP 기반 서버 통신

서버 최적화

  • • 스테이지별 플레이어 데이터 전송
  • • 다른 스테이지 플레이어 숨김
  • • 보스전 시 다른 플레이어 비표시
  • • 실시간 위치 & 행동 동기 화