우선 이 프로젝트는 C# 강의를 듣고 C#문법에 대해 이해해보고 사용해보고자 시작하는 프로젝트이다.
기획은 chatgpt를 이용했다.
어떤 기능을 넣을지, 내용과 텍스트는 어떻게할지, 단계별로 어떤 기능을 구현할지지,
그리고 그 기능을 어떤 문법이나 특성을 활용하여 만들지 등을 조언받았다.
이 프로젝트의 목적은 오직 C#의 특성, 문법등을 직접 사용해서 게임에 적용해보고 이해하는데 있다.
또한 단계별로 직접코드 작성 후, gpt가 알려주는 테스트방식을 사용해볼 예정이다.
이후, 유니티로 기능을 옮기고 유니티에 맞게 조금씩 바꿔가며 유니티문법과 기능도 익히면서 텍스트 rpg에 Ui 등을 넣고
좀 더 게임답게 만들어볼 생각이다.
그 중, 첫 단계인 콘솔로 텍스트 rpg 기능을 구현해보려 한다.
우선 마을, 던전 이렇게 장소가 존재하며 던전에 가면 세 번의 몬스터와 마주하며 중간중간 탐색하여 아이템을 확률적으로 획득한다.
마지막으로 보스를 처치하면 게임종료다.
오직 코딩과 c#문법의 적용에만 집중하기 위해서 나머지는 chat gpt에게 맡겼다.
몇 단계의 미션을 설정하여 순서대로 진행해보기로 한다. 이 미션 또한 gpt에게 요청하여 어떤 기능에 어떤 문법이 사용되면 좋을지를 단계별로 설정해달라고 했다.
아래는 텍스트 RPG 프로젝트의 미션 리스트이다.
미션 1: 기본 구조와 클래스 설계
- 목표: 클래스와 객체를 사용하여 기본 게임 구조를 설계한다.
- 미션:
- Player 클래스에 이름, 레벨, 체력, 공격력을 프로퍼티로 추가하고, Attack 메서드를 만들어라.
- Monster 클래스에 이름, 체력, 공격력을 추가하고, TakeDamage 메서드를 만들어라.
- 플레이어와 몬스터가 서로 공격하며 체력을 깎는 간단한 로직을 작성해라.
미션 2: 리스트와 딕셔너리를 활용한 아이템 및 퀘스트 관리
- 목표: List와 Dictionary를 활용해 데이터를 관리한다.
- 미션:
- Item 클래스를 만들고, 이름과 효과를 프로퍼티로 추가해라.
- 플레이어의 인벤토리를 관리하는 List<Item>을 생성해라.
- 퀘스트 진행 상태를 관리하는 Dictionary<string, bool>을 만들어라.
- 아이템 사용과 퀘스트 완료 상태를 출력하는 코드를 작성해라.
미션 3: 제네릭과 인터페이스
- 목표: Generic과 Interface를 활용하여 재사용 가능한 코드를 작성한다.
- 미션:
- IGameCharacter 인터페이스를 만들고, 이름, 체력, 공격력 프로퍼티를 정의해라.
- Player와 Monster 클래스가 이 인터페이스를 구현하도록 수정해라.
- 제네릭 리스트를 사용해 여러 몬스터를 관리하고, 플레이어가 몬스터를 선택적으로 공격할 수 있는 코드를 작성해라.
미션 4: 델리게이트와 이벤트
- 목표: 델리게이트와 이벤트를 활용하여 게임의 상태를 관리한다.
- 미션:
- 체력이 0 이하가 되면 "게임 오버" 이벤트를 발생시키는 델리게이트와 이벤트를 만들어라.
- 플레이어가 공격할 때 "공격 이벤트"를 발생시키고, 콘솔에 공격 메시지를 출력해라.
- 몬스터가 죽으면 "몬스터 처치 이벤트"를 발생시켜라.
미션 5: 람다와 LINQ
- 목표: 람다와 LINQ를 활용해 데이터를 효율적으로 처리한다.
- 미션:
- 몬스터 리스트에서 체력이 가장 낮은 몬스터를 람다와 LINQ로 찾아라.
- 아이템 리스트에서 체력 회복 아이템만 추출하는 코드를 작성해라.
미션 6: 리플렉션을 활용한 동적 속성 접근
- 목표: 리플렉션을 활용해 클래스의 정보를 탐색하고 동적으로 조작한다.
- 미션:
- Player 클래스의 모든 프로퍼티와 값을 출력하는 리플렉션 코드를 작성해라.
- 리플렉션을 활용해 Player 클래스의 체력 값을 동적으로 수정하는 코드를 작성해라.
미션 7: 예외 처리와 에러 로그
- 목표: 예외 처리를 활용하여 안전한 게임 로직을 구현한다.
- 미션:
- 몬스터 리스트에서 없는 몬스터를 선택하려고 할 때 예외를 처리하는 코드를 작성해라.
- 아이템 사용 시, 아이템이 없으면 적절한 예외 메시지를 출력해라.
- 예외가 발생했을 때 에러 로그를 파일로 저장하는 코드를 작성해라.
이 미션들을 하나씩 해결해나가면서 문법을 이용해 더 나은 방법을 적용해나갈 것이다.
'텍스트 Rpg - C#' 카테고리의 다른 글
C#으로 만드는 텍스트 Rpg (5) (0) | 2025.02.05 |
---|---|
C#으로 만드는 텍스트 Rpg (4) (0) | 2025.02.03 |
C#으로 만드는 텍스트 Rpg (3) (0) | 2025.02.01 |
C#으로 만드는 텍스트 RPG (2) (0) | 2025.01.31 |
C#으로 만드는 텍스트 RPG (1) (0) | 2025.01.25 |