2016년 8월 1일

Helios 의 UE4 용 단순 데이터 통합(SDI) 플러그인 도입

저자: Dennis Xu Ashley Ngu Ryan Davies and Derin Dutz

독립형 응용프로그램 중 외부 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”의 값을 블루프린트로 얻어오려면 간단하게 변수를 찾으면 됩니다.


… 그리고 프로젝트에 자동으로 생성된 노드를 놓으면 됩니다.



아래는 시작하는 방법입니다.

  1. 서버 설정하기로 데이터를 유지합니다.
  2. 플러그인 설정하기로 언리얼 엔진 4가 서버와 통신하도록 합니다.
  3. 플러그인 사용 설명글에서 노드와 사용 예에 대한 정보를 얻어 보세요.

 

현재 이 프로젝트를 언리얼 엔진 4로 개발하며 접한 문제와 저희가 사용하였던 해결책을 공유하게 되었는데 여러분에게 도움이 되었으면 합니다. 플러그인의 동작 및 이 오픈소스에 기여하고 싶으시다면 기술적 세부사항 설명글에서 읽어 보시기 바랍니다.