ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빌드 & 테스터 모집 & 추후 수정
    Galaxy Ball/6. 테스터 모집 + 출시 2024. 12. 7. 04:22

    드디어 게임이 완성이 되었다.

     

     

    빌드세팅. 일일이 설명하기에는 너무 오래 걸릴것 같으니 우선 캡쳐해두고 나중에 빌드할 일 있으면 그대로 따라하자

     

    이제 본격적으로 테스터 모집을 시작했고

     

    주변 지인, 게임개발 관련 커뮤니티 등을 돌며 테스터 할 사람들을 모집중이다

     

    드디어 폰에서도 부드럽게 구현되는 게임....너무나도 감격스럽다...

     

    내가 알기로는 20명 이상의 사람들이 최소 2주의 기간동안 게임을 지우지 않고 유지시

    게임을 정식출시 할 수 있다고 한다. 이 얘기를 처음 들었을땐 20명을 어떻게 모으지 싶었지만

     

     

    그냥 여기에만 말해도 거뜬히 모을 것 같다ㅋㅋ

     

     

    그리고 이 게임을 만드는데 필요한 에셋을 구매한 원작자에게도 찾아갔다

     

     

     

    정확히는 게임에 나오는 행성들과 우주 배경을 만드신 분.

    감사 인사와 함께 게임에 몇몇 캡쳐본들을 공유해주었고 혹시 안드로이드를 사용하신다면

    정식 출시 뒤 한번 더 말씀드려볼 생각이다

     

     

    그리고 어제 친구를 만나 실제 게임을 폰에 설치하여 플레이 하는것을 직접 보며 피드백을 받았고

     

    크게 수정해야 할 부분은 두가지였다

     

    1. 인게임 Firezone 확장 + 각종 작은 수정들

    2. 스테이지 맵 이동 감도

     

     

     

    우선 FireZone은 위 사진 상단 하단에 보이는 파란색 영역이다. 

    플레이어는 저곳에서만 공을 생성하여 발사할 수 있는데 문제는 기존에는 너무 이 공간이 작아서

    손가락을 조금 잘못 대기만 해도 바로 게임 오버가 나버린다는것

     

    친구가 조심조심해서 이걸 플레이하는것을 보고 바꿔줘야겠다 생각을 하게 되었고 위 사진처럼 공간을 넓혀주었다가

    그냥 무슨짓을 해도 절대 그런식으로 게임오버가 나지 않게 할 더 좋은 생각이 났다

     

     

     

    아예 이런식으로 바닥과는 떼어버리는것. 왼쪽 사진처럼 아무리 뒤에 생성을 해도 DeadZone과 닿지 않도록 한다면

    이제 이 문제는 말끔하게 해결이 되어버리는 것이다

     

     

    이제 아무리 밑쪽을 찍어도 게임 종료가 되지 않는것을 확인할 수 있다ㅎ

     

     

    그리고 의견을 반영해서 이런저런 밸런스 문제들도 수정해주었다

     

    적 유닛의 충돌 조건도 한가지 추가해주었다. 이제부터 아무런 태그가 달리지 않은 오브젝트와 충돌시에도

    데미지는 받지 않는다

     

     

     

    그리고 한가지 어이없는 실수를 했다.... 

    28번 스테이지에 형태도 없고 아무것도 없는 Enemy1이 스테이지에 들어간것...

    당연히 태그가 Enemy로 분류되니 스테이지에 있는 모든 유닛을 제거해도 게임이 종료되질 않았다..

    이래서 게임을 처음부터 끝까지 해보는게 중요한 것 같다

     

    아무런 형체도 없는 Enemy5

     

    혹시 몰라 스테이지를 처음부터 일일이 확인해봤더니 이런 경우가 꽤 보였다...

    귀찮아도 하나하나 확인해보길 잘한것 같다

     

    그리고 플레이어의 편의성을 위해 행성 이동 속도나 행성 크기도 조절해주었다

     

     

    그 외에도 수정해준것은 많다. 밸런스 조절부터 시작해

    플레이어 공 감도 수정, 무적 아이템 충돌 판정도 전체적으로 수정해주었다

     

     

     

     

    그리고 두번째로 해야할 스테이지 이동 감도 조절

     

    첫번째 스테이지 선택맵

    한가지 간과한게 있다. 바로 컴퓨터에서 마우스로 컨트롤 하는것과

    핸드폰에서 손가락 터치로 컨트롤 하는것은 분명히 체감 차이가 있다는것

     

    이게 가장 극적으로 느껴지는곳이 바로 스테이지 선택맵이다

     

     

    우선 위 사진에 보이는 첫번째 스테이지맵은 무조건 감도가 더 낮아야하기에

    shotDistance에 곱해지는 값을 2에서 0.6으로 확 감소시켜주었다

     

    두번째 스테이지 선택맵

    하지만 그렇게 될 경우 두번째 스테이지가 문제다

    여긴 맵 특성상 굉장히 넓어서 긴 거리를 빠르게 이동해줘야 하는데

    터치 감도가 여전히 낮다면 그건 그것대로 문제다

     

    그래서 생각한 해결책은 카메라를 얼마나 확장하고 축소하는지에 따라 플레이어의 이동 감도가 달라지도록 만들었다

    using UnityEngine;
    using TMPro;
    
    public class CameraReduction : MonoBehaviour
    {
       
        private float[] sizes;
       
        public int gear; // Public으로 선언된 gear 변수
    
        void Start()
        {
            sizes = new float[] { 4f, 7f, 15f, 30f, 45f };
            UpdateGear(); // gear 값 업데이트
            UpdateButtonText(); // 초기 텍스트 업데이트
        }
    
        public void ChangeCameraSize()
        {
            if (mainCamera != null)
            {
                currentIndex = (currentIndex + 1) % sizes.Length;
                mainCamera.orthographicSize = sizes[currentIndex]; // 카메라 크기 변경
                UpdateGear(); // gear 값 업데이트
                UpdateButtonText();
            }
        }
    
        private void UpdateGear()
        {
            // currentIndex가 0부터 시작하므로 gear는 1부터 시작하도록 설정
            gear = currentIndex + 1;
        }
    }

     

    우선 카메라 확대/축소를 담당하는 코드를 수정해주었다

    gear라는 int 타입 변수를 추가해준뒤 카메라 비율 5단계에 따라 

    gear의 값을 각각 1,2,3,4,5 다섯개중 하나의 값으로 늘 맞춰준다

     

    using System.Collections;
    using Unity.VisualScripting;
    using UnityEngine;
    
    public class StageBallController : MonoBehaviour
    {
        CameraReduction cameraReduction;
       
        private float forcepower;
    
      .....
    
        private void Update()
        {
            switch (cameraReduction.gear)
            {
                case 1:
                    forcepower = 0.6f; break;
                case 2:
                    forcepower = 0.6f; break;
                case 3:
                    forcepower = 1; break;
                case 4:
                    forcepower = 1.3f; break;
                case 5:
                    forcepower = 1.7f; break;
            }
            if (!stageBallManager.isDragging)
            {
                LaunchBall();
            }
            if (hasBeenLaunched && !isStopped)
            {
                SlowDownBall();
            }
        }
        void LaunchBall()
        {
            Vector2 launchForce = StageBallManager.shotDirection * (StageBallManager.shotDistance * forcepower);
            rb.AddForce(launchForce, ForceMode2D.Impulse);
            stageBallManager.isDragging = true;
            rb.drag = dragAmount;
            hasBeenLaunched = true;
        }
      
      .....
      
    }

     

    그리고 플레이어의 공을 제어하는 코드로 돌아와서 forcepower라는 float타입 변수를 추가해주자

    그리고 gear값을 가져와 gear값에 따라 forcepower가 달라지도록 한다

     

    Vector2 launchForce = StageBallManager.shotDirection * (StageBallManager.shotDistance * forcepower);

     

    그리고 이제부터 무조건 0.6f를 곱해서 날리는것이 아닌

    카메라의 확대/축소 비율에 따라 달라지는 forcepower만큼 힘을 주어 날아가게 할것이다

     

    이게 정말 정말 중요한 기능이다. 카메라 확대/축소 기능을 어떻게 사용하냐에 따라

    게임을 더 편하게 즐길 수 있을것이다

     

     

    그래서 대사에서도 한 번 더 중요하게 강조를 해주었다ㅋㅋ

     

    이제 카메라 비율에 따라 이동속도가 달라지는 것을 확인할 수 있다 

     

    분명 게임을 다 만들었다고 확신하고 나서도 이렇게나 많은 수정할 거리와 오류가 보이니

    이래서 테스터를 구하는 과정도 필요하구나 라는것을 느꼈다

    애초에 내가 게임을 처음부터 끝까지 전부 해봤어야 하는것도 있지만...

Designed by Tistory.