지스타 2025 출품 이후 Inkoid 무기 개편
·
Unity 3D/Inkoid
팀스파르타 Unity 10기 수료 후 영광스럽게도지스타 2025 출품작으로 선정되는 기회를 얻어 다녀왔습니다.지스타 부스 운영을 통해 처음 하는 플레이어들에게 많은 피드백을 받았으며 출시 전까지 이를 최대한 반영하여 개선할 예정입니다. 우선적으로 제가 맡아 진행한 부분은우리 게임은 판당 2분으로 짤막하게 즐길 수 있고오래 붙잡고 할 그런 게임은 아니기에처음 써도 각 무기의 재미를 느끼게 하는 방향으로 개편하는 것이었습니다. 이미 성능이 뛰어나고 사용하기 편한 무기 2종을 제외한 나머지 전부 수치/매커니즘을 바꾸었습니다. 1. 차저물감 소모량 감소, 차지 시간 대폭 감소, 색칠 성능 소폭 상승플레이의 답답함 크게 완화, 빗나갔을 때의 부담 감소잉크가 최대치일 때, 차지샷을 3번 쏘고도 1번 평타를 쓸 수 ..
유니티 게임 Localization (현지화) 작업
·
기타
유니티는 공식적으로 Localization을 지원하긴 하나실력을 늘리고 싶어 직접 만들어 출시 준비중인 게임에 적용해보았습니다. 1. 언어 별 폰트 구하기무료 폰트로 범용성, 가독성이 좋은 Nato Sans CJK를 추천하지만,게임 특성상 둥글둥글한 폰트가 필요하여 언어별 다른 무료 폰트 찾음 TMPro를 쓸 것이기에 받은 폰트로 폰트 에셋 생성중국어 폰트를 생성할 때는 해당 옵션을 사용하였고, 생성한 폰트 에셋에는 Atlas Population Mode = Dynamic 설정그 중에 중국어 폰트가 너무 얇게 나오고 폰트의 Weight을 조절하여 폰트 파일로 재추출하는데는 유로 프로그램이 필요했기에 가난한 개발자 팀으로써는 부담이 되어 다른 방법을 찾음아래 코드들에서 중국어 폰트일 때 TMP_Text의 ..
최종 프로젝트 7/28 작업 일지
·
스파르타코딩클럽_Unity개발과정
1. 차저의 레이저가 건물에 색칠하지 못하는 에러 > 레이캐스트 이원화(건물, 상대 팀 플레이어 각각 다른 방법으로 검출)로 해결 > 맞은 지점이 필요한 건물은 RayCastAll로 뚫고 지나가는 모든 건물들에 검출 > 색칠 > 단, 한 건물에 한번만 맞는다는 점이 있어서 자연스럽게 보이지 않음 > 맞았는지 여부만 필요한 상대 플레이어는 CapsuleCastAll로 뚫고 지나가는 모든 상대 플레이어들을 검출 > 대미지 2. 훅의 머리가 이상한 각도로 꽂혀 물감 흡수가 안되는 에러 > 캐릭터가 화면 밖 방향(실제 플레이어 방향)을 바라본 상태로 건물 쪽에 훅을 발사할 경우 자주 발생 3. 훅의 머리가 건물을 통과하는 에러 > 원래 있던 에러 > 레이를 방사형으로 여러 발 발사하여 훅을 꽂은 지점 인근의 색..
7/25 최종 프로젝트 작업 일지
·
스파르타코딩클럽_Unity개발과정
1. 범위 탄환 물감이 특정 오브젝트에 색칠되지 않는 문제접점으로부터 수직 방향으로 레이캐스트 시작 위치의 이격을 더 크게 주어(레이캐스트가 해당 물체 안으로 빛을 쏘지 않도록 하기 위함) 테스트 > 해결 2. 각 픽셀 UV에 색상 대신 팀 ID 값을 저장>> 기존의 색상을 비교해 물감 흡수, 점유율 판정하던 방식을 변경할 필요가 있음1) 구조 개편이 된다면 예상되는 결과 > 완료!(1) 물감 인접한 색칠되지 않은 영역에 훅을 꽂았을 때 충전되던 문제 해결(2) 다양한 팀 컬러를 사용할 수 있어 게임의 다채로움을 더할 수 있음(3) 게임 중 연산 빈도가 잦은 부분의 연산량 감소로 성능 개선 2) 해결 과정(1) 셰이더 코드 중 색칠한 부분을 누적하는 마스크에 해당 영역들에 색상 대신 팀 값을 부여하게끔 ..
7/23 최종 프로젝트 작업 일지
·
스파르타코딩클럽_Unity개발과정
1. RPG - 기본 총과 구조는 비슷한데 좀 더 묵직 + 포격어떻게 만들어야 하나?1) 기본 총, 탄환, 이펙트들 프리팹 복사 + 무기, 탄환 데이터들 복사 2) 탄환 (일반 탄환 대비) 중력 가속도 증가, 속도 감소, 라이프타임 증가, 물감 색칠 범위 증가, 대미지 증가 스크립트 상에서 착탄 '범위' 에 딜+색칠 3) 이펙트 (1) 착탄 이펙트 : 폭발이라는 느낌이 들게 크게 + 공격 범위에 맞게 > 나선환처럼 파티클이 회전 > 파티클의 velocity에 회전을 주는 것이 있어 이를 통해 표현(2) 발사 이펙트는 rpg 발사할 때 연기처럼 물감이 총 옆+뒤쪽으로 살짝 뿌려지게 (3) 트레일도 일반 총알보다 좀 더 과하게 표현해보기 4) 무기 : 외형만 바꾸기 + firePos 조정 // 테스..
최종 프로젝트 7/21 작업일지
·
스파르타코딩클럽_Unity개발과정
7/17 작업 노트 1. 저격총 - 스플래툰 차저와 유사 어떻게 만들 것인가? (1) 마우스를 짧게 눌렀다 떼면 : 일반 총처럼 동작. 하지만 성능이 그것보단 좋지 않음. 적이 근접했을 때 전투용 (2) 마우스를 길게 누르면 : 차지 시작 + 레이저로 타겟까지 표시(타겟도 자신이 조준당함을 인지할 수 있게끔) > 차지가 끝나면 히트 스캔 발사 (적을 한방에 처치할 수 있는 100 대미지) + 레이저 표시 off차지 시간 파라미터 필요. 두 유형의 공격에 대응하기 위해 기존에 만들어 둔 탄환, 히트스캔형 무기 데이터 둘을 모두 보유 (3) 색칠 범위는 좁음. 스플래툰 처럼 경로 아래에 색칠하게 하는 건 가능하긴 하나 바닥 색칠이 따로 안되기에 효용성은 적다 생각 1번과 2번의 2가지 공격 방식을 구분하기 ..
최종 프로젝트 7/18 작업노트
·
스파르타코딩클럽_Unity개발과정
1. 탄환 개선 > 기본 무기의 탄이 잘 맞지 않아 탄속 증가, 탄환 크기 증가로 플레이 중 더 적극적인 교전이 발생하도록 개선하려 함 1) 탄속 빠르게, 탄환 라이프타임 감소 Gun 탄환 스케일 증가 2. 무기 추가 1) 샷건 (아마도 분무기)> 히트스캔 방식으로 공격 범위 내 적 모두 타격 + 색칠 가능한 오브젝트 색칠 > 이렇게 하면 샷건같이 범위에 전체 색칠하는 느낌이 들지 않을까? // 샷건의 탄환은 근거리에서 퍼지는 이펙트만 보여주지 실제 물리 충돌로 대미지를 주지 않음 // 물리적인 탄을 여러발 발사하는 것의 부하가 큼 + 여러발 맞거나 맞지 않는 등 무기 성능의 밸런싱이 어려움 // > 대미지는 발사할 때 샷건 무기에서 공격 범위 히트 스캔으로 처리 // ..
최종 프로젝트 7/17 작업노트
·
스파르타코딩클럽_Unity개발과정
1. PunRPC를 통해 모든 클라이언트에 이펙트(vfx, sfx) 호출의 관리 최적화 > vfx 오브젝트 풀링을 이용한 생성/파괴 최소화 > sfx 사운드 매니저를 이용하여 클립 하나로 사용 최소화 > vfx+sfx 동시 호출, vfx, sfx 각각 필요한 것만 호출 등 상황에 맞는 + 패킷을 여러번 만들어 보내고 푸는 과정을 줄여 통신 성능 최적화 2. 색칠할 오브젝트의 기존 물성이 들어가지 않는 버그 > 게임 시작 시 셰이더 그래프의 프로퍼티 Metallic, Smoothness에 기존 머티리얼의 물성값을 넣어줘서 해결 3. 플레이어 잉크 잔량 표시 UI를 해당 팀 물감 색으로 변경 > Start()에서 변경하여 문제가 없을 것으로 생각했으나, 한 플레이어가 사망 후 리스폰 시 해당 팀 물감색으로..
최종 프로젝트 7/16 작업노트
·
스파르타코딩클럽_Unity개발과정
총알 이펙트 색상을 팀 색상으로 변경+ 총알에 모든 이펙트와 관련 데이터를 붙여두는 방식에서 오브젝트 풀링으로 이펙트를 호출하게끔 구조 개편1. 어떤 색상들을 바꿔야 하는가?발사/자취/착탄 이펙트 에셋에 색상을 표현하는 요소들 뜯어보기 1) muzzle (발사) (0) Particle System > Renderer > Material > Emission 자식 (1) Light > Emission > Color (2) Particle System > Start Color (3) Particle System > Renderer > Material > Emission (4) Particle System > Start Color 2) Impact (착탄) (0) Parti..
최종 프로젝트 7/15 작업 노트
·
스파르타코딩클럽_Unity개발과정
어제 머지 이후 멀티 테스트에서 나온 문제를 해결하였습니다. 1. 물감 색이 다른 팀 색으로 들어갈 때가 있음 > 총알 오브젝트 풀(로컬)의 상태가 모든 클라이언트에서 동일하지 않음 > A, B팀 총알들, 이펙트들에 대해 종류, 팀별로 오브젝트 풀을 각각 나누어 관리 (완) > 기존의 메서드를 타입별로 내용을 쪼개어 따로 둠 > 매개변수 휴먼 에러 방지 > 진행하면서 리팩토링 및 최적화 > 결과: 다른 팀의 물감을 색칠하지 않게 됨. 문제 해결 2. 대미지가 2번 들어가는 에러 발생1) 상황 관찰1P가 2P를 때렸을 때, 2p에게 맞았다는 로그가 먼저 뜸 (?)이후에 1P에게서 맞았다는 정상적인 메시지가 뜸해당 로그 둘의 시간은 동시간하이어라키 확인 결과 1발만 발사 > 여러발이 동시에 발사되는 ..