이번 과제도 저번 개인과제와 같이 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;
}
위에 있는 내용처럼 패킷 명세와 클라이언트는 제공해 주었습니다. 그걸 바탕으로 만들어야할 기능들을 예상하고 어떻게 서버에서 로직을 구현하고 패킷을 잘 정리하여 언제 TCP통신으로 패킷을 주고 받게 할지 고민하는 과제인 것 같습니다.
이번 팀과제도 화이팅!