세션 생성 옵션
FCreateServerInfo 구조체를 만들고 세션 이름, 최대 인원수, LAN 환경을 멤버로 갖도록 한다.
방을 만들고자 하는 사용자는 이러한 내용을 설정하고 CreateServer 버튼을 누른다.
HostMatch_UI의 CreateServer 버튼을 누르면 OnClick 함수가 호출되는데 OnClick 함수 내부에서는 GameInstance를 찾고 캐스팅하여 CreateServer 함수를 호출하게 된다.
인자로 들어오는 FCreateServerInfo 구조체 변수는 HostMatch_UI의 블루프린트에서 만들어서 보내준다.
세션을 만들 때 SessionSettings에 없는 속성 (서버 이름같은 경우) Set 함수를 통해 Key와 Value 방식을 통해 전달하고 받을 수 있다.
세션 목록 검색 / 참가
FindSessions 함수를 통해 얻을 수 있는 정보는 다음의 구조체로 정리할 수 있다.
PlayerCountStr은 "CurrentPlayers / MaxPlayers" 문자열이다.
ServerArrayIndex는 세션 검색 결과 배열에 해당 세션이 몇 번째로 저장되어 있는지를 뜻한다. 각각의 세션에 대한 위젯(방)이 같은 순서로 보여지기 때문에 의미 있는 정보이다.
사용자가 여러 개의 세션을 찾았을 때 어느 세션에 입장할 것인지를 결정하는 데 필요하다.
Join 버튼을 누르면 호스가 만든 세션에 참가한다.
Players가 0/2로 보이는 것은 아마 LAN으로만 테스트해서? 그런 것 같은데 잘 모르겠다.
앞으로의 개발 방향
지금까지 개발한 내용은 여러 개의 튜토리얼을 참고하여 단순하게 구현한 멀티플레이어 FPS 게임의 프로토타입이라고 볼 수 있다. 앞으로 여기에 기능을 추가해 나가면서 실감나고 재미있는 시스템을 구현하고자 한다.
앞으로 어떤 것들을 해볼까 하면 당장 떠오르는 것들은 5가지 정도가 있다.
1. 특수 기술을 사용할 때 셰이더를 적용하기
2. 지형 지물을 생성하는 툴을 제작 (DirectX로) , 생성한 모델을 넣어보기
3. 캐릭터의 도약, 순간이동 능력, 획득할 수 있는 아이템 구현하기
4. 다양한 머터리얼 제작해보고 적용해보기
5. 대중적인 플러그인 다뤄보기
처음에는 서버도 직접 구현하는 것을 목표로 했으나 할 수 있다면 가장 마지막에 도전해 볼 생각이다..
'언리얼 5 > 게임 개발 일지' 카테고리의 다른 글
FPS 게임 개발 #14 (스킬 컴포넌트 설계하기, Gameplay Ability System 정리) (0) | 2022.12.18 |
---|---|
FPS 게임 개발 #12 (스팀 온라인 서브시스템 테스트, 세션 리스트 검색) (0) | 2022.11.20 |
FPS 게임 개발 #11 (세션 만들기, 찾기, 참가하기) (0) | 2022.11.19 |
FPS 게임 개발 #10 (온라인 서브 시스템 스팀 모듈 세팅, 메인 메뉴 UI 디자인) (0) | 2022.11.18 |
FPS 게임 개발 #9 (캐릭터 죽음 처리 : 리스폰, 카메라 워킹) (0) | 2022.11.17 |