[20260108-13] OOP Project (설계)

SmartBear·2026년 1월 13일
post-thumbnail

OOP Project - OOP 기반 Console 게임 제작 프로젝트

목표

  • Global Goal: OOP 강의에서 들었던 많은 내용을 토대로, 콘솔 게임 제작해보기.
  • KPI
    • LSP 에 어긋나지 않는 다형성 설계.
    • Class 별 책임 역할 분배 잘 나누기.
    • Interface 활용.
    • 객체간 상호작용 경험.
    • Observer Pattern 사용해보기.
    • Stateful Design Pattern 사용해보기.

컨셉 설계

장르: 슈팅

코어 동작

  • 맵 내 적 섬멸.
  • 섬멸시 다음 Stage 진행.
  • 특정 버프 획득시 클리어에 도움.
  • 실패 조건
    • 플레이어 사망

필드

  • Stage 별 필드 모양 다름 -> 벽 위치, 나무 위치 등
  • 기본적으로 필드는 보여지는 화면보다 큼 (실 데이터 크기 대비 Rendering 은 작음)
  • 맵 바깥은 못 나가도록 고정
  • 아이템이 흩뿌려짐 (랜덤) -> 최대 1개만. 총 출현 보물박스가 1이상일 경우 보물박스 획득 후 차례로 나머지 발생.
  • 필드 크기 40x40
  • 랜더링 크기 25x15 (WxH)

플레이어

  • 사용자가 움직일 수 있는 객체
  • 수동으로 Bullet 발사 (동서남북만 가능)
  • 사정거리; 6 / 최대 10
  • 기본 데미지 1 / 최대 5
  • 기본 체력 1 / 최대 5

버프

  • 버프 상자를 획득하면 아래 아이템 중 랜덤으로 2가지 발생
    • 발생된 2가지 중 하나를 선택.
      • 데미지 1 증가
      • 최대 체력 1 증가
      • 체력 1 회복
      • 사정거리 1 증가

  • 플레이어를 찾아 플레이어에게 돌진
    • 매번 찾는 것은 어려울 듯 한데 어떻게 구현할지 생각해보기.
  • 시간 혹은 스테이지 별로 체력 증가
  • 시간 혹은 스테이지 별로 출현 개체수 증가
  • 초기 적 체력 : 2

UI

  • 플레이어 체력은 왼쪽위, 필드에 남아있는 적 / 전체 출현 가능한 적
  • 필드 랜더링 width 만큼
  • height 는 3~4 가 적당할 것으로 추측됨.
  • UI 는 항상 고정된 크기.
  • 스테이지 표기

스테이지

  • 총 5개 구성

스테이지 난이도

  1. 완전 평지. 보물 1. 적 5 (최초 1. 맵상 최대 3. lv1(5))
  2. 일부 나무. 보물 2. 적 7 (최초 1. 맵상 최대 4. lv1(3),lv2(4))
  3. 일부 나무 + 돌. 보물 2. 적 9 (최초 1. 맵상 최대 5. lv1(2),lv2(3),lv3(3))
  4. 일부 나무 + 돌. 보물 2. 적 12 (최초 2. 맵상 최대 5. lv1(1),lv2(2),lv3(6),lv4(3))
  5. 일부 나무 + 돌. 보물 4. 적 20 (최초 3. 맵상 최대 5. lv1(2),lv2(3),lv3(4),lv4(6),lv5(5))
profile
Python Dev with Infra -> Game Programmer

0개의 댓글