게임개발일지/리그오브워치 19

[리그오브워치개발일지] #17 캐릭터 카메라 관련 기능

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 17_CharacterCamera 요구사항 카메라 관련 기능 삼인칭 일인칭 구현 게임이 무조건 일인칭으로만 진행된다는 보장이 없다. 아래 영상 참고(0:14) 캐릭터의 스킬들 중 몇가지는 3인칭으로 표현된다. PlayableCharacter에 카메라 시점을 바꾸는 역할을 만들어줄 필요가 있다. 일인칭은 FirstPerson 콘텐츠 팩에서 손 매시와 애니메이션 블루프린트를 가져와 적용했다.

[리그오브워치개발일지] #16 LyraStarterGame 기본 애니메이션 분석 및 이주

Git 레포지토리 주소 : [https://github.com/kjinwoo12/UE5Game_LeagueOfWatch] 기준 태그 : 16_LyraCharacter 완성 영상 완성된 캐릭터의 관찰을 위해서 PlayableCharacter의 카메라를 3인칭으로 옮겼다. 요구사항 확인 Lyra Starter Game에서 제공하는 기본적인 캐릭터 애니메이션을 League Of Watch에 이식 Lyra Sample Game은 언리얼 엔진5가 출시된 후 개발자들의 적응을 돕기 위해 마켓 플레이스에서 무료로 배포하는 샘플 프로젝트다. 캐릭터, AI, 이펙트, 게임모드 등 하나의 게임을 완성할 때 어떤 방법으로 만들어야 효과적인지 알 수 있다. Lyra Sample Game의 캐릭터 애니메이션 블루프린트에는 게임..

[리그오브워치개발일지] #15 기본 게임 규칙 : 인게임 접속 후 시작

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 15_IngameStart 요구사항 확인 제한시간 안에 캐릭터를 선택하고 확인 버튼을 눌러 캐릭터를 확정하면 인게임으로 넘어가서 게임을 시작하게 된다. 플레이어는 인게임 레벨에 들어오면 이전글에서까지 만든 캐릭터 선택 화면에서 선택한 캐릭터에 빙의(possess)해서 게임을 시작하게 된다. 자세한 게임 규칙은 아직 정해진게 없기 때문에 캐릭터를 팀에 맞는 위치에 생성하고, 빙의하고, 움직이는 것까지 해볼 예정이다. 추가로 만들 것은, 오버워치와 롤 모두 초반 일정 시간동안 기지에서 벗어날 수 없는 시간이 존재하는데 이 기능 또한 추가할 예정이다. 정리하면 다음과 같다. 캐릭..

[리그오브워치개발일지] #14 MultiplayLibrary 플러그인 추가

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 14_WithMutliplayLibrary MultiplayLibaray 멀티플레이 관련 기능을 만들때 서버와 클라이언트의 GameState와 PlayerArray 동기화 문제 때문에 해결하는 코드를 작성해 C++ 클래스로 분리했었다. 분리한 것을 다시 플러그인으로 만들어 조금 다듬은 다음 추가하게 되었다. 지금까지 만든 코드를 플러그인을 사용하도록 수정해야 한다. 자세한 내용은 멀티플레이 모듈 개발에 작성했다.

[리그오브워치개발일지] #13 유저 인터페이스 : 캐릭터 선택 (3) 선택 규칙

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 13_TeamSelectionRule_bugfix 요구사항 확인 이전글에서는 매치메이킹이 완료된 것을 가정하고 서버에 매칭된 유저가 UI를 통해 캐릭터를 선택하고 확인할 수 있는 기능을 완성했다. 하지만 UI만 완성했을 뿐 캐릭터 선택 전체를 완성한 것은 아니다. 캐릭터 선택 전체를 완성하기 위해서는 캐릭터 선택 화면에서 발생할 수 있는 다양한 상황에 대처해야 한다. 예를 들어 캐릭터 선택 도중에 플레이어가 나간다거나, 캐릭터를 선택하지 못하고 선택 제한시간이 지난 상황에서 각각의 클라이언트에게 적절한 화면을 띄워줘야 한다. 또, 캐릭터 선택이 정상적으로 완료되었을 때 인게..

[리그오브워치개발일지] #12-1 데디케이트 서버 버그 수정

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 12_teamSelection_withDedicatedServer_bugfix 본문 이전글에서 서버와 클라이언트 간 동기화 문제로 정상 작동하지 않은 문제가 있었다. 두 번 중에 한 번 꼴로 유저 이름과 플레이어를 보여주는 UI가 나타나지 않았다. 원인은 PlayerState가 클라이언트에 스폰되기 전에 서버에서 클라이언트로 모든 플레이어가 접속했다고 이벤트를 호출했기 때문이다. 모든 플레이어가 접속하면 UI를 띄워 PlayersState에 있는 변수를 읽어와야 하는데 그 시점에 클라이언트에 PlayerState가 스폰되었다는 보장이 없다. 참고 PlayerState is ..

[리그오브워치개발일지] #12 유저 인터페이스 : 캐릭터 선택 (2) with 데디케이트 서버

Git 레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch 기준 태그 : 12_teamSelection_withDedicatedServer 서론 데디케이트 서버는 개발할 때 뿐만 아니라 실제 서비스 중인 게임에도 사용하기 적합하다. 데디케이트 서버를 사용한 가장 유명한 게임은 포트나이트로, 100명의 유저가 한 맵에서 성능에 큰 문제없이 게임을 플레이 할 수 있는 서버의 성능을 실제로 서비스하며 증명한 게임이다. 이번 글에서는 언리얼 엔진 데디케이트 서버를 빌드해보고 필요한 기능을 만들어볼 것이다. 요구사항 확인 이전글에서부터 서버가 없으면 만들 수 없는 기능들이 나오는 것을 확인했다. 여러 플레이어가 캐릭터를 선택하고 확정하는 모습을 위젯에 보..