13일 일지
# 개발 진행상황
기록이 많이 비어있는데 3~4일 동안 한 것
- 테스트 코드 작성
- 클라이언트 사운드 적용
- 오류 개선
팀원 분들은 레디스 적용에 성공한 듯 하고 내가 진행 했던 부분들은
일단 2일 동안은 테스트 코드를 노드에 기본으로 내장되어있는 모듈로만 작성을 진행 해보았다.
유닛 테스트나 부하 테스트, 경계 테스트 라는걸 해보려했는데
유닛 테스트는 패킷을 주고 받는거만 했을땐 잘 되었고
부하 테스트는 로그인 과정에서 자꾸 서버가 꺼지는 현상이 있어 실패했다.
잘 되진 않았다.
테스트 코드에 대해서 공부를 계속 하다가 팀원 분 중 한분이 사운드를 적용하려고 하는데 유니티가 실행이 되지 않아 적용이 어렵다 해서 일단 시간이 비는 내가 도와주기로 했다.
남은 2일 동안은 사운드 적용에 집중 했는데 딱 이 방식이다.
public async void UseCardNotification(GamePacket gamePacket)
{
var response = gamePacket.UseCardNotification;
var card = response.CardType.GetCardData();
// 빵 카드 사용시 총소리 재생
if (response.CardType == CardType.Bbang)
{
Debug.Log(AudioManager.instance.isInit);
AudioManager.instance.PlayOneShot("bbang");
}
if (response.CardType == CardType.Shield)
{
AudioManager.instance.PlayOneShot("shield");
}
if (response.CardType == CardType.FleaMarket)
{
AudioManager.instance.PlayOneShot("market");
}
if (response.UserId == UserInfo.myInfo.id)
{
switch (response.CardType)
{
case CardType.HandGun:
AudioManager.instance.PlayOneShot("weapon");
break;
case CardType.AutoRifle:
AudioManager.instance.PlayOneShot("weapon");
break;
case CardType.SniperGun:
AudioManager.instance.PlayOneShot("weapon");
break;
case CardType.DesertEagle:
AudioManager.instance.PlayOneShot("weapon");
break;
case CardType.LaserPointer:
AudioManager.instance.PlayOneShot("eq");
break;
case CardType.Radar:
AudioManager.instance.PlayOneShot("eq");
break;
case CardType.AutoShield:
AudioManager.instance.PlayOneShot("eq");
break;
case CardType.StealthSuit:
AudioManager.instance.PlayOneShot("eq");
break;
case CardType.MaturedSavings:
AudioManager.instance.PlayOneShot("gold");
break;
case CardType.WinLottery:
AudioManager.instance.PlayOneShot("gold");
break;
}
}
유니티에서 오디오 매니저를 선언하고 리소스 파일 안에 클립들을 다 넣은 다음에 오디오 매니저에서 클립을 특정 상황에서 호출하는 방식
사운드를 넣으니 게임성이 확 달라지는걸 느꼈다
사운드 적용이 다 끝나고 또 테스트 과정에서 계속 생기는 문제에 대해서 팀원들과 회의를 진행했다.
이번 프로젝트에서 계속 발생했던 문제는 배포된 환경에서 특정 클라이언트가 패킷을 늦게 받아 반응이 느리던 현상
결론은 문제를 해결했다.
패킷을 파싱하는 쪽 로그를 전부 찍어보고 특이점을 발견했는데 특정 클라이언트에서 패킷을 두번씩 보내는 현상이 있었다.
(진짜 특정 클라이언트 - 누구는 유니티에서 안되고 누구는 빌드된 환경에서만 안되고 누구는 다 되는데 누구는 둘 다 안되는..)
일단 패킷을 처리하고 남은건 그냥 버리는 식으로 진행을 하다가 시퀀스 문제가 생겨서
시퀀스를 사용 안했더니 문제가 해결 되었다.
사실 완전 문제 해결은 아니지만 2~3주동안 이 문제만 집중해서 봤는데도 답이 나오지 않았기에
이대로 배포를 진행할 예정