- C#으로 제작되어 Console의 Text로 진행되는 Roll Playing Game입니다.
- 타이틀은 라비린스의 미궁(Maze of Labyrith)으로 미궁을 탐사하는 게임입니다.
- 개발 기간은 5일이며, 구현된 내용은 다음과 같습니다.
-
게임 시작 시 계정 확인
- 시작 시 세이브 폴더를 검색하고 존재하지 않을 시 폴더를 생성됩니다.
- 처음 저장하는 파일명을 적고 이후 프롤로그를 보여줍니다.
- 프롤로그 끝에는 캐릭터의 이름을 물으며 플레이어의 이름을 기록하는 것으로 세이브 파일이 생성됩니다.
-
게임 메인 화면
- 상태보기 = 상태창 표기가 되며 캐릭터의 스테이터스를 보여줍니다.
- 인벤토리 = 캐릭터가 소지하고 있는 장비를 볼 수 있는 곳입니다.
- 장비를 사용하는 버튼이 바로 활성화되어 있으며 사용 시 장비의 분류에 따라 장착/사용으로 변합니다.
- 미궁 탐사가기 = 자동으로 방어력을 계산해서 클리어해주는 곳입니다. 계층 형식으로 나뉘어져 있으며 각 층마다 난이도가 존재합니다.
- 각 층 별 난이도는 1층은 쉬움, 2층은 보통, 3층은 어려움으로 분류되어 있습니다.
- 난이도 별로 요구하는 방어력이 존재하며 캐릭터의 방어력이 그 방어력을 넘었을 때 던전을 무작위 체력을 깎고 클리어합니다.
- 방어력이 요구 방어력보다 낮을 경우 40% 확률로 탐사에 실패하며 체력의 절반이 깎이게 됩니다.
- 클리어 했을 경우 캐릭터의 공격력에 비례해서 최대 공격력의 2배만큼 추가 %로 보상을 받을 수도 있습니다.
- 미궁 보스방 탐사하기 = 이곳에서는 고블린킹과 용과의 혈투를 벌입니다. 아직은 챌린지 형식만 구현이 되어 있습니다.
- 플레이어가 먼저 턴을 잡게 되며 보스와 서로 번갈아가면서 한 대씩 때리는 턴제형 전투입니다.
- 플레이어는 특수하게도 20% 확률로 치명타가 발생하여 2배의 피해를 입힙니다.
- 보스와의 전투에서 이기면 체력이 증가하는 물약과 공격력이 증가하는 물약 중에 선택할 수 있습니다.
- 다만, 보스와의 승리로 얻은 물약의 효과는 게임이 꺼지면 효과가 만료됩니다.
- 플레이어가 먼저 턴을 잡게 되며 보스와 서로 번갈아가면서 한 대씩 때리는 턴제형 전투입니다.
- 저장하기 = 원하는 타이밍에 돈과 아이템을 저장할 수 있습니다.
- 다만, 아직 구현된 것이 적기 때문에 돈이 있어도 사용할 수가 없고 아이템을 보충할 수도 없습니다.
- 저장 방식은 원래 있던 데이터를 삭제하고 지금 사용하던 새 데이터를 생성해주는 방식입니다.
- 저장 여부를 물으며, 저장하지 않고 무르는 것 또한 가능합니다.
- 데이터는 json 파일 형식으로 저장이 되며 Newtonsoft.Json 를 using 하여 사용했습니다.
- 종료 = 게임을 종료합니다. 지금까지 한 것은 저장되지 않기 때문에 저장을 하고 싶다면 저장하기를 선택하고 종료해주시길 바랍니다.
- C# 태반
- json 일부
-
필수
- 게임 시작 화면
- 상태보기
- 인벤토리
-
선택
- 아이템 정보를 클래스 / 구조체로 활용해 보기
- 아이템 정보를 배열로 관리하기
- 던전입장
- 게임 저장하기
-
그 외
- 턴제형 전투
구현하고 싶은 건 많았지만 시간은 모자랐고 제 실력 또한 모잘랐기 때문에 전부 구현하지 못했습니다.
의외로 쉽다고 느꼈던 건 저장 방식인데, 데이터 파일을 생성, 관리, 저장을 하는 방식을 json으로 활용해서 그런지 꽤 쉽게 되었습니다.
구현하고 싶었지만 구현하지 못했던 건 역시 상점 시스템과 장비의 중복 착용 불가였는데요.
장비를 왼손과 오른손, 그리고 갑옷으로 나누어서 착용을 하게 하고 싶었기에 저장 데이터에 키를 준비해놨었지만 결국 사용하지 못한 채 끝나버렸습니다.
기본틀을 맞추겠다고 다른 것을 먼저하고 보니 정작 필요했던 상점 시스템과 장비 착용 시스템은 물론 갑옷에 대한 클래스조차도 만들지 못했던 것이 한으로 남았습니다.
가장 오래 걸렸던 건 던전 시스템이었습니다. 어떻게 구상을 할 지 고민을 한 게 생각보다 시간이 많이 흘렀던 것 같습니다.
이번 개인 과제를 통해서 혼자서 많은 것을 하기엔 시간이 너무도 부족하다는 것을 느꼈습니다.
그래도 좋은 경험을 했다고 생각하고 있고 무엇보다 팀 과제를 할 때에 도움이 많이 될 것 같습니다.
곧 하게 될 팀 과제가 시작된다면 제가 맡은 역할을 최선을 다하고 팀원분들과 소통과 협력을 중심으로 해보도록 하겠습니다!
감사합니다.