Skip to content

Releases: iFunFactory/engine-plugin-ue4

V144-experimental

20 May 08:56
Compare
Choose a tag to compare

Experimental 릴리즈 노트

플러그인이 언리얼 엔진 4.22 버전을 지원합니다.

Breaking Changes

  • 4.21 이후 PCH 파일을 명시적으로 지정하게 되어 4.21 이전 버전에서는 Funapi.Build.cs 파일의 PrivatePCHHeaderFile = "Private/FunapiPrivatePCH.h"; 코드를 제거해야 합니다.

새로운 기능

  • 서버 이동시 이동하려는 하는 서버에 맞게 세션 옵션을 설정하는 기능이 추가되었습니다.
    자세한 내용은 여기를 참고 해주시면 감사하겠습니다.
  • Ping 기능 사용하는 경우 RTT(round trip time) 을 확인하는 기능이 추가되었습니다.
    RTT(round trip time) 은 마지막 Ping 메세지를 주고 받는데 소요된 시간을 나타냅니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V138-experimental

08 May 08:31
Compare
Choose a tag to compare

Experimental 릴리즈 노트

수정 사항

  • Session Reliability 기능 활성화 시 ack 메세지 전송이 지연되는 버그를 수정하였습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V137-experimental

25 Apr 07:17
Compare
Choose a tag to compare

Experimental 릴리즈 노트

수정 사항

  • 안드로이드 OS에서 Opessl 랩핑 라이브러리를 찾지 못하는 버그를 수정하였습니다.
    • 안드로이드 OS 에서의 일반적인 공유 라이브러리 사용 규칙을 따라 파일명을 libopenssl_wrapper.so로 수정했습니다.
    • 이 수정으로 안드로이드 OS 중 일부 상위 버전 뿐 아니라 하위 버전에서도 정상적으로 라이브러리를 찾을 수 있게 됐습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V136-experimental

23 Apr 02:38
Compare
Choose a tag to compare

Experimental 릴리즈 노트

Breaking Changes

아래 수정 사항으로 인해 .proto 파일을 다시 컴파일 해야합니다.

수정 사항

  1. Standard Library 의 동적 메모리 할당자를 사용하는 경우 iPhone XS에서 크래시 할 수 있는 문제를 해결하기 위한 코드를 V127 버전으로 되돌렸습니다.
  • 먼저, 이 문제를 해결하기 위해 두 가지 방법으로 접근하는 과정에서 사용자 여러분에게 혼란을 드린 점 죄송합니다.
  • 각 버전 별 수정 내용과 알려진 문제는 다음과 같습니다.
    • V127 버전 : fun::{container} 인터페이스를 만들어서 플러그인 내부 코드 및 Protobuf 컴파일 결과물에서 사용하는 std::{container}를 대체하도록 변경.
      • 문제점 : 사용자정의 .proto 파일의 경우, 네이밍 컨벤션이 다양하여 의도하지 않은 문자열 치환이 오류를 유발.
    • V134 버전 : V127 수정 내용을 취소하고, UE4 의 동적 메모리 할당자를 강제로 ANSI 타입으로 지정.
      • 문제점 : ANSI 타입은 UE4 의 메모리풀을 사용하지 않기 때문에 성능저하의 원인이 됨.
  • 위와 같은 이유로 부득이하게 V127 의 수정으로 되돌리고, 단, 사용자 정의 .proto 파일의 protobuf 컴파일 결과물에 대해서는 번거로우시더라도 사용자가 직접 수정하는 것이 현재로써는 최선의 해결 해결 방법이라고 판단했습니다.
  • protobuf 컴파일 결과물의 코드 수정과 관련한 내용은 여기를 를 참고 해주시면 감사하겠습니다.
  1. iOS 플랫폼 빌드시 WITH_HOT_REALOD 에러가 수정되었습니다.
  • UE4 version 4.21 iOS 플랫폼 환경에서 WITH_HOR_RELOAD 내부 정의가 추가되어 4.21 이상 버전에서 플러그인의 WITH_HOT_RELOAD 정의를 추가하는 코드가 제거되었습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V134-experimental

16 Apr 09:42
Compare
Choose a tag to compare

Experimental 릴리즈 노트

Breaking Changes

아래 수정 사항으로 인해 .proto 파일을 다시 컴파일 해야합니다.

수정 사항

  1. Standard Library 의 동적 메모리 할당자를 사용하는 경우 iPhone XS에서 크래시 할 수 있는 문제를 V123-experimental 에서 수정했습니다만, proto 파일의 컴파일 결과물에서 std 네임스페이스 대신 fun 네임스페이스를 사용하도록 문자열을 치환하는 과정에서 의도치 않은 부분에 오류를 일으킬 수 있는 점을 확인했습니다.
    이에 iOS 빌드에 한하여 Unreal Engine 의 메모리 할당자 코드를 직접 수정해서 엔진 컴파일부터 진행하는 것이 가장 부작용이 적은 방법이라고 판단하여 부득이하게 이미 배포한 수정을 되돌리는 결정을 내렸습니다.

    • 플러그인 내 외부에서 fun:{container} 를 사용하던 코드를 std::{container} 를 사용하도록 다시 수정되었습니다.

    • iOS 플랫폼을 타겟으로 빌드해야 하는 경우, iPhone XS 기종에서 Head Memory Corruption 이 발생할 수 있기 때문에 언리얼 엔진 소스코드를 수정해서 엔진 빌드부터 진행 해 주셔야 합니다.

    • 이와 관련한 언리얼 엔진 소스 코드 수정 및 컴파일 방법은 여기를 참고해주세요

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V132-experimental

