[C++ Project] ConsoleRPG 프로젝트 회고
6월 18일부터 26일까지 총 9일간, 5명이 모여 C++ 기반의 윈도우 콘솔 RPG 게임을 개발했습니다.
6월 18일부터 26일까지 총 9일간, 5명이 모여 C++ 기반의 윈도우 콘솔 RPG 게임을 개발했습니다.

LyraGameState를 알아보고, 클라이언트에서 게임을 초기화하는 흐름을 알아보겠습니다.

Lyra 프로젝트는 Epic Games에서 공식적으로 제공하는 멀티플레이어 슈팅 게임 템플릿으로, 최신 언리얼 엔진 5의 구조와 기능을 실제 게임에 어떻게 적용하는지 잘 보여줍니다.

오브젝트들과 플레이어 간의 상호작용은 게임의 몰입감과 사용자 경험을 크게 향상시키는 중요한 요소입니다.

해당 프로젝트는 'TPS프로젝트'의 반동 패턴을 쉽게 생성/수정하고, 스크립트화 하는 것을 목적으로 시작되었습니다.Recoil Pattern Editor는 Unity에서 동작하며, 누구나 쉽게 반동 패턴을 수정하고 스크립트화 할 수 있도록 하는 것이 목적입니다.

탄창에 총알을 채웠으니 이제 방아쇠를 당겨야 할 차례입니다. 발사된 총알은 총구를 통해 날아가게 되지만 무조건 총구가 향한 방향으로 날아가진 않습니다. 총알의 종류나, 강선의 회전, 총기에서 발생한 진동 등 여러가지 요인으로 인해 총알의 비행을 방해하기 때문입니다.

총을 사용하기 위해서는 당연하게도 총알이 필요합니다. 그러니 총을 사용할 수 있도록 총알을 충전하는 것은 매우 중요하다고 할 수 있습니다. 여러 슈팅게임에서 재장전은 당연하게도 존재합니다. 하지만 재장전의 방식에는 여러가지가 존재합니다.

기존의 아이템 상호작용은 장비형 아이템에 대한 습득과 착용에는 문제가 없었지만, 습득 후 착용하지 않는 아이템에 대해서는 문제가 발생했습니다. 특히, 총알같이 같은 종류의 아이템의 스택이 증가하는 형태의 아이템이 스택되지 않거나 하는 등의 문제가 발생했었습니다.

기존 인벤토리의 경우에는 아이템 상호작용 구현에만 초점이 맞춰져 있었기 때문에 아이템 종류에 따른 슬롯 위치가 알맞지 않았습니다. 게다가 주무기가 2개 이상 주워진다던가, 다른 종류의 장비로의 스왑이 원활하지 않은 문제가 발생했었습니다.

개발은 결국 비용과의 싸움입니다. 여기서 비용은 조금 포괄적인 개념입니다. 돈이 될 수도 있고, 시간(일정)이 될 수도 있고, 연산에 필요한 데이터를 메모리에서 가져오는 행위도 될 수 있습니다.