2024-11-04 CH-5 팀 과제 (랜덤 타워 디펜스) 자 이제 또 시작이야~

MOON·2024년 11월 8일
0

내일배움캠프 과제

목록 보기
28/36

이번 과제도 저번 개인과제와 같이 Tcp통신을 이용한 멀티플레이 게임입니다.
이번 프로젝트의 게임장르는 타워디펜스 게임입니다.

와이어프레임

전체 패킷 명세

패킷 명세


게임 데이터 명세

message Position {
  float x = 1;
  float y = 2;
}

message BaseData {
  int32 hp = 1;
  int32 maxHp = 2;
}

message TowerData {
  int32 towerId = 1;
  float x = 2;
  float y = 3;
}

message MonsterData {
  int32 monsterId = 1;
  int32 monsterNumber = 2;
  int32 level = 3;
}

message InitialGameState {
  int32 baseHp = 1;
  int32 towerCost = 2;
  int32 initialGold = 3;
  int32 monsterSpawnInterval = 4;
}

message GameState {
  int32 gold = 1;
  BaseData base = 2;
  int32 highScore = 3;
  repeated TowerData towers = 4;
  repeated MonsterData monsters = 5;
  int32 monsterLevel = 6;
  int32 score = 7;
  repeated Position monsterPath = 8;
  Position basePosition = 9;
}

실패 코드

enum GlobalFailCode {
    NONE = 0;
    UNKNOWN_ERROR = 1;
    INVALID_REQUEST = 2;
    AUTHENTICATION_FAILED = 3;
}

구현해야될 기능들

  • 회원가입
  • 로그인
  • 매칭 & 게임 스타스
  • 타워 구매
  • 타워 공격
  • 몬스터 스폰
  • 몬스터 죽음처리
  • 본진 데미지
  • 게임 오버
  • 상태 동기화

ERD

위에 있는 내용처럼 패킷 명세와 클라이언트는 제공해 주었습니다. 그걸 바탕으로 만들어야할 기능들을 예상하고 어떻게 서버에서 로직을 구현하고 패킷을 잘 정리하여 언제 TCP통신으로 패킷을 주고 받게 할지 고민하는 과제인 것 같습니다.

오늘의 회고

이번 팀과제도 화이팅!

profile
안녕하세요

0개의 댓글