Releases: iFunFactory/engine-plugin-ue4
V144-experimental
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
Experimental 릴리즈 노트
수정 사항
- Session Reliability 기능 활성화 시 ack 메세지 전송이 지연되는 버그를 수정하였습니다.
위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.
V137-experimental
Experimental 릴리즈 노트
수정 사항
- 안드로이드 OS에서 Opessl 랩핑 라이브러리를 찾지 못하는 버그를 수정하였습니다.
- 안드로이드 OS 에서의 일반적인 공유 라이브러리 사용 규칙을 따라 파일명을 libopenssl_wrapper.so로 수정했습니다.
- 이 수정으로 안드로이드 OS 중 일부 상위 버전 뿐 아니라 하위 버전에서도 정상적으로 라이브러리를 찾을 수 있게 됐습니다.
위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.
V136-experimental
Experimental 릴리즈 노트
Breaking Changes
아래 수정 사항으로 인해 .proto
파일을 다시 컴파일 해야합니다.
수정 사항
- Standard Library 의 동적 메모리 할당자를 사용하는 경우 iPhone XS에서 크래시 할 수 있는 문제를 해결하기 위한 코드를 V127 버전으로 되돌렸습니다.
- 먼저, 이 문제를 해결하기 위해 두 가지 방법으로 접근하는 과정에서 사용자 여러분에게 혼란을 드린 점 죄송합니다.
- 각 버전 별 수정 내용과 알려진 문제는 다음과 같습니다.
- V127 버전 : fun::{container} 인터페이스를 만들어서 플러그인 내부 코드 및 Protobuf 컴파일 결과물에서 사용하는 std::{container}를 대체하도록 변경.
- 문제점 : 사용자정의
.proto
파일의 경우, 네이밍 컨벤션이 다양하여 의도하지 않은 문자열 치환이 오류를 유발.
- 문제점 : 사용자정의
- V134 버전 : V127 수정 내용을 취소하고, UE4 의 동적 메모리 할당자를 강제로
ANSI
타입으로 지정.- 문제점 :
ANSI
타입은 UE4 의 메모리풀을 사용하지 않기 때문에 성능저하의 원인이 됨.
- 문제점 :
- V127 버전 : fun::{container} 인터페이스를 만들어서 플러그인 내부 코드 및 Protobuf 컴파일 결과물에서 사용하는 std::{container}를 대체하도록 변경.
- 위와 같은 이유로 부득이하게 V127 의 수정으로 되돌리고, 단, 사용자 정의
.proto
파일의 protobuf 컴파일 결과물에 대해서는 번거로우시더라도 사용자가 직접 수정하는 것이 현재로써는 최선의 해결 해결 방법이라고 판단했습니다. - protobuf 컴파일 결과물의 코드 수정과 관련한 내용은 여기를 를 참고 해주시면 감사하겠습니다.
- iOS 플랫폼 빌드시
WITH_HOT_REALOD
에러가 수정되었습니다.
- UE4 version 4.21 iOS 플랫폼 환경에서 WITH_HOR_RELOAD 내부 정의가 추가되어 4.21 이상 버전에서 플러그인의
WITH_HOT_RELOAD
정의를 추가하는 코드가 제거되었습니다.
위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.
V134-experimental
Experimental 릴리즈 노트
Breaking Changes
아래 수정 사항으로 인해 .proto
파일을 다시 컴파일 해야합니다.
수정 사항
-
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
Experimental 릴리즈 노트
수정 사항
- NDK API Level 이 API 23 이상 버전으로 설정되었을 때 Openssl 라이브러리 충돌 문제가 수정되었습니다.
위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.
V131-experimental
Experimental 릴리즈 노트
새로운 기능
- FunapiSession 에 등록했던 콜백을 제거하는 기능이 추가되었습니다.
- 각 이벤트 콜백에 대응하는
Remove{EventType}Callback
함수와 모든 콜백을 제거해주는RemoveAllCallback
함수가 추가되었습니다.
- 각 이벤트 콜백에 대응하는
수정 사항
- SessionReliability 옵션 활성화 상태에서 메세지가 버려지던 버그가 수정되었습니다.
위 수정 사항에 대한 문의는 슬랙 채널 또는 funapi-support@ifunfactory.com 로 보내주시면 자세히 알려드리도록 하겠습니다.
V127-experimental
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
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 로 보내주시면 자세히 알려드리도록 하겠습니다.