독립형 응용프로그램 중 외부 API 나 서비스의 영향을 받지 않는 것은 거의 없습니다. 그럴만 한 것이, 오픈소스 패러다임과 유명 API 들에 더욱 쉽게 접근할 수 있게 되어, 개발자들은 코드를 처음부터 작성하는 것 보다는 기존의 코드를 사용하는 것을 선호하게 되었습니다.
소프트웨어 분야에서 새로운 패러다임이 생겨나면 이를 뒷받침할 새로운 인프라스트럭쳐가 필요해집니다. 지난 몇 년간, 이렇게 연결된 풍부한 응용프로그램들의 장점을 이용하기 위해 만들어진 개발자 툴이 풍부합니다.
언리얼 엔진 4는 웹 서비스의 핵심적 측면에서 Twitter의 API 또는 AWS 서버에서의 데이터 등 외부 데이터 소스를 통합하여 다양한 기능들을 제공합니다. 이는 웹 API 통합 경험이 없는 사람에게는 어려운 도전이 될 수 있습니다. 종종 단순한 AJAX 호출로 웹 요청을 잘 처리하던 개발자들도, UE4 에서 동일한 기능을 내도록 하기 위해서는 c++ 코드로 작성했어야 했습니다.
오늘, 이 문제를 해결하기 위해서 Helios 단순 데이터 통합(Simple Data Integration, SDI) 플러그인을 오픈소스로 내 놓았습니다.
Helios SDI 플러그인은 자동으로 생성되는 블루프린트 노드(c++코드 불필요)를 사용하는 웹 서버로 직접 접속하여 외부 데이터를 언리얼 엔진으로 쉽게 통합할 수 있도록 돕습니다. 이 플러그인을 사용하면 개발자들은 iPad 등의 인터넷에 연결된 장치로 서버에 데이터를 보내서 다른 클라이언트에 정보를 제공하고 Twitter, Facebook, Youtube와 같은 서드 파티 API 등과 통신하도록 하는 게임 내 경험을 제어하는 작업을, UE4 어플리케이션에서 할 수 있습니다.
웹서버와 블루프린트 간의 서버-클라이언트 인터랙션을 통해 여러 분야의 개발자들은 외부 데이터 소스를 언리얼 엔진 4로 가져오거나 내보내면서 손쉽게 게임 속 경험을 풍부하게 만들 수 있습니다.
실용적인 예로, 네트워크가 연결된 iPad에서 실행되는 저희 데모 에서 총의 색 변화를 예로 들어보겠습니다. 서버가 설정되어 있고 그 속에 “DecalColor”라는 변수가 만들어져 있습니다. 그리고 iPad는 새로운 데이터를 서버에 보내도록 설정이 되어 있습니다. “DecalColor”의 값을 블루프린트로 얻어오려면 간단하게 변수를 찾으면 됩니다.
… 그리고 프로젝트에 자동으로 생성된 노드를 놓으면 됩니다.
아래는 시작하는 방법입니다.
- 서버 설정하기로 데이터를 유지합니다.
- 플러그인 설정하기로 언리얼 엔진 4가 서버와 통신하도록 합니다.
- 플러그인 사용 설명글에서 노드와 사용 예에 대한 정보를 얻어 보세요.
현재 이 프로젝트를 언리얼 엔진 4로 개발하며 접한 문제와 저희가 사용하였던 해결책을 공유하게 되었는데 여러분에게 도움이 되었으면 합니다. 플러그인의 동작 및 이 오픈소스에 기여하고 싶으시다면 기술적 세부사항 설명글에서 읽어 보시기 바랍니다.