'War of The Gods'에 해당되는 글 1건

  1. 2014.02.17 대구게임아카데미 10기 프로젝트 A조
posted by WizardMania 2014. 2. 17. 10:12

War of The Gods


게임 설명

게임시간은 단 10분! 10분 안에 제단을 더 많이 차지해라!

10분이 지나기전에 제단 7개를 모두 차지 할 경우 바로 승리를 거머쥔다!

제단을 차지해도 일정시간이 지나면 다시 비활성화 되니, 역전의 기회를 노려라!

제단이 비활성화 되는 시간은 시간이 지남에 따라 증가 한다!

동점으로 끝날경우 SUDDEN DEATH타임이 돌아온다! 고로 무조건 승패는 가려진다!

SUDDEN DEATH타임 때 무조건 1킬을 먼저 따는 팀이 승리!




그래픽










프로그래밍


Server : 클라이언트에서 보낸 패킷을 받아서 서버에서는 모든 유저에게 패킷을 보내고 서버에서는 채팅 및 공격판정등을 구현


Client : 게임화면을 State패턴을 사용하여 Scene이 변경될 때 변경되는 Scene으로 교체를 해주고 Command를 사용하였는데 이것은 서버에서 보내는 패킷을 처리하는 별도의 쓰레드를 사용하며 별도의 쓰레드에서 메인쓰레드로 정보전달하여 사용.

캐릭터에 필요한 데이터는 캐릭터쪽에 넣고, 제단에 필요한 데이터는 제단쪽에 넣어서 사용.


Tool : Tool에서는 MAX에서 변환한 FBXmesh로 전환 및 OBB, AABB박스를 씌울수 있으며 캐릭터의 경우 mesh파일로 전환한 뒤 char파일로 변환하여 char파일에서 무기와 캐릭터의 OBB, ABB를 처리하였고 Map의 경우에는 mesh파일로 전환한 뒤에 각 Map에 들어갈 object를 추가하여 배치를 다하면 .map파일로 저장하여 사용.


1) 서버구현

서버의 시작 및 종료 상태를 표시하며 Client의 채팅을 받고 각 Client에 보내는 역할을 하며게임에 필요한 패킷을 주고 받으며 게임을 실행시키는 역할을 한다.

UID : 서버에 접속한 클라이언트에 번호를 부여하고 보여주는 역할

ID : 각 클라이언의 입력한 ID.

IP : 접속한 클라이언의 IP를 표시.

HOST : 접속한 ClientHOST인지 체크하여 상태를 표시하며 게임룸에서 HOST가 게임 시작할수 있는 역할을 함.

READY: HOST 다음으로 접속한 Client이며 게임 실행이 가능한지 상태를 표시.


2) 콤보, 리스폰 UI 및 리스폰, 무적, 제단 이펙트

콤보는 플레이어가 일정시간에 상대 플레이어를 피격시킬 경우 이어가는 것으로 코드를 작성하였으며 플레이어가 사망시 리스폰게이지가 나오면서 10초가 경과 뒤에 시작한 위치에서 리스폰이 되며 이때 나오는 이펙트가 있으며 PVP게임 특성상 바로 싸움이 일어나서 다시 죽는 것을 방지하여 무적이펙트를 넣어서 3초 동안의 무적을 주는 것으로 함.


3) 스킬

치우의 스킬 같은 경우 Sphere을 사용하여 범위내에 있으면 타격판정이 들어가며 포세이돈의 경우에는 스킬이펙트에 OBB를 사용, 에로스의 경우 바닥부분에 Sphere사용, 호루스의 경우 이펙트에 OBB, 발키리의 경우에는 무기의 OBB로 충돌체크를 하였으며 오공의 경우 Sphere를 사용하였음.


4) GameTool

Tool에서는 Max 작업한 뒤 Fbx로 변환한 파일을 불러온 뒤 mesh파일로 변환하고 캐릭터의 경우 fbx파일을 불러와서 애니메이션이 있는 fbx를 추가하여 mesh파일로 변환하거나 아니면 모두 mesh파일로 변환한 뒤에 애니메이션을 추가를 하고 이 캐릭터 파일을 char파일로 추가한 뒤에 캐릭터의 몸 OBB와 무기에 OBB영역을 구하고 저장을 하면 이 char파일을 이용해서 게임에서 CollisionCheck를 해준다.

Field작업 또한 기본적인 것은 같으나 mesh로 변환한 파일을 하나씩 불러와서 오브젝트 추가를 한 뒤 위치에 맞게 좌표를 입력하여 이동을 시키고 scale을 변형시키게 되면 따로 충돌오브젝트를 추가하여 박스를 크기에 맞게 씌워준다 그리고 또한 오브젝트들의 Rate를 변형 시킬수 있어서 맵디자이너가 위치하고 싶은 곳에 위치를 해놓았다가 오브젝트의 각도를 조정하여 맵에 매치를 시키게 했으며 맵 배치가 끝나면 파일명을 .map로 하였음.