얼추 모양이 나왔습니다. ( 전과 유사한것 같지만 내부는 완전히 다릅니다. )
할 일 리스트는 많이 있습니다.
그래도 기본적으로 랜덤 맵을 생성하고
이동하고
전투하고
아이템을 먹고
장착하고
다음 층으로 올라갑니다.
대략적인 모습이 잡혔네요.
UI를 좀더 손보기 위해 메시지 로그창의 크기를 줄이고 장착 아이템을 표시할 겁니다.
그걸 위해 인벤토리를 손보고 있습니다.
인벤토리를 열어도 몹들은 계속 움직이게 하려고 합니다.
사용아이템, 장착 장비, 스크롤, 그리고 스킬 북 형태로 탭을 만들고 장착하고 나면, 스킬 전투를 구현할 예정입니다.
시각 효과나 애니메이션 효과를 넣어야 할지 모르겠습니다.
발사형 스킬을 어떻게 보여줄지
불타는 이미지를 어떻게 보여줄지
고민좀 해봐야 겠습니다.
간단하게 메시지 로그에 표시하는 것도 생각중입니다.
오늘 저녁쯤 이 내용들을 정리해서 GIT에 커밋하려고 합니다.
스킬 구현까지 완료되면 파이선에서 C++로 리팩토링할 지 결정해보겠습니다.
많은 생각이 드는 프로젝트입니다.
바이브 코딩을 하면서 100% 저작권을 확인할 수 없는 코드들이 분명히 이 프로젝트에 쓰였을 겁니다만 확인이 불가능합니다. AI에게 독점 코드는 제외하라고 명령할 수야 있겠지만 AI는 그것을 구분하지 못할 겁니다.
블랙박스 안에서 어떤 식으로 돌아가는지 감을 잡지 못하는 것도 있습니다.
그러니 배포할 때 라이센스 역시 결정을 못하겠습니다. ( 필요하려나 모르겠습니다만.. )
면책 사항을 추가해야 하려나 고민도 됩니다.
던전 크롤러
개요
이 프로젝트는 파이썬으로 제작된 클래식한 터널 기반의 로그라이크 던전 크롤러 게임입니다. 플레이어는 매번 무작위로 생성되는 던전을 탐험하고, 몬스터와 싸우며 아이템을 획득하여 캐릭터를 성장시켜야 합니다.
단축키
이동
- 상하좌우:
↑, ↓, ←, → 또는 k, j, h, l
- 대각선:
y, u, b, n
게임 플레이
- 인벤토리 열기/닫기:
i
- 전체 메시지 로그 보기:
m
- 아이템 줍기: 아이템(
*) 위로 이동
- 아이템 루팅: 몬스터 시체(
%) 위에서 r
- 전장의 안개(Fog of War) 토글:
v 또는 t
- 게임 저장 및 종료:
q
인벤토리
- 탭 전환:
a(아이템), b(장비), c(스크롤), d(스킬북), z(전체)
- 아이템 선택:
↑, ↓
- 장착/해제:
e
- 버리기:
r
- 퀵슬롯 등록 (아이템):
1 ~ 5
- 퀵슬롯 등록 (스킬):
6 ~ 0
아이콘 표시
| 아이콘 |
의미 |
@ |
플레이어 |
g, o, s 등 |
몬스터 (고블린, 오크, 스켈레톤 등) |
< |
현재 층의 시작 지점 |
> |
다음 층으로 가는 계단 (열림) |
X |
다음 층으로 가는 계단 (잠김) |
+ |
다른 방으로 통하는 문 |
* |
아이템 |
% |
몬스터의 시체 |
# |
벽 |
(공백) |
이동 가능한 바닥 |
게임 실행 방법
- 의존성 설치:
pip install readchar
- 게임 실행:
python3 dungeon/Start.py
현재 구현된 기능
- 절차적 맵 생성: 게임을 시작할 때마다 매번 새로운 구조의 던전 맵이 생성됩니다.
- 플레이어 시스템: 레벨, 경험치, HP, MP, 스태미나 등 기본 스탯 시스템이 구현되어 있습니다.
- 전투 시스템: 플레이어와 몬스터가 서로 공격을 주고받는 턴제 전투 방식입니다.
- 인벤토리 및 아이템:
- 다양한 종류의 아이템(소모품, 장비)을 획득하고 관리할 수 있습니다.
- 아이템을 퀵슬롯에 등록하여 쉽게 사용할 수 있습니다.
- 장비를 장착하여 캐릭터의 능력치를 강화할 수 있습니다.
- 몬스터: 각기 다른 능력치를 가진 여러 종류의 몬스터가 등장하며, 플레이어를 추격하거나 도망가는 등의 AI를 가집니다.
- 방 시스템:
- 메인 던전 맵 외에 숨겨진 방들이 존재합니다.
- 방에 입장하기 위해 열쇠가 필요할 수 있습니다.
- 전장의 안개 (Fog of War): 플레이어가 탐험한 지역만 밝혀져 시야가 제한됩니다.
- 게임 저장/불러오기: 현재 게임 진행 상황을 저장하고 나중에 이어서 플레이할 수 있습니다.
추가 예정 기능
- 스킬 구현: 스킬북을 획득하고 스킬에 등록하여 스킬을 쓸 수 있게 합니다.
- 직업 시스템: 지금 사용중인 스킬에 따라 직업이 결정됩니다. 결정된 직업에 따라 MP/HP/Stamina/ATT/DEF 등에 보정치가 붙습니다.
- 속성 시스템: 게임 안에 속성을 추가하고 몬스터와 아이템, 그리고 장비 등에 속성간 상관관계를 부여합니다. 속성에 따라 아이템, 몬스터 등에 추가 이름이 붙게 됩니다.
- 예를 들어 독 속성이면 공격시 지속 데미지를 줍니다.
- 독 속성의 몬스터라면 앞에 오염된, 감염된 등의 접두사가 붙습니다. 아이템, 장비 등에도 마찬가지로 적용됩니다.
- 속성에 따라 아이템, 몬스터의 색을 지정해줍니다.
- 등급 시스템: 속성과 관련없이 접두사를 하나 더 붙일 수 있게 만듭니다.
- 전설적인 / 막강한 / 등의 접두사가 붙습니다.
- 속성접두사 / 등급 접두사 / 몬스터 이름 등으로 표시합니다.
- 등급에 따라 몬스터 앞에 기호를 붙여 줍니다.
- 실시간 전투:
- 인벤토리나 메시지 로그를 봐도 계속 몬스터는 움직이며 주인공을 공격할 수 있게 바꿔줍니다.