설계

  • 프로젝트 기간 : 2024.12.23 ~ 2025.01.02

  • 목표

    1. 서버와 클라이언트를 연결해 데이터를 검증

    2. 팀 프로젝트를 통해 깃허브 사용, 회의와 같은 팀업 경험 쌓기

첫 회의

  • 기본 프로젝트를 분석하여 프로젝트의 구현목표 지점을 짚고, 가시화

게임 진행 방식

  • 일정 시간마다 스테이지의 스폰 수에 의해 몬스터가 생성된다

  • 몬스터는 기지를 향해 정해진 이동속도로 이동한다

  • 스테이지의 스폰된 모든 몬스터를 죽이면 스테이지가 증가한다

  • 스테이지를 구분해서 몬스터가 스테이지에 따라 강해진다

  • 플레이어는 골드를 사용하여 타워를 배치한다

  • 타워는 공격유형에 따라 몬스터를 공격한다

  • 몬스터를 죽일 경우 정해진 점수, 골드를 획득한다

  • 몬스터를 죽이지 못하고 기지에 도착할 경우, 몬스터에 따라 데미지를 기지에 입힌다

  • 게임 도중 나갔다 들어와도 게임은 이어지지 않는다.

역할 구분

  1. 타워 기능

    • 타워 판매/강화 기능

    • 발표자료 준비 + 마무리 리팩토링

  2. 몬스터 기능(1)

    • 몬스터 데이터 생성

    • 서버에서 생성/이동/삭제

  3. 클라이언트(1) + 유저 로그인

    • 클라이언트 UI개선

    • 게임 오버

    • 유저 생성

  4. 클라이언트

    • 클라이언트 리팩토링 + 기능 추가
  5. 몬스터 기능(2) + 타워 기능(1)

    • 타워 데이터 생성

    • 타워 생성

    • 몬스터 피격

  6. Q&A ( 준 프로젝트 매니저 )

    • 프로젝트에서 일정을 관리하며 문제가 생긴 부분을 같이 확인

    • 오류를 잡아내며 이를 해결

    • 프로젝트 전체과정을 이해하며 발표 준비

와이어 프레임

  • MySQL 사용 ( 유저 정보 저장 )

  • 게임 데이터 JSON 파일 형태 ( 서버 / 클라이언트 )

  1. 유저 데이터 (MySQL)

    Field Type Description
    id INT 유저 고유 키
    password STRING(HASH) 아이디 접속 시 비밀번호
    nickname STRING 아이디 접속 시 사용할 닉네임
  2. 몬스터 (JSON)

    Field Type Description
    id INT 몬스터의 고유 ID
    health INT 몬스터의 체력
    speed INT 몬스터의 이동속도
    gold INT 죽일 시 획득되는 골드
    score INT 죽일 시 획득되는 점수
  3. 타워 (JSON)

    • 종류 구분
      • 단일
      • 다수 공격 (멀티샷)
      • 광역 (범위딜)
    Field Type Description
    id INT 타워의 고유 ID
    type INT 0 = 단일, 1 = 다수 공격, 2 = 광역
    damage INT 타워의 기본 데미지
    range INT 타워의 기본 공격 사거리
    cost INT 타워의 구매 가격
    cooldown INT 타워의 공격 속도 (n 초마다 공격 )
  4. 스테이지(웨이브) (JSON)

    • 최대 12 → 클리어 가능
    Field Type Description
    id INT 스테이지 고유 ID(Level과 비슷함)
    score INT 스테이지 클리어 시 획득 점수
    gold INT 스테이지 클리어 시 획득 골드
    mobStat JSON[] [
    {“mobId”: 1, “mobCount”: 30},
    {“mobId”: 2, “mobCount”: 40}
    ]

예상 화면

image

피드백

  • 프로젝트 분업 자체만으로 보았을 때 효율 적이지만, 학습목표인 프로젝트로써는 아쉬움
    ( 분배된 역할 중 프로젝트(서버)에 직접 관여하는 인원은 3명밖에 안됌)

  • 프로젝트 팀으로써 자원에 비해 기능이 너무 부실함

추가 회의

  • 피드백 사항을 통해 각자 서버/클라이언트 부분을 나눠 개발하며 깃허브를 통해 병합하는 과정을 세밀히 조정하기로 하였음

  • 추가로 운빨존많겜 같이 몬스터를 필드에 생성하며 몬스터가 일정 수준 모이면 게임오버 되는 방향으로 재설계

추가 협의 내용

  • 협동형 멀티 플레이로 변경

    • 혼자서도 가능하도록 play 버튼 생성
  • 경로는 8자모양으로 단순화 → 클라이언트 / 서버 몬스터 이동 로직 분배

  • 두 플레이어를 각 위치에 놓는다

  • 둘만의 채팅 기능 추가

  • 타워 조합 업그레이드 기능

역할 분배

  1. 몬스터(1)

    • 생성, 피격→삭제

    • 게임 오버 타이머 + 몬스터 수

  2. 몬스터(2), 맵(이동경로) (고재영)

    • 맵 구상 + 구현

    • 몬스터 이동

    • 몬스터 경직

  3. 스테이지 관리, 채팅

    • 스테이지 이동( 일정 시간 이후 )

    • 유저 간 채팅( 둘 / 전체 ) - 채팅 세션 구현

    • 금칙어 구현 / 유저 리폿기능

  4. 타워(1)

    • 몬스터 피격

    • 타워 배치(생성) + 랜덤성 추가

  5. 타워(2)

    • 타워 강화

    • 타워 합성

    • 타워 판매

  6. 멀티 플레이어, 유저 생성

    • 회원가입 / 로그인

    • 멀티 플레이어 접속(연대책임) + 솔로 플레이 가능

    • 랭킹 ( 최고 점수 / (솔로,멀티))

한줄 평 + 개선점

  • 회의가 조금 오래 걸렸지만, 기획 단계를 치밀하게 시작한건 좋은 것 같다.