https://github.com/phw97123/LegendofSparta.git
GitHub - phw97123/LegendofSparta: TextRPG
TextRPG. Contribute to phw97123/LegendofSparta development by creating an account on GitHub.
github.com
개발 과정
처음 개인 과제를 받고 시작하기에 앞서 이전에 어떻게 시작하면 좋을지 분석한 내용을 바탕으로 진행하였다
1. 기본 세팅
- 필수구현의 메인 메뉴 화면, 상태창 화면, 인벤토리 화면을 구상하여 디자인 해보기
- 필수로 있어야 하는 Player, GameManger(게임 메인 메뉴 화면 관련), Item 등 더 깊게 생각해보면 나는 나중에 몬스터도 만들 생각이니까 상태를 관리하는 Status 클래스 만들기
2. 기본적으로 있어햐 하는 기능 구현
- 게임의 흐름에 맞게 화면 전환 하는 로직 구현
3. 추가 기능 구현
- 게임의 흐름에 맞게 각 화면에서 동작해야하는 기능 구현
+ 새로운 기능들을 구현할 때도 반복
예전에 분석해봤던 내용대로 하니까 더 쉽게 시작을 할 수 있게 되었다
튜터님이 말해주신 나만의 로직, 게임의 흐름대로 진행하기를 만들어가며 실천해보는 순간들이었다
어려웠던 점
- 문자열 맞추기
상태창이랑 인벤토리는 창을 여는 것 처럼 보이게 하기 위해서 박스는 그려서 그 안에 텍스트를 넣어서 구현 할 생각이었다 그래서 PadRight, PadLeft, string str = $"{변수명, -5) 등 문자열 포맷에 관련된 기능들을 공부하여 시도해보았는데 문자열 길이에 따라 테두리가 뒤로 가거나 앞으로 이동했다 열심히 연구한 끝에 문자의 크기가 달라서 잘 맞춰지지 않는 다는 것을 알았고 다른 방법을 생각하던 도중 팀원 분의 아이디어를 통해 테두리를 먼저 그리고 커서를 옮겨서 출력하는 방법을 통해 해결되었다
그래도 문자열 포맷 관련 기능은 테두리를 사용하지 않고 구현 했던 상점에서 사용하였다
- 시스템상의 오류
이건 TIL에도 썼던 내용이라 간단하게 적으면
콘솔창에서 사용하는 글꼴이 역슬래시를 지원하지 않아 원화표시로 나타났었고,
window11 설정에서 터미널을 기본 설정으로 해놓지 않아 콘솔창의 크기 조절이 불가능 했었다
더 나아가서..
게임 저장 기능과, 상점에서 강화를 하거나 뽑기를 하는 랜덤한 요소를 더 집어넣고 싶었는데 생각보다 시간이 촉박해서 구현할 수 없었다
후기
1년전쯤이었나 c++로 TextRPG를 만들었던 적이 있었다
그때는 프로그래밍을 아예 처음 배우는 상태였어서 굉장히 어려웠다고 느꼈었다 어디서 부터 시작해야하는지도 모르겠고
제대로 개념이 안 잡혀 있으니 결과물도 허접한 상태였었다 하지만 만들 수 있는 기간이 여유롭게 잡혀 있어서 이것저것 해본다고 상속도 해보며 시도를 많이 해본 기억이 난다
그때에 비해서 지금의 나는 결과물만 봐도 성장했다고 느껴진다
결과물 말고 개발 과정을 생각해보면 좀 더 능숙하게 기능을 구현하고, 만들 게임의 흐름을 생각하고 계획하여 구현할 수 있게 되었다 또, 지금 내가 알고 있는 개념에 대해서 확신을 가질 수 있었고 한층 더 나은 코드를 작성할 수 있었다
그동안 내가 무엇을 공부하고 있는지 잘 하고 있는건지에 대한 확신이 없었는데 이번 개인 과제를 통해 조금 느낄 수 있는 시간이 되었다 확실히 눈에 보이니까 굉장히 뿌듯하다
'개발일지' 카테고리의 다른 글
[C# 팀 프로젝트] TextRPG 확장 (0) | 2023.09.01 |
---|---|
[C# 문법 종합반] 4주차 과제 - TextRPG (1) | 2023.08.24 |
[C# 문법 종합반] 3주차 과제 - 스네이크 게임, 블랙잭 (0) | 2023.08.17 |
[C#문법종합반] 2주차 과제 - 틱택토 (feat.Console명령어) (0) | 2023.08.15 |
[미니프로젝트] 금쪽이를 찾아라! - 내 코드 복습, 팀 코드 이해 (0) | 2023.08.10 |