11 Apr 06:52
Compare
Choose a tag to compare

Experimental 릴리즈 노트

수정 사항

  • NDK API Level 이 API 23 이상 버전으로 설정되었을 때 Openssl 라이브러리 충돌 문제가 수정되었습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V131-experimental

04 Apr 01:13
Compare
Choose a tag to compare

Experimental 릴리즈 노트

새로운 기능

  • FunapiSession 에 등록했던 콜백을 제거하는 기능이 추가되었습니다.
    • 각 이벤트 콜백에 대응하는 Remove{EventType}Callback 함수와 모든 콜백을 제거해주는 RemoveAllCallback 함수가 추가되었습니다.

수정 사항

  • SessionReliability 옵션 활성화 상태에서 메세지가 버려지던 버그가 수정되었습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V127-experimental

19 Mar 09:07
Compare
Choose a tag to compare

Experimental 릴리즈 노트

Breaking Changes

1. 다음 변경 사항으로 인해 AutoReconnect 기능 활성화 시 TransportEventType::kConnectionFailed, TransportEventType::kConnectionTimedOut, TransportEventType::kDisconnected 가 호출되지 않습니다.

  • AutoReconnect 기능의 동작이 서버에 접속 실패 시 다시 시도 에서 서버와 연결이 끊어 졌을 때 재연결 시도 로 변경되었습니다.

기능 변경

  • AutoReconnect 의 기능이 서버에 접속 실패 시 다시 시도 에서 서버와 연결이 끊어 졌을 때 재연결 시도 로 변경되었습니다.

    • 인터페이스는 변경이 없으며, 내부 동작이 바뀌었습니다.

    • 재연결 시도 중임을 알리는 TransportEventType::kReconnecting 이벤트 타입이 추가 되었습니다.

    • AutoReconnect 기능 활성화시 TransportEventType::kConnectionFailed, TransportEventType::kConnectionTimedOut, TransportEventType::kDisconnected 이벤트들은 내부적으로 처리가 됩니다.

    • AutoReconnect 의 재접속 시도가 최종적으로 실패하면 TransportEventType::kStopped 이벤트가 발생합니다.

    • AutoReconnect 의 재접속 시도 간격은 Exponential back off 를 사용하며 재시도 간 대기 시간이 ConnectionTimeout 설정보다 크다면 재연결 시도를 멈추고 TransportEventType::kStopped 이벤트를 발생시킵니다.

수정 사항

  • 윈도우 Protobuf 빌드 스크립트(build-protobuf-win.bat ) 에서 리눅스 mv 함수를 사용하는 버그가 수정되었습니다.

  • Transport 옵션 중 압축과 암호화를 같이 사용하면 메세지 파싱에 실패하는 버그가 수정되었습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.

V123-experimental

05 Mar 10:44
Compare
Choose a tag to compare

Experimental 릴리즈 노트

Breaking Changes

1. 다음 변경 사항으로 인해 .proto 파일을 다시 컴파일 해야합니다.

  • std::{container} 대신 fun::{container} 를 사용하도록 변경되었습니다.

  • 이 함수는 std 컨테이너들을 특정 플랫폼에서 보다 안전하게 사용할 수 있게 래핑한 함수들입니다.

2. .proto 파일을 사용자가 원하는 위치에서 읽을 수 있도록 지원하기 위해 컴파일 방법이 변경되었습니다.

새로운 기능

  • 이제 사용자가 원하는 위치에 .proto 파일을 위치시키고, 빌드 할 수 있습니다.

    • Protobuf 빌드 스크립트의 이름을 동작에 맞게 변경했습니다.

      OS 기존 파일명 변경 후
      Windows make_win.bat build_protobuf_win.bat
      OSX make_mac.sh build_protobuf_mac.sh
    • .proto 파일을 읽어들일 경로와 생성한 .cc, .h 결과물을 저장할 경로를 지정할 수 있습니다.

    기존에 제공하던 빌드 스크립트는 ${Project_root}/Plugin/Funapi/ThirdParty/proto 외의 디렉토리에 .proto 파일을 위치시키기 위해서는 빌드 스크립트를 수정하기가 까다로웠기 때문에 경로를 변경하지 않는 방향으로 안내했습니다.

    그러나, 이제는 빌드 스크립트의 USER_PROTO_FILE_INPUT_PATH 를 설정해서 사용자가 원하는 위치에 있는 .proto 파일들을 컴파일하고 USER_PROTO_FILE_OUTPUT_PATH 를 설정해서 원하는 위치에 결과물을 저장할 수 있게 됐습니다.

    (주의) USER_PROTO_FILE_INPUT_PATH 의 하위 디렉토리는 참조하지 않습니다. (non-recursive)
    (주의) 기존 사용자들도 새로운 빌드 스크립트에서 USER_PROTO_FILE_OUT_PATH 변수를 Source/${Project_name} 으로 설정 해 줘야 정상적으로 동작합니다.

수정 사항

  • iPhone XS 환경에서 std::{container} 를 사용하면 Heap Memory Corruption이 발생할 수 있는 문제를 수정하였습니다.

    • std::{container} 에서 사용하는 alloc, free 함수가 언리얼 엔진의 FMemory::alloc, FMemory::free
      함수와 충돌을 일으킬 수 있는 부분을 fun::{container} 를 사용하도록 수정했습니다.

    • fun::{container} 는 iOS 환경일 때는 std::allocator를 사용하지 않도록 만든 래핑 인터페이스입니다.

    • 플러그인 내 외부에서 std:{container} 를 사용하던 코드를 fun::{container} 를 사용하도록 수정했습니다.

위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.