설계
-
프로젝트 기간 : 2024.12.23 ~ 2025.01.02
-
목표
-
서버와 클라이언트를 연결해 데이터를 검증
-
팀 프로젝트를 통해 깃허브 사용, 회의와 같은 팀업 경험 쌓기
-
첫 회의
- 기본 프로젝트를 분석하여 프로젝트의 구현목표 지점을 짚고, 가시화
게임 진행 방식
-
일정 시간마다 스테이지의 스폰 수에 의해 몬스터가 생성된다
-
몬스터는 기지를 향해 정해진 이동속도로 이동한다
-
스테이지의 스폰된 모든 몬스터를 죽이면 스테이지가 증가한다
-
스테이지를 구분해서 몬스터가 스테이지에 따라 강해진다
-
플레이어는 골드를 사용하여 타워를 배치한다
-
타워는 공격유형에 따라 몬스터를 공격한다
-
몬스터를 죽일 경우 정해진 점수, 골드를 획득한다
-
몬스터를 죽이지 못하고 기지에 도착할 경우, 몬스터에 따라 데미지를 기지에 입힌다
-
게임 도중 나갔다 들어와도 게임은 이어지지 않는다.
역할 구분
-
타워 기능
-
타워 판매/강화 기능
-
발표자료 준비 + 마무리 리팩토링
-
-
몬스터 기능(1)
-
몬스터 데이터 생성
-
서버에서 생성/이동/삭제
-
-
클라이언트(1) + 유저 로그인
-
클라이언트 UI개선
-
게임 오버
-
유저 생성
-
-
클라이언트
- 클라이언트 리팩토링 + 기능 추가
-
몬스터 기능(2) + 타워 기능(1)
-
타워 데이터 생성
-
타워 생성
-
몬스터 피격
-
-
Q&A ( 준 프로젝트 매니저 )
-
프로젝트에서 일정을 관리하며 문제가 생긴 부분을 같이 확인
-
오류를 잡아내며 이를 해결
-
프로젝트 전체과정을 이해하며 발표 준비
-
와이어 프레임
-
MySQL 사용 ( 유저 정보 저장 )
-
게임 데이터 JSON 파일 형태 ( 서버 / 클라이언트 )
-
유저 데이터 (MySQL)
Field Type Description id INT 유저 고유 키 password STRING(HASH) 아이디 접속 시 비밀번호 nickname STRING 아이디 접속 시 사용할 닉네임 -
몬스터 (JSON)
Field Type Description id INT 몬스터의 고유 ID health INT 몬스터의 체력 speed INT 몬스터의 이동속도 gold INT 죽일 시 획득되는 골드 score INT 죽일 시 획득되는 점수 -
타워 (JSON)
- 종류 구분
- 단일
- 다수 공격 (멀티샷)
- 광역 (범위딜)
Field Type Description id INT 타워의 고유 ID type INT 0 = 단일, 1 = 다수 공격, 2 = 광역 damage INT 타워의 기본 데미지 range INT 타워의 기본 공격 사거리 cost INT 타워의 구매 가격 cooldown INT 타워의 공격 속도 (n 초마다 공격 ) - 종류 구분
-
스테이지(웨이브) (JSON)
- 최대 12 → 클리어 가능
Field Type Description id INT 스테이지 고유 ID(Level과 비슷함) score INT 스테이지 클리어 시 획득 점수 gold INT 스테이지 클리어 시 획득 골드 mobStat JSON[] [
{“mobId”: 1, “mobCount”: 30},
{“mobId”: 2, “mobCount”: 40}
]
예상 화면
피드백
-
프로젝트 분업 자체만으로 보았을 때 효율 적이지만, 학습목표인 프로젝트로써는 아쉬움
( 분배된 역할 중 프로젝트(서버)에 직접 관여하는 인원은 3명밖에 안됌) -
프로젝트 팀으로써 자원에 비해 기능이 너무 부실함
추가 회의
-
피드백 사항을 통해 각자 서버/클라이언트 부분을 나눠 개발하며 깃허브를 통해 병합하는 과정을 세밀히 조정하기로 하였음
-
추가로 운빨존많겜 같이 몬스터를 필드에 생성하며 몬스터가 일정 수준 모이면 게임오버 되는 방향으로 재설계
추가 협의 내용
-
협동형 멀티 플레이로 변경
- 혼자서도 가능하도록 play 버튼 생성
-
경로는 8자모양으로 단순화 → 클라이언트 / 서버 몬스터 이동 로직 분배
-
두 플레이어를 각 위치에 놓는다
-
둘만의 채팅 기능 추가
-
타워 조합 업그레이드 기능
역할 분배
-
몬스터(1)
-
생성, 피격→삭제
-
게임 오버 타이머 + 몬스터 수
-
-
몬스터(2), 맵(이동경로) (고재영)
-
맵 구상 + 구현
-
몬스터 이동
-
몬스터 경직
-
-
스테이지 관리, 채팅
-
스테이지 이동( 일정 시간 이후 )
-
유저 간 채팅( 둘 / 전체 ) - 채팅 세션 구현
-
금칙어 구현 / 유저 리폿기능
-
-
타워(1)
-
몬스터 피격
-
타워 배치(생성) + 랜덤성 추가
-
-
타워(2)
-
타워 강화
-
타워 합성
-
타워 판매
-
-
멀티 플레이어, 유저 생성
-
회원가입 / 로그인
-
멀티 플레이어 접속(연대책임) + 솔로 플레이 가능
-
랭킹 ( 최고 점수 / (솔로,멀티))
-
한줄 평 + 개선점
- 회의가 조금 오래 걸렸지만, 기획 단계를 치밀하게 시작한건 좋은 것 같다.