프로젝트 Final

13일 일지

rabbit97 2024. 12. 13. 23: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주동안 이 문제만 집중해서 봤는데도 답이 나오지 않았기에

이대로 배포를 진행할 예정