iFun Engine Changelog (experimental)¶
v1.0.0-4156 (2019-06-27)¶
2019-06-27 14:36:32
- Distribution¶
Redis RPC 서비스 기능의 안정성을 크게 개선했습니다. 자세한 내용은 추후 문서로 업데이트될 예정입니다.
v1.0.0-4155 (2019-06-27)¶
2019-06-27 13:29:11
- Object¶
1.0.0-4113 이후 버전에서 이벤트가 강제 중지(ForceStop) 됐을 때 낮은 확률로 충돌할 수 있던 문제를 수정했습니다.
v1.0.0-4151 (2019-06-27)¶
2019-06-27 10:06:40
Warning
Breaking Changes
다음 변경 사항으로 인해 게임 서버 프로젝트를 다시 빌드해야 합니다.
RedisClient 에 Disconnect Callback 을 추가했습니다.
- Database¶
RedisClient 에 Disconnect Callback 을 추가했습니다.
RedisClient::RegisterDisconnectCallback() 으로 지정할 수 있습니다.
- System¶
종료처리 최대 대기 시간을 60 초에서 20 초로 변경하였습니다.
v1.0.0-4119 (2019-06-21)¶
2019-06-21 15:02:04
- misc.¶
C# 의 Billing.ValidateReceiptRequest() 콜백이 호출되기 전에 Request 객체가 해제되어 null 이 될 수 있는 문제를 수정했습니다.
v1.0.0-4115 (2019-06-20)¶
2019-06-20 14:08:16
- Object¶
1.0.0-4113 버전에서 존재하지 않는 키로 Fetch 한 직후, 같은 키로 오브젝트를 생성할 때 충돌할 수 있던 문제를 수정했습니다.
v1.0.0-4104 (2019-06-12)¶
2019-06-12 01:34:49
- Object¶
kReadCopyNoLock 타입으로 오브젝트를 읽을 때 같은 이벤트 안에서 kWriteLock 으로 쓴 값이 반영되는 문제를 수정했습니다.
v1.0.0-4101 (2019-06-05)¶
2019-06-05 16:37:29
- System¶
이벤트 타임아웃 발생 시 후속 이벤트를 계속 처리하게 할 수 있는 기능을 추가했습니다.
이벤트 안에서 ProcessNextEventAfterTimeout(EventTag) 함수를 선언하면 타임아웃 발생 이후에도 후속 이벤트를 처리합니다.
v1.0.0-4098 (2019-06-04)¶
2019-06-04 15:47:44
Warning
Breaking Changes
- 다음 변경 사항으로 인해 모든 서버를 함께 업데이트해야 합니다.¶
분산 환경에서 잠금(lock) 업그레이드 로직을 개선했습니다.
Google Play 인증 요청 인자 이름을 변경했습니다.
- Network¶
이제 웹소켓 서버도 SSL 기능을 지원합니다.
AES 128 알고리즘을 지원 중단할 예정입니다.
다른 알고리즘(chacha20) 사용을 고려해주세요.
특정 트랜스포트만 사용 시 연결 닫힘 메시지를 받을 수 없는 문제를 수정했습니다.
Websocket 만 사용할 때 발생합니다.
- Service¶
Google Play 인증 요청 인자 이름을 변경했습니다.
app_id 객체는 추후 삭제될 수 있으므로 app_provider_client_id 를 사용해주세요.
app_provider_client_id 객체에 저장된 값은 기존(app_id)과 동일합니다.
구글 플레이 인증 응답 시 유저의 Google ID 를 가져올 수 있습니다.
- Object¶
분산 환경에서 잠금(lock) 업그레이드 로직을 개선했습니다.
v1.0.0-4075 (2019-05-23)¶
2019-05-23 11:12:11
- misc.¶
CMAKE_BUILD_TYPE 을 지정하지 않을 때 빌드 에러가 발생하는 문제를 수정했습니다.
v1.0.0-4074 (2019-05-22)¶
2019-05-22 19:07:27
- misc.¶
Ubuntu 16.04 에서 libsodium, protobuf 의존성이 충돌하던 문제를 수정했습니다.
v1.0.0-4073 (2019-05-22)¶
2019-05-22 13:34:51
- Framework¶
이제 크래시 발생 시 스레드 이름도 함께 출력합니다.
- Object¶
두 개 이상의 키가 정의된 오브젝트를 사용할 수 없던 문제를 수정했습니다.
- System¶
라이센스 검사 시 낮은 확률로 잘못된 메모리에 접근할 수 있는 문제를 수정했습니다.
- Database¶
RedisClient 재 연결 시 간헐적으로 연결이 실패하는 버그를 수정했습니다.
- misc.¶
C# DLL 이 항상 Debug 구성으로 빌드되는 문제를 수정했습니다.
v1.0.0-4032 (2019-05-11)¶
2019-05-11 23:11:19
- Service¶
Steam 인증 기능 추가
사용자가 스팀에 로그인하고 게임에 접속했는지 검증합니다.
v1.0.0-4030 (2019-05-10)¶
2019-05-10 02:54:44
- misc.¶
funtest: 더 이상 서버 이동 중 세션 닫힘 핸들러를 호출하지 않습니다.
클라이언트 플러그인 동작과 동일한 환경을 테스트할 수 있도록 서버 이동 중에는 세션 닫힘 핸들러를 호출하지 않습니다.
C# funtest.RegisterRedirectionHandler() 함수를 추가했습니다.
서버에서 해당 funtest.Session 으로 리다이렉션 호출 시 이 콜백을 호출합니다.
v1.0.0-4026 (2019-05-09)¶
2019-05-09 10:38:00
- Object¶
Slow Event 로그에 더 자세한 정보를 포함하게 수정했습니다.
이제 분산 환경에서 락 업그레이드를 지원합니다.
- System¶
이벤트 스레드의 TPS 를 볼 수 있는 funapi/event_thread 카운터를 추가했습니다.
이벤트 태그 별 큐 길이를 볼 수 있는 funapi/event_tag 카운터를 추가했습니다.
- misc.¶
C# 에서 추가 멀티캐스트 함수들을 사용할 수 있습니다.
추가된 함수들은 다음과 같습니다.
void MulticastServer.CreateMulticastChannel(string channel, string token);
bool MulticastServer.GetMulticastChannel(string channel, out string token);
long MulticastServer.GetMulticastChannelTokenMap(out Dictionary<string, string> tokenMap);
void MulticastServer.DisallowToCreateClientsideMulticastChannel();
v1.0.0-4011 (2019-04-30)¶
2019-04-30 02:27:23
- Object¶
Event Profiling 값 오차를 개선했습니다.
Event Profiling 에 존재하지 않는 오브젝트의 접근 비율을 추가했습니다.
Event Profiling Summary 에 오브젝트 관련 통계를 추가했습니다.
- Management¶
다음 Deploy API 들을 추가했습니다. C++/C# 모두 사용할 수 있습니다.
환불, 실시간 공지, 미션
- System¶
코어 덤프를 남길 때 덤프에 메인 스레드 정보만 남는 문제를 수정했습니다.
v1.0.0-4006 (2019-04-25)¶
2019-04-25 18:12:19
- Network¶
개별 세션 별로 타임아웃을 설정할 수 있는 기능을 추가했습니다.
HandlerRegistry::OverrideSessionTimeout(session, timeout_in_ms) 함수를 세션이 닫히기 전에 사용하면, MANIFEST.json 값 대신 적용된 시간을 기준으로 세션 타임아웃을 계산합니다.
세션 타임아웃 값을 0으로 설정할 경우 타임아웃 기능을 비활성화합니다.
session_timeout_in_second 값 또는 HandlerRegistry::DebugSetSessionTimeout 함수 인자에 0을 지정한 경우 세션 타임 아웃 검사를 비활성화합니다.
v1.0.0-3999 (2019-04-19)¶
2019-04-19 17:23:12
- System¶
로그 파일 삭제 실패 시 예외(exception)가 발생할 경우 이를 로그를 출력합니다.
v1.0.0-3997 (2019-04-16)¶
2019-04-16 15:39:09
- Framework¶
enable_breakpad 플래그가 동작하지 않던 문제를 수정했습니다.
1.0.0-3810 과 1.0.0-3993 사이 버전에서 이 문제가 발생할 수 있습니다.
v1.0.0-3993 (2019-04-11)¶
2019-04-11 02:00:58
- Service¶
AccountManaget::SetLoggedOutGlobal() 실패 시 재시도 기능 추가
주키퍼 연결이 닫혔거나 재연결 도중 이 함수를 호출할 경우 3초를 간격으로 다시 시도하는 기능을 추가했습니다.
v1.0.0-3990 (2019-04-04)¶
2019-04-04 12:55:38
- Distribution¶
RPC 상태 관리 기능을 개선했습니다.
이제 1분 주기로 RPC 연결 정보를 로그로 출력합니다. 로그 레벨은 WARNING 입니다.
잘못된 RPC 응답이 올 경우 무시하게 수정했습니다.
- Service¶
멀티캐스트 서비스에서 널 포인터를 참조할 수 있던 버그를 수정했습니다.
- misc.¶
funtest 클라이언트가 간헐적으로 리다이렉트 후 응답이 없는 문제를 수정했습니다.
v1.0.0-3977 (2019-03-29)¶
2019-03-29 18:17:19
- Distribution¶
서버 간 연결이 끊긴 후 재연결될 때 크래시할 수 있는 문제를 수정했습니다.
- Network¶
특정 환경에서 UDP 전송이 불가능한 상태가 되는 문제를 수정했습니다.
v1.0.0-3973 (2019-03-23)¶
2019-03-23 21:17:23
- misc.¶
funtest::Session 에서 UDP, HTTP 트랜스포트를 생성할 수 없는 문제를 수정했습니다.
v1.0.0-3963 (2019-03-21)¶
2019-03-21 21:56:12
- misc.¶
funtest::Session 재사용 시 assertion 에 걸리는 문제를 수정했습니다.
v1.0.0-3955 (2019-03-13)¶
2019-03-13 10:39:39
Warning
Breaking Changes
- 다음 변경 사항으로 인해 모든 서버를 함께 업데이트해야 합니다.¶
Zookeeper 접속 정보가 서로 다른 두 서버가 같은 서버군에 존재할 때 늦게 구동된 서버를 시작하지 않고 즉시 종료하게 수정했습니다.
- Distribution¶
Zookeeper 접속 정보가 서로 다른 두 서버가 같은 서버군에 존재할 때 늦게 구동된 서버를 시작하지 않고 즉시 종료하게 수정했습니다.
v1.0.0-3943 (2019-03-08)¶
2019-03-08 08:38:27
- Object¶
Object 를 Key 로 Fetch 할 때 잠금 실패 시 잠금 경합 로그가 출력되지 않는 문제를 수정했습니다.
Object 를 Key 로 Fetch 할 때 잠금 실패 시 불필요한 Zookeeper 요청 및 Query 실행을 제거했습니다.
복합키를 쓸 때 컴파일 오류를 수정했습니다.
- misc.¶
C# Event Handler 의 Unhandled Exception 을 받을 수 있는 Handler 를 추가했습니다.
Event.SetUnhandledExceptionHandler(…) 함수를 이용하여 Event Handler 에서 처리되지 않은 Exception 을 받을 수 있습니다. 이 함수로 Exception 을 수신하면 해당 이벤트는 Abort 처리됩니다.
v1.0.0-3933 (2019-03-05)¶
2019-03-05 13:16:27
Warning
Breaking Changes
- 다음 변경 사항으로 인해 프로젝트를 다시 빌드해야 합니다.¶
일부 UTF-8 문자가 Key 에 포함되었을 때 FetchBy*() 로 불러올 수 없는 문제를 수정했습니다.
- Object¶
DB 전체 스키마 검사를 생략하는 기능을 추가했습니다.
“use_db_schema_simple_validation” 을 true 로 이 기능을 켜면 모든 Table, Procedure 를 검사하지 않고 Fingerprint 만 검사합니다. 스키마 업데이트가 필요할 경우 서버가 구동되지 않고 종료됩니다.
일부 UTF-8 문자가 Key 에 포함되었을 때 FetchBy*() 로 불러올 수 없는 문제를 수정했습니다.
- Service¶
Google+ API 를 더 이상 사용할 수 없습니다.
2019년 3월 7일에 Google+ 와 관련된 모든 API 가 삭제됩니다. Google+ 인증 또는 유저 정보 획득 관련 함수들은 이제 모두 에러를 반환합니다. Google+ 계정 관련 데이터 이전과 관련해 질문이 있거나 도움이 필요한 경우 funapi-support@ifunfactory.com 으로 연락 주시기 바랍니다.
v1.0.0-3919 (2019-02-28)¶
2019-02-28 09:14:46
Warning
Breaking Changes
- 다음 변경 사항으로 인해 게임 서버 프로젝트를 클린 후 다시 빌드해야 합니다.¶
ORM 관련 성능을 개선했습니다.
Session::GetPingSamplingInterval(), Session::GetPingTimeout() 추가했습니다.
- Utility¶
이제 base64 인코딩/디코딩 함수를 사용할 수 있습니다.
변환 함수를 사용하기 위해서는 funapi/utility/base64_helper.h 헤더 파일을 추가해야 합니다.
- Object¶
ORM 관련 성능 개선했습니다.
- Network¶
Session::GetPingSamplingInterval(), Session::GetPingTimeout() 함수를 추가했습니다.
v1.0.0-3906 (2019-02-22)¶
2019-02-22 10:08:09
Warning
Breaking Changes
- 다음 변경 사항으로 인해 DSM 사용 시 호스트 매니저와 엔진을 함께 업데이트해야합니다.¶
호스트 매니저 HTTP 메시지 규격을 변경했습니다.
- Service¶
스팟 인스턴스 가격 가격 조회 중 크래시할 수 있는 문제 수정.
호스트 매니저 HTTP 메시지 규격을 변경했습니다.
확장성을 위해 호스트 매니저의 메시지 규격을 변경했습니다. 새 엔진 버전은 기존 버전의 호스트 매니저와 호환이 가능하나 추후 호환되지 않을 수 있으므로 호스트 매니저와 엔진을 동일한 버전으로 업데이트해야 합니다.
데디케이티드 서버 커스텀 콜백 호출이 매치 ID 로 직렬화되지 않는 문제를 수정했습니다.
이제 매치 ID 로 직렬화한 이벤트 위에서 콜백을 실행합니다.
이벤트 타임아웃 시 멀티캐스트 서버에 등록한 세션을 처리하지 않던 문제를 수정했습니다.
- System¶
크래시 발생 시 “terminate called recursively” 가 대량으로 출력되는 문제를 수정했습니다.
이제 이벤트 타임아웃 핸들러를 두 개 이상 등록할 수 있습니다.
이벤트 타임아웃 발생 시 Event::RegisterTimeoutHandler() 에 등록한 핸들러들을 등록한 순서대로 호출합니다.
이벤트 이름을 가진 이벤트에서 Event::Invoke() 사용 시 이름을 상속하게 수정했습니다.
이벤트 이름이 있는 경우에만 이름을 상속합니다.
새 이벤트의 기본 이름은 <이벤트이름>_#<상속 횟수> 를 따릅니다.
상속 횟수는 1부터 시작합니다.
- Management¶
ApiService 가 body 도 로그에 출력할 수 있도록 수정되었습니다.
- api_service_logging_level 의 의미가 다음과 같이 변경되었습니다.
0: 오류에 한해서만 로그를 출력합니다.
1: 기존 2 와 같습니다. body 를 제외하고 출력합니다.
- 2: 1 의 내용과 body 를 함께 출력합니다. UTF-8 문자열이 아닌 경우
앞 256 bytes 를 hex string 으로 출력합니다.
- Network¶
데디케이티드 서버 오케스트레이터 로그를 개선했습니다.
호스트 매니저와 연결 실패 시 더 자세한 로그를 볼 수 있습니다.
- Framework¶
이벤트 처리 중 충돌하여 종료될 때 이벤트 이름이 로그에 출력되지 않는 문제를 수정했습니다.
- Distribution¶
네트워크 장애 시 RPC 연결의 안정성을 개선했습니다.
RPC 연결이 완전히 정리되지 않은 상태에서 재연결될 때 무시하는 문제를 수정했습니다.
- Database¶
종료가 약 1분간 지연될 수 있는 문제를 수정했습니다.
- misc.¶
서버가 충돌하여 종료되면 GDB 를 실행시킬 수 있는 명령어를 출력합니다.
정상 종료(SIGTERM, SIGQUIT 등) 일 때도 충돌로 표시되는 문제를 수정했습니다.
v1.0.0-3869 (2019-02-14)¶
2019-02-14 02:58:59
- Distribution¶
Redis RPC 서비스 기반 AccountManager 키 관리를 개선했습니다.
오브젝트 락 해제 메커니즘과 동일하게, AccountManager 컴포넌트가 등록한 계정 정보 키를 미처 삭제하지 못하고 서버를 종료한 경우 마스터가 이를 찾아 삭제합니다. 확인 주기는 ‘rpc_redis_session_timeout_in_seconds (기본 값: 10초)’ 플래그로 설정할 수 있습니다.
- Service¶
AccountManager 컴포넌트에 키 갱신 비활성화 기능 추가
MANIFEST.json 파일의 RPC 항목 안에 rpc_redis_disable_key_refresh 플래그를 true 로 설정하면 AccountManager 관련 키 갱신 기능을 비활성화합니다(기본 값: false).
- Object¶
게임 서버 시작 시 ORM 데이터베이스 스키마 검증 속도를 개선했습니다.
오브젝트 수가 늘어날수록 검사에 소요되는 비용이 기하급수적으로 늘어나는 문제를 수정했습니다. 다음은 개선 전과 후를 비교한 자료입니다. 스키마 생성 속도는 이후에도 점진적으로 개선할 예정입니다.
수정 전
오브젝트 수 20개: 검증 소요 시간 약 2.7초
오브젝트 수 40개: 검증 소요 시간 약 7.5초
오브젝트 수 80개: 검증 소요 시간 약 26초
수정 후
오브젝트 수와 관계 없이 1초 이내
- System¶
세션 닫힘 핸들러를 호출할 수 없거나 세션 만료 핸들러가 NULL 세션을 받던 문제를 수정했습니다.
크래시 덤프 생성 시 불필요한 스택 프레임 생성을 최소화하게 수정했습니다.
- Network¶
게임 서버 종료 시 IoService::Uninstall() 에서 멈출 수 있는 문제를 수정했습니다.
v1.0.0-3838 (2019-02-11)¶
2019-02-11 16:23:16
Warning
Breaking Changes
- Object¶
ORM 과 연결된 데이터베이스 연결 장애 시 점검 모드 시작 또는 강제로 서버를 종료할 수 있는 기능을 추가했습니다.
db_connection_failure_threshold_time_in_sec
플래그를 추가했습니다. DB 연결 장애 발생 후 해당 시간만큼 장애가 해결되지 않을 경우 MaintenanceService 컴포넌트가 있으면 점검 모드로 전환하며 그렇지 않을 경우 서버를 강제로 종료합니다. 플래그 값이 0이면 이 기능을 비활성화하며 기존과 동일하게 서버 실행을 유지합니다.
ORM 캐시 적재 중 낮은 확률로 충돌할 수 있던 문제를 수정했습니다.
- Network¶
MaintenanceService 컴포넌트는 이제 기본적으로 비활성화 상태로 동작합니다.
HTTP 로 등록되지 않은 메시지 타입을 수신할 때 Assert 로 충돌하는 문제 수정
Session Reliability 기능 사용 시 간혈적으로 세션을 종료하는 문제 수정
experimental 3782 이후 버전부터 발생할 수 있습니다.
- Service¶
Google+ API 사용 시 에러 로그를 출력합니다.
2019년 3월 7일에 Google+ 와 관련된 모든 API 가 삭제됩니다. 만약 게임 서버에 Google+ 관련 인증 로직이나 코드가 있다면 3월 7일 전까지 모두 제거해주시기 바랍니다. 계정 데이터 이전과 관련해 질문이 있거나 도움이 필요한 경우 funapi-support@ifunfactory.com 으로 연락 주시기 바랍니다.
- Database¶
Mariadb Connector 에 연결 장애 시 호출되는 핸들러를 추가했습니다.
Mariadb::Create() 의 기본 인자 값에 해당하는 상수 정의를 추가했습니다. 추가한 값들은 다음과 같습니다.
kDefaultConnectionCharset
kDefaultAutoRetryOnDeadlock
kDefaultClientFlags,
kDefaultSlowQueryLoggingTime
kDefaultConnectionFailureHandler
- Management¶
게임 서버 실행 중 점검 상태로 전환할 수 있는 StartMaintenance() 함수를 추가했습니다.
MaintenanceService 컴포넌트가 활성화 되어 있어야 작동합니다.
v1.0.0-3816 (2019-02-01)¶
2019-02-01 15:01:08
Warning
Breaking Changes
- 다음 변경 사항으로 인해 리더보드를 사용할 경우 프로젝트 코드를 수정해야 할 수 있습니다.¶
리더보드 점수 삭제(DeleteScore) 함수 콜백 인자를 수정했습니다.
점수 삭제 결과로 호출하는 ScoreDeletionResponseHandler 값의 error 값이 반대로(삭제 성공 시 true) 되는 문제를 수정했습니다. 이제 점수 삭제 성공 시 error 값을
true
가 아닌false
로 반환합니다.
- Leaderboard¶
리더보드 점수 삭제(DeleteScore) 함수 콜백 인자를 수정했습니다.
점수 삭제 결과로 호출하는 ScoreDeletionResponseHandler 값의 error 값이 반대로(삭제 성공 시 true) 되는 문제를 수정했습니다. 이제 점수 삭제 성공 시 error 값을
true
가 아닌false
로 반환합니다.
leaderboard_implicit_start
플래그를 추가했습니다.MANIFEST.json 파일 내 LeaderboardClient 항목에 이 플래그를 추가한 후 true 로 설정하면 리더보드 연결 없이 엔진을 시작할 수 있습니다. 이후 엔진은 주기적으로 리더보드 연결을 시도하며 연결하기 전에 호출하는 리더보드 함수들은 모두 실패를 반환합니다.
- Billing¶
biller_implicit_start
플래그를 추가했습니다.MANIFEST.json 파일 내 BillingClient 항목에 이 플래그를 추가한 후 true 로 설정하면 빌러 연결 없이 엔진을 시작할 수 있습니다. 이후 엔진은 주기적으로 빌러 연결을 시도하며 연결하기 전에 호출하는 빌러 함수들은 모두 실패를 반환합니다.
- Object¶
생성 중인 ORM 오브젝트를
kReadLock
으로 읽을 때 크래시할 수 있는 문제 수정생성 중인 ORM 오브젝트를
kReadLock
으로 가져온 후 롤백될 때 충돌할 수 있는 문제를 수정했습니다.
- Network¶
새 SSL 활성화 플래그를 추가했습니다.
use_ssl_on_{protocol}_{encoding} 대신 {protocol}_use_ssl 을 사용해주시기 바랍니다.
- Framework¶
서버가 크래시할 때 덤프 파일이 간헐적으로 남지 않는 문제를 수정했습니다.
v1.0.0-3806 (2019-01-24)¶
2019-01-24 14:44:00
Warning
Breaking Changes
- CentOS 7 패키지 저장소 업데이트 이후에는 반드시 이 엔진 버전을 사용해야 합니다.¶
CentOS 7 패키지 저장소(YUM) 업데이트 시 아이펀 엔진에서 사용하는 패키지와 충돌하는 문제를 수정했습니다.
- misc.¶
CentOS 7 패키지 저장소(YUM) 업데이트 시 아이펀 엔진에서 사용하는 패키지와 충돌하는 문제를 수정했습니다.
이 문제는 CentOS 7 버전에서만 발생하며 우분투를 사용 중이시면 무시해도 됩니다.
만약 엔진 버전을 업데이트할 수 없는 상황이라면 다음 명령어로 충돌하는 패키지들의 업데이트를 막을 수 있습니다.
$ sudo yum update –exclude=libwebsockets,libwebsockets-devel,libsodium
또는 /etc/yum.conf 파일을 열어 다음 구문을 추가해주셔도 됩니다.
exclude=libwebsockets-* libsodium
이미 저장소 업데이트를 하여 문제가 발생하는 경우, 슬랙 채널 또는 funapi-support@ifunfactory.com 로 연락주시면 자세히 안내해드리겠습니다.
- Network¶
HTTP 바디 길이가 지정한 길이를 넘어서면 500 대신 413을 반환합니다.
HTTP 트랜스포트 및 ApiService 사용 시 바디 길이가 ‘http_max_body_bytes’ 플래그 값보다 긴 경우 413(Payload Too Large)을 반환합니다.
HTTP status code enum 값 오타를 수정했습니다. (kNonAuthoriativeInformation -> kNonAuthoritativeInformation)
- Management¶
C# ApiService 의 API 는 UTF-8 문자열만 허용합니다.
C# 서버에서 바이너리 데이터를 ApiService 포트로 보낼 때 충돌하던 문제를 수정했습니다. ApiService 에서 바이너리 데이터를 받을 경우 415(Unsupported Media Type) 코드를 반환합니다.
- misc.¶
C# ApiService.RegisterHandler 함수의 URI 인자 검사를 개선했습니다.
URI 인자 마지막에 ‘/’ 문자가 없는 경우 추가하게 변경했습니다. 이 수정으로 마지막에 ‘/’ 문자가 없는 API URI 를 등록할 때 API 를 찾지 못하는 문제를 해결합니다.
호스트 매니저 로그 출력 개선
이제 호스트 매니저가 더 많은 로그를 출력합니다. 호스트 매니저 파일 안에 verbose 플래그 값을 True 로 설정하면 상세 내역을 출력합니다.
호스트 매니저 초기화가 실패하면 초기화 시 생성했던 프로세스를 종료합니다.
개발 환경에서 초기화 실패 시 생성했던 프로세스가 남아있는 문제를 위한 수정입니다.
v1.0.0-3794 (2019-01-09)¶
2019-01-09 23:50:28
- Distribution¶
rpc_redis_disable_key_refresh
플래그를 추가했습니다.MANIFEST.json 파일의 Rpc 항목 안에
rpc_redis_disable_key_refresh
플래그를 true 로 설정하면 오브젝트 갱신 기능을 비활성화합니다(기본 값: false).오브젝트 갱신은 ‘cache_expiration_in_ms’ 밀리 초 단위로 오브젝트들을 갱신하는 기능으로 추후 삭제할 예정입니다. 현재는 플래그 설정으로만 비활성화가 가능합니다. 이 기능을 비활성화하면 일정 주기마다 발생하는 부하를 크게 줄일 수 있습니다.
Redis 기반 RPC 서비스 사용 중 전체 키를 삭제할 경우 멈추는 문제를 수정했습니다.
flushall 을 했을 때 정상적으로 종료할 수 없었던 문제를 수정했습니다.
Redis 기반 RPC 사용 중 서버를 종료할 때 키가 추가될 수 있는 문제 수정
종료 중일 때는 Redis 기반 RPC 사용을 중단하여 오브젝트 소유권을 얻지 못하게 합니다.
- Network¶
세션 및 트랜스포트 객체, 소켓 연결 관련 로그 출력을 개선했습니다.
이제 언어 설정에 따라 한국어로 된 메시지를 볼 수 있습니다.
- System¶
이벤트 관련 로그 출력을 개선했습니다.
이제 언어 설정에 따라 한국어로 된 메시지를 볼 수 있습니다.
- misc.¶
로그를 저장할 디렉토리 용량이 부족하면 경고를 출력한 후 서버를 실행하지 않게 변경했습니다.
v1.0.0-3776 (2018-12-14)¶
2018-12-14 16:56:27
- Network¶
세션을 닫을 때 보내지 않은 마지막 메시지를 간헐적으로 누락하던 문제를 수정했습니다.
닫힌 세션으로 클라이언트 리다이렉션 시 충돌하는 대신 경고를 출력합니다.
use_session_reliability
기능을 활성화했을 때만 충돌했으나 더 이상 충돌하지 않습니다.
웹소켓 메시지 처리 성능 개선을 위해 프레임 경계 처리를 하지 않도록 변경했습니다.
- Database¶
Mariadb Connector 로 보낸 쿼리가 일정 시간 안에 끝나지 않으면 로그를 출력합니다.
Mariadb Connector 의 Create() 함수에
slow_query_logging_time_in_ms
인자를 추가했습니다. 기본값은 5000 ms (5초) 입니다.
- Framework¶
세션 연결 및 메시지 전송 관련 로그 출력을 개선했습니다.
이제 언어 설정에 따라 한국어로 된 로그 메시지를 볼 수 있습니다.
v1.0.0-3724 (2018-11-30)¶
2018-11-30 14:54:52
- Distribution¶
데디케이티드 서버 RPC 메시지 출력을 개선했습니다.
이제 언어 설정에 따라 한국어로 된 메시지를 볼 수 있습니다.
- misc.¶
Linux 데디케이티드 서버 호스트에서 game_ip 플래그를 사용할 수 있습니다.
game_ip 플래그를 설정한 경우 데디케이티드 서버 생성(Spawn) 후 클라이언트가 접속할 때 데디케이티드 서버 주소 대신 game_ip 주소를 사용합니다.
Dedicated Server Host에서 Redis auth 를 설정할 수 있습니다.
v1.0.0-3714 (2018-11-28)¶
2018-11-28 15:06:37
Warning
Breaking Changes
다음 변경 사항으로 인해 게임 서버 프로젝트를 다시 빌드해야 합니다.
Redis RPC 서비스 환경에서 비정상 종료된 서버의 오브젝트 소유권을 오랜 시간 해제하지 못하는 문제를 개선했습니다.
다음 변경 사항을 적용하기 위해서 모든 서버를 함께 업데이트 해야 합니다.
Redis RPC 서비스에서 오브젝트를 소유할 때 사용하는 키를 고정 방식에서 서버 실행 시마다 변경하는 방식으로 변경하였습니다.
다음 변경 사항으로 인해 코드 수정이 필요할 수 있습니다.
세션으로부터 수신한 메시지를 후킹하는 시점이 이벤트 실행 전으로 변경되었습니다.
수정에 영향을 받는 함수는 다음과 같습니다.
InstallProtobufMessageHandlerHook
InstallProtobufMessageHandlerHook2
InstallJsonMessageHandlerHook
- Distribution¶
Redis RPC 서비스가 Redis Sentinel 을 지원하도록 개선했습니다.
Redis RPC 서비스에서 오브젝트를 소유할 때 사용하는 키를 고정 방식에서 서버 실행 시마다 변경하는 방식으로 수정하였습니다.
Redis RPC 서비스를 사용 시 오브젝트 락 해제 메커니즘 개선했습니다.
Redis RPC 에 속하는 여러 서버 중 하나를 마스터로 선정합니다.
이 서버는 주기적으로 연결이 끊어진 서버를 찾은 다음 연결된 오브젝트가 있는지 확인한 후 락 해제를 진행합니다.
확인 주기는 ‘rpc_redis_session_timeout_in_seconds (기본 값: 10초)’ 플래그로 설정할 수 있습니다.
RPC 메시지를 받았을 때, 태그명을 지정하면 같은 태그명끼리 여러 흐름에서 처리 할 수 있도록 수정하였습니다.
- Network¶
세션으로부터 수신한 메시지를 후킹하는 시점이 이벤트 실행 전으로 변경되었습니다.
내부 구현의 변경으로 수신 메시지를 후킹하는 함수 내에서 ORM 을 직접 호출하지 못하도록 변경되었습니다.
Event::Invoke 를 사용하여 ORM 을 호출하는 코드를 이벤트 내부에서 실행하도록 변경해주어야 합니다.
- Database¶
RedisClient 콤포넌트도 Redis Sentienl 을 지원하도록 개선하였습니다.
- misc.¶
C# 환경에서 flavor 를 설정해서 생성한 deb 패키지 파일이 설치에 실패하는 문제를 수정하였습니다.
v1.0.0-3698 (2018-11-15)¶
2018-11-15 18:10:58
- Network¶
Unity WebGL을 위한 HTTP CORS 처리 추가.
- Database¶
DB 연결 시도중 Too many connections 에러 발생시 libmariadb 라이브러리에서 크래시할 수 있는 문제 수정.
use_db_char_type_for_object_id
가 설정되어 있는 경우, {ObjectName}.FetchRandomly() 실행에 실패하는 문제 수정.
v1.0.0-3690 (2018-11-07)¶
2018-11-07 10:15:31
Warning
Breaking Changes
다음 변경 사항으로 인해 웹 소켓을 사용하는 경우 클라이언트 플러그인을 v253 이상의 버전으로 함께 업데이트해야 합니다.
AccountManager 관련 websocket 지원 강화
다음 변경 사항을 적용하기 위해서는 같은 서버군 안에 있는 모든 서버를 업데이트 하고 프로젝트를 다시 빌드해야 합니다.
역알파벳 순서로 정의한 키를 복합키로 지정할 경우 DB 생성이 실패하는 문제 수정
다음 변경 사항으로 인해 funtest 기능을 사용할 경우 프로젝트를 다시 빌드해야 합니다.
funtest::ConnectTcp
인자로 use_ssl(기본값:false) 추가.
- Database¶
RedisClient 동기 함수 사용 시 이벤트 전체가 멈출 수 있는 버그 수정
invoke_as_event=true
로 생성한RedisClient
객체로 동기 함수를 여러 이벤트에서 동시에 호출할 때 이벤트 전체가 멈추던 버그를 수정했습니다.
MariaDBConnector 연결 유지 기능을 추가했습니다.
마지막으로 쿼리를 실행한 지 30초가 지난 경우 서버로 간단한 쿼리를 전송해 연결이 끊어지지 않게 합니다.
- Billing¶
결제 요청 타임아웃 기능 추가
MANIFEST.json
파일 안의BillingClient
항목에서biller_request_timeout_seconds(기본 값: 30)
을 통해 값을 변경할 수 있습니다.
빌러 요청 관련 에러 메시지를 업데이트했습니다.
이제 머신 언어가 한글로 설정된 경우 에러 메시지를 한글로 볼 수 있습니다.
- Leaderboard¶
리더보드 요청 타임아웃 기능 추가
MANIFEST.json
파일 안의LeaderboardClient
항목에서leaderboard_request_timeout_seconds(기본 값: 30)
을 통해 값을 변경할 수 있습니다.
리더보드 관련 에러 메시지를 업데이트했습니다.
이제 머신 언어가 한글로 설정된 경우 에러 메시지를 한글로 볼 수 있습니다.
- Object¶
역알파벳 순서로 정의한 키를 복합키로 지정할 경우 DB 생성이 실패하는 문제 수정
- System¶
AccountManager 관련 websocket 지원 강화
- Network¶
소켓 서버 시작 로그 출력 시 SSL 활성화 여부도 함께 출력합니다.
WebSocket 에 암호화 옵션 허용하게 수정
- Service¶
리더보드 비활성화 상태에서 관련 함수 호출 시 로그 출력
인증 서비스 테스트 모드 사용 시 출력되는 로그 변경
- misc.¶
funtest::ConnectTcp 인자로 use_ssl(기본값:false) 추가.
v1.0.0-3628 (2018-10-10)¶
2018-10-10 14:03:27
- Network¶
HttpServer, HttpSocket 에서 Undefined Behavior 가 발생하는 문제 수정
v1.0.0-3584 (2018-10-01)¶
2018-10-01 15:52:45
- Object¶
ORM 문자열 속성 길이의 자릿수가 바뀐 경우 정상적으로 처리하지 못하는 문제를 수정했습니다.
v1.0.0-3580 (2018-09-18)¶
2018-09-18 07:53:34
- Framework¶
JSON 해석할 때 UTF-8 BOM 무시하게 하는 옵션 추가
fun::Json::FromStringWithComments, FromStreamWithComments 가 deprecate 되었습니다. 이후부터는 FromString, FromStream 에 kAllowComment 옵션을 넣어 호출해주시기 바랍니다.
v1.0.0-3566 (2018-09-04)¶
2018-09-05 14:56:20
- System¶
AWS로 IPv4 주소 얻을 때 hostname 도 같이 얻게 수정
GetExternalHostname()
로 hostname을 가져올 수 있습니다.
v1.0.0-3501 (2018-08-17)¶
2018-08-17 10:35:51
- Service¶
데디케이티드 서버 매니저
에서 스팟 인스턴스를 사용할 수 있습니다.
- misc.¶
funtest에서 웹소켓 프로토콜을 사용할 수 있습니다.
C#에서
InstallJsonMessageChecker()
함수를 사용할 수 있습니다.C#에서
InstallProtobufMessageChecker()
함수를 사용할 수 있습니다.
v1.0.0-3489 (2018-08-07)¶
2018-08-07 07:08:16
- Network¶
압축 기능을 사용할 경우 서버 시작 시 관련 로그를 출력합니다.
서버 시작과 관련된 로그 포멧 수정
압축 기능 사용할때 에이전트와 통신이 실패하는 문제 수정
- misc.¶
funtest 압축 기능 추가
v1.0.0-3474 (2018-08-02)¶
2018-08-02 14:12:50
- Object¶
ORM: 지연 업데이트 기능 사용 시 맵 요소 생성, 삭제가 지연 반영되는 문제 수정
ORM: 지연 업데이트 기능 사용 시 배열 요소 생성, 삭제가 지연 반영되는 문제 수정
- Service¶
World 의 Broadcast, FindSession 의 잘못된 Assert 제거
AccountManager에서 RedirectClient 시 서버의 rpc tags도 같이 반환하도록 수정
- Distribution¶
레디스 기반 분산 환경에서 키 삭제 시 서버가 멈출 수 있는 버그 수정
v1.0.0-2936 (2018-07-12)¶
2018-07-12 10:36:56
- Service¶
DSM: SpawnRequest 요청 시 region 없이 생성하면 랜덤하게 region을 생성하도록 변경했습니다.
v1.0.0-2934 (2018-07-10)¶
2018-07-10 17:08:42
- Network¶
session reliability
사용 시 전송 메시지 큐 길이 경고 임계값을 수정할 수 있게 변경했습니다.MANIFEST.json
의SessionService
항목에서session_reilability_send_queue_warning_threshold(기본값: 64)
을 통해 임계값을 변경할 수 있습니다.
- misc.¶
funtest C#: 정수형 메시지 타입(
message_type
)을 인자로 받는SendMessage
함수를 추가했습니다.funtest C#: 정수형 메시지 타입(
message_type
)을 인자로 받는 메시지 핸들러(RegisterMessageHandler
)를 추가했습니다.
v1.0.0-2923 (2018-07-03)¶
2018-07-03 18:23:52
Warning
Breaking Changes
다음 변경 사항으로 인해
데디케이티드 서버 매니저
를 사용 중인 프로젝트의MANIFEST.json
를 수정해야 할 수 있습니다.데디케이티드 서버 매니저
:dedicated_server_defunct_timeout_seconds
플래그 이름을dedicated_server_launch_timeout
으로 변경했습니다.
- Service¶
데디케이티드 서버 매니저
:dedicated_server_defunct_timeout_seconds
플래그 이름을dedicated_server_launch_timeout
으로 변경했습니다.데디케이티드 서버 매니저
:dedicated_server_terminate_defunct_instances
플래그를 추가했습니다. 이 값이true
로 설정된 경우dedicated_server_launch_timeout(기본 값: 300초)
안에 ready API를 받지 못한 인스턴스들을 자동으로 종료합니다.
- Management¶
일부 환경에서
Counter API
정보에NIC
,디스크 사용량
이 정상적으로 반영되지 않던 문제를 수정했습니다.
- misc.¶
Flavor
가 지정된 프로젝트에서upstart/systemd
스크립트가 정상적으로 생성되지 않는 문제를 수정했습니다.
v1.0.0-2911 (2018-06-22)¶
2018-06-22 01:29:29
- Service¶
DS Host: 프로세스 생성 타임아웃 옵션 추가
매치 요청에 대한 프로세스가 지정된 시간(
request_timeout_seconds
, 기본 값: 10초) 초 안에 실행되지 않으면 매치 실패로 간주합니다.
DS Host: 호스트 서비스에서 생성한 프로세스가 비정상적으로 종료된 경우 에러를 출력합니다.
- Management¶
Counter API 정보에 캐시 메모리 크기(
cachedram
)가 추가되었습니다.
v1.0.0-2904 (2018-06-15)¶
2018-06-15 14:14:29
- Service¶
DSM: 호스트 서버 연결 실패 로그에 연결을 시도했던 주소가 출력되게 변경되었습니다.
dedicated-server-host 로그 추가
인증 실패, 매치 관련 로그들이 추가됐습니다.
ds state 서버에서 JWT 인증 실패 시 로그가 출력됩니다.
v1.0.0-2890 (2018-06-11)¶
2018-06-11 16:53:39
- Service¶
DSM: experimental 2885 버전에서 레디스 및 AWS 기반 데디케이티드 서버를 사용할 경우 인스턴스 확장이 정상적으로 동작하지 않던 문제가 수정되었습니다.
v1.0.0-2885 (2018-06-08)¶
2018-06-08 13:41:07
- Service¶
DSM: Spawn 요청이 중복 발생할 수 있던 문제가 수정되었습니다.
DSM: 인스턴스 생성 실패 로그가 구체적으로 변경되었습니다.
생성 인스턴스 대기 / 용량 부족 / 잘못된 요청 등으로 구분됩니다.
DSM: Spawn 요청이 실패한 경우 로그로 출력
- Object¶
MapRef 에 Size() 함수 추가
C# - MapRef 에 Length 추가
v1.0.0-2872 (2018-06-01)¶
2018-06-01 10:18:19
- Service¶
데디케이티드 서버 매니저
컴포넌트의 인스턴스 생성/종료 로직이 개선되었습니다. 개선된 내용은 다음과 같습니다.버전이 명시된 경우 항상 새 버전을 기준으로 인스턴스를 생성합니다. 이 변경으로 인해 버전이 바뀌는 순간 일시적으로 인스턴스 개수가
max_instances
값보다 커질 수 있습니다.인스턴스 종료는 항상 전체 인스턴스를 기준으로 합니다. 이 변경으로 인해 버전이 바뀌는 순간에도
reversed_instances
값만큼 대기 중인 인스턴스들이 종료되지 않습니다.새 버전의 인스턴스가 모두 준비된 이후에는 더 이상 이전 버전 인스턴스를 사용하지 않으며, 남아있는 이전 버전 인스턴스들은 모든 매치가 끝나는 순서대로 죵로됩니다.
데디케이티드 서버 매니저
컴포넌트를 통해 생성했지만 일정 시간 동안 Redis에 등록되지 않은 서버들을 출력합니다.dedicated_server_defunct_timeout_seconds=<정수>
(기본 값:300, 5분)을 사용합니다.
v1.0.0-2862 (2018-05-23)¶
2018-05-23 14:24:49
Warning
Breaking Changes
다음 변경 사항으로 인해
데디케이티드 서버 매니저
에서 생성했던 인스턴스들을 종료 하거나,funapi_internal_tag:dsm
태그를 추가해야 합니다.데디케이티드 서버 매니저
컴포넌트에서image_id
를 변경했을 때 인스턴스들을 식별하지 못하는 문제가 수정되었습니다.
- Service¶
데디케이티드 서버 매니저
컴포넌트의 aws_settings 업데이트 API 호출이 실패할 때 적절한 에러 로그를 출력합니다.데디케이티드 서버 매니저
컴포넌트에서image_id
를 변경했을 때 인스턴스들을 식별하지 못하는 문제가 수정되었습니다.데디케이티드 서버 매니저
컴포넌트에서image_id
를 변경했을 때 오래된 버전의 인스턴스를 종료하지 못하는 문제가 수정되었습니다.데디케이티드 서버 매니저
컴포넌트에서/version
API 호출 시 AWS 및 버전 정보가 있을 경우 오래된 버전을status
:deprecated
로 구분합니다.
v1.0.0-2849 (2018-05-15)¶
2018-05-15 08:44:28
- Service¶
데디케이티드 서버 매니저
에 여러 리전이 설정되었을 때 인스턴스가 간헐적으로 종료되지 않던 문제가 수정되었습니다.데디케이티드 서버 매니저
에서 Describe API 함수 호출이 실패할 때 이제 지수 백오프 알고리즘을 사용하여 재시도합니다.AWS 에서 인스턴스 정보 가져오는 방법이 개선되었습니다.
데디케이티드 서버 매니저
에서 사용할 수 있는PreRedirectionHook
함수가 추가되었습니다.이 함수는
데디케이티드 서버 매니저
가 클라이언트로 리다이렉션 메시지를 보내기 전 호출되며false
를 반환할 경우 클라이언트로 리다이렉션 메시지를 보내지 않습니다.
데디케이티드 서버 매니저
가 AWS 인스턴스를 계산할 때instance_name
이 설정된 경우image_id
와instance_name
과 일치하는 인스턴스만 식별합니다.
- Billing¶
트랜잭션 ID를 가져올 수 있는 C# 인터페이스가 추가되었습니다.
상품(product) 구매 정보가 없는 경우 이에 대한 C# 에러 코드가 추가되었습니다.
v1.0.0-2827 (2018-04-25)¶
2018-04-25 16:36:27
Warning
Breaking Changes
다음 변경 사항으로 인해 게임 서버를 다시 빌드해야 합니다.
영수증 정보 안에 product 정보가 없으면 에러로 분류되고 이에 따른 에러코드가 추가되었습니다.
- Service¶
데디케이티드 서버 컴포턴트의 AWS 관련 주요 로그들은 기본적으로 출력되며 추가된 목록은 다음과 같습니다.
인스턴스 생성 요청 전, 종료 요청 전, 태깅 요청 성공, 인스턴스 조회 후
종료 조건에 부합하는 인스턴스 발견 시, 매치 요청에 부합하는 인스턴스 발견 시
데디케티이드 서버 컴포넌트에서 AWS EC2 목록과 일치하지 않는 Redis 키가 발견되면 자동으로 삭제합니다.
- Billing¶
영수증 정보 안에 product 정보가 없으면 에러로 분류되고 이에 따른 에러코드가 추가되었습니다.
영수증 검증 시 트랜잭션 id를 가져올 수 있는 인터페이스가 추가되었습니다.
v1.0.0-2821 (2018-04-19)¶
2018-04-19 11:02:52
- Service¶
데디케이티드 서버에서 EC2 인스턴스 태깅 시 같은 리전만 참조하게 변경
데디케이티드 서버에서 유휴 인스턴스 계산 시 같은 리전만 참조하게 변경
v1.0.0-2817 (2018-04-18)¶
2018-04-18 15:15:20
- Service¶
2808 experimental의 DedicatedServerManager 컴포넌트에서 image-id 파싱이 실패하던 문제가 수정되었습니다.
DedicatedServerManager 컴포넌트에서 AWS setting 값을 불러오거나 업데이트 할 때 setting 내용을 보여주는 로그가 추가되었습니다.
이 때 api key, secret과 같이 민감한 값들은 ***** 와 같이 표시됩니다.
v1.0.0-2808 (2018-04-16)¶
2018-04-16 11:50:11
- Service¶
매치메이킹 ProgressCallback2에서 Match context가 누락되던 문제가 수정되었습니다.
데디케이티드 서버 매니저 상세 로그 옵션이 추가되었습니다.
DedicatedServerManager 컴포넌트의 dedicated_server_verbose_log 플래그를 `true`로 설정할 경우 상세 로그를 볼 수 있습니다.
데디케이티드 서버에서 사용하는 `user_data`가 빈 문자열일 때 크래시하는 문제가 수정되었습니다.
데디케이티드 서버에서 사용하는 `image_id`가 8글자 미만일 때도 정상적으로 동작하도록 수정되었습니다.
- Management¶
이제 Http::Request, http::Request2 객체를 통해 클라이언트의 IP를 확인할 수 있습니다.
v1.0.0-2801 (2018-04-10)¶
2018-04-10 08:54:17
- misc.¶
데디케이티드 서버 매니저가 특정 상황에서 EC2 인스턴스를 식별할 수 없던 문제가 수정되었습니다.
v1.0.0-2800 (2018-04-07)¶
2018-04-07 17:26:40
- misc.¶
데디케이티드 서버 매니저에서 다른 AWS 리전 정보를 가져오는 문제가 수정되었습니다.
v1.0.0-2798 (2018-04-06)¶
2018-04-06 11:23:59
- misc.¶
데디케이티드 호스트 서비스에서 AWS 리전이 아닌 AZ 정보를 가져오는 문제가 수정되었습니다.
v1.0.0-2796 (2018-04-04)¶
2018-04-04 17:13:09
- misc.¶
2794 experimental 버전에서 C# Protobuf 메시지 생성이 실패할 수 있던 문제가 수정되었습니다.
v1.0.0-2794 (2018-04-02)¶
2018-04-02 13:29:18
- Service¶
클라이언트 리소스 파일을 필터링할 수 있는 .funignore 파일이 추가되었습니다.
필터링 기능은 funapi_client_resource_generator 및 엔진의 클라이언트 리소스 기능에서 사용 가능하며 .funignore 파일 안에 정의된 Perl 정규 표현식 패턴과 일치하는 파일들을 리소스 목록에서 제외합니다.
- Object¶
Jinja2 2.8 버전에서 복합키 생성이 실패하던 문제가 수정되었습니다.
- Distribution¶
데이터베이스 비활성화시 레디스 기반 RPC를 사용할 수 없던 문제가 해결되었습니다.
- misc.¶
C#에서 빈 프로토버프 메시지를 받을 때 서버가 크래시하던 문제 수정
v1.0.0-2768 (2018-03-08)¶
2018-03-08 17:26:03
Warning
Breaking Changes
다음 변경 사항으로 인해 매치메이킹을 사용하는 모든 서버가 함께 업데이트 되어야 합니다.
ProgressCallback의 MatchContext 정보가 삭제되고 새로운 콜백(ProgressCallback2)이 추가됐습니다.
MatchContext를 계속 사용하려면 ProgressCallback2의 Match 정보를 사용하면 됩니다.
UpdateMatchPlayerContext C++ 함수가 추가되었습니다.
이 함수는 매치메이킹 대기열에 있는 플레이어의 컨텍스트(Json)를 변경할 때 사용합니다.
- Service¶
DSM: AWS 설정의 user_data 를 파일에서 읽을 수 있게 수정
ProgressCallback의 MatchContext 정보가 삭제되고 새로운 콜백(ProgressCallback2)이 추가됐습니다.
MatchContext를 계속 사용하려면 ProgressCallback2의 Match 정보를 사용하면 됩니다.
UpdateMatchPlayerContext C++ 함수가 추가되었습니다.
이 함수는 매치메이킹 대기열에 있는 플레이어의 컨텍스트(Json)를 변경할 때 사용합니다.
v1.0.0-2762 (2018-02-26)¶
2018-02-26 05:36:49
Warning
breaking changes
MariaDB Connector를 사용 중이라면 서버를 다시 빌드해야합니다.
- Database¶
이제 MariaDB Connector가 SQL 타임스탬프 타입을 읽을 수 있습니다.
이제 MariaDB Connector에 Client 플래그를 설정할 수 있습니다.
- Service¶
데디케이티드 서버 매니저 서버에서 사용 중인 Redis 키가 삭제될 경우 복구될 수 있도록 변경됐습니다.
v1.0.0-2720 (2018-02-19)¶
2018-02-19 12:58:06
Warning
Breaking Changes
World GetAllObject 함수를 사용시 코드 수정이 필요할 수도 있습니다.
World GetAllObject 함수가 Type으로 필터하는 대신 임의의 필터를 추가할 수 있게 변경
- Service¶
World GetAllObject 함수가 Type으로 필터하는 대신 임의의 필터를 추가할 수 있게 변경
v1.0.0-2664 (2018-02-12)¶
2018-02-12 17:14:34
- Service¶
2663 experimental 버전에서 DSM 호스트 버전을 인식하지 못하는 문제가 수정되었습니다.
v1.0.0-2663 (2018-02-12)¶
2018-02-12 15:07:17
- Service¶
리더보드 리셋 전 스케줄 정보를 조회할 때 크래시가 발생할 수 있는 문제가 수정되었습니다.
리더보드 최초 리셋 시작 전 스케줄을 조회할 때, 잘못된 정보를 받을 수 있던 문제가 수정되었습니다.
v1.0.0-2648 (2018-02-09)¶
2018-02-09 07:33:36
- Service¶
experimental 2629에서 DSM에서 실행 중인 EC2 호스트 수가 1개로 고정되는 문제가 수정되었습니다.
DSM 호스트 버전이 명시된 경우 최신 버전만 사용합니다.
DSM 호스트 버전이 명시된 경우 확장시 항상 최신 버전을 사용하며, 오래된 버전부터 종료합니다.
v1.0.0-2629 (2018-02-06)¶
2018-02-06 14:47:54
- Management¶
Deploy Api Service에 다수의 유저를 제재하거나 제재 해제할 수 있는 API 추가
Deploy Api Service에 다수의 유저를 제재하거나 제재 해제할 수 있는 API 추가(C#)
- Service¶
DSM 인스턴스 버전 태깅 기능 추가
v1.0.0-2626 (2018-02-05)¶
2018-02-05 16:39:40
- Network¶
압축 옵션 설정 (transport 별 옵션으로 분리)
- Service¶
DSM 퍼포먼스 카운터 API에서 JWT 인증을 지원하도록 변경
v1.0.0-2623 (2018-02-02)¶
2018-02-02 10:38:33
- Service¶
World GetAllObject가 Type으로 필터할 수 있는 기능 추가
World에서 삭제된 오브젝트를 다시 삭제할 때 ASSERT 제거
DSM Region별 인스턴스 통계 API 추가
DSM Region별 서버 사용량 평균, 표준편차 API 추가
DSM에서 생성/종료된 EC2 인스턴스 수를 가져올 수 있는 API 추가
Dedicated Server Rpc C# 지원
- Network¶
메시지 압축 기능 추가
- Database¶
RedisClient: 알 수 없는 이유로 연결 실패하여 재연결할 때 크래시되는 버그 수정.
v1.0.0-2610 (2018-01-30)¶
2018-01-30 13:32:28
- Service¶
World 내의 모든 세션에게 메시지를 보내는 기능 추가
Dedicated Server Manager 지원(C#)
RedisClient 의 StringCallback 이 크래시하는 문제 수정(C#)
v1.0.0-2606 (2018-01-23)¶
2018-01-23 17:58:19
Warning
Breaking Changes
Google Play 인증 서비스를 사용시 게임 서버를 다시 빌드하셔야합니다(C#)
Google Play 인증 시 누락 된 Timeout 입력 인자 추가(C#)
- Service¶
개별 플랫폼 인증 검증 시 크래시하는 문제 수정(C#)
Google Play 인증 시 누락 된 Timeout 입력 인자 추가(C#)
v1.0.0-2603 (2018-01-19)¶
2018-01-19 18:29:05
- Service¶
DSM에서 DS Host -> Engine 통신을 LBS 거쳐서 할 수 있게 수정
DSM에서 OAuth 처리 누락된 콜백 수정
v1.0.0-2601 (2018-01-18)¶
2018-01-18 01:52:30
Warning
Breaking Changes
World 를 사용하는 경우 게임 서버를 다시 빌드해야 합니다
World MoveObject, MoveObjectTo 함수가 bool을 반환하도록 수정
다음의 변경 사항으로 인해 코드 수정이 필요할 수 있습니다.
TStore Interface를 OneStore 인터페이스로 변경
기존의 TStore 인터페이스는 deprecated 처리되었습니다. MakeTStoreReceipt 함수를 MakeOneStoreReceipt 함수로 변경하셔야 합니다.
- Service¶
TStore Interface를 OneStore 인터페이스로 변경
World MoveObject, MoveObjectTo 함수가 bool을 반환하도록 수정
AppleGameCenter 인증 검증 지원(C#)
- Database¶
MariaDB 연결 실패 시 크래시할 수 있던 문제 수정
v1.0.0-2596 (2018-01-16)¶
2018-01-16 07:06:29
- Object¶
분산 환경에서 키가 없는 오브젝트를 사용할 때 크래시할 수 있던 문제가 수정되었습니다.
v1.0.0-2595 (2018-01-15)¶
2018-01-15 18:13:47
Warning
Breaking Changes
다음의 변화로 인해 게임 서버를 다시 빌드해야 합니다. 또한 코드 수정이 필요할 수도 있습니다.
ORM에서 DateTime 타입 오브젝트가 String에서 WallClock::Value(C++)/DateTime(C#)으로 변경되었습니다.
DateTime, timestamp는 Map, Array로 사용할 수 없습니다.
- Object¶
ORM에서 DateTime 타입 오브젝트가 String에서 WallClock::Value(C++)/DateTime(C#)으로 변경되었습니다.
v1.0.0-2589 (2018-01-11)¶
2018-01-11 02:33:57
- System¶
Docker CE 에서 실행 실패하는 문제 수정
- Network¶
동시에 여러 웹 소켓 요청이 올 때 비정상적으로 처리하던 문제 수정
- Service¶
DSM 에서 JWT 토큰 확인할 수 있는 콜백 함수 추가
GooglePlay authentication 에서 JWT 확인하는 기능 추가
v1.0.0-2561 (2017-12-29)¶
2017-12-29 13:18:38
v1.0.0-2557 (2017-12-28)¶
2017-12-28 16:50:15
- Service¶
–matchmaking_server_logging_level 추가.
MatchmakingServer 에 REST API 들 추가
matchmaking 관련 counter 추가
- Distribution¶
크래시했을 때 서버 프로세스가 종료되지 않을 수 있는 문제 수정
- Management¶
matchmaking_server_logging_level 을 runtime flag 로 지정.
v1.0.0-2553 (2017-12-26)¶
2017-12-26 14:27:23
Warning
Breaking Changes
다음의 변화로 인해 게임 서버를 다시 빌드해야 합니다.
funtest::Session 이 RedirectClient 처리할 수 있게 수정
- Network¶
funtest::Session 이 RedirectClient 처리할 수 있게 수정
- Service¶
World Object가 구체인지 검사하는 함수와 반지름을 얻는 함수 추가
v1.0.0-2544 (2017-12-20)¶
2017-12-20 11:22:23
Warning
Breaking Changes
C# 프로젝트를 사용하는 경우 다음의 변화로 인해 게임 서버를 다시 빌드해야 합니다.
ArrayRef에 IList<T>를 지원 인터페이스 추가(C#)
- Object¶
ORM 사용 시 자료형 추가 지원
ORM 에 자료형을 더 상세하게 입력할 수 있게 추가되었습니다. 추가로 지원되는 타입은 아래와 같습니다.
int8, int16, int32, int64, float, timestamp, datetime
ArrayRef에 IList<T>를 지원 인터페이스 추가(C#)
v1.0.0-2543 (2017-12-20)¶
2017-12-20 10:47:19
Warning
Breaking Changes
다음의 변화로 인해 플러그인 업데이트가 필요할 수도 있습니다.
Session Reliability를 사용할 때 delayed ack, piggy back 기능 추가
이 기능을 사용하려면 다음 버전 이상의 플러그인으로 업데이트 해야 합니다.
Unity3D: 239
Unreal4: 90
Cocos2d-x: 90
- Network¶
Session Reliability를 사용할 때 delayed ack, piggy back 기능 추가
delayed_ack_interval_in_ms를 0이상의 값으로 설정했을 때 사용 할 수 있습니다.
- misc.¶
하위 디렉터리에 .proto 파일이 있는 경우에 오작동하는 부분 수정 (C#)
v1.0.0-2536 (2017-12-18)¶
2017-12-18 15:46:14
- Management¶
ApiSerivce: JWT, 로드밸런서 쓰는 경우에 대한 rate limit 구현 추가
v1.0.0-2534 (2017-12-15)¶
2017-12-15 08:05:55
- Object¶
로컬 환경에서 동일한 오브젝트를 다른 락 타입으로 Fetch할 때 죽던 문제가 수정되었습니다.
- misc.¶
이제 funapi_client_resource_generator를 Windows에서 사용할 수 있습니다.
v1.0.0-2520 (2017-12-07)¶
2017-12-07 19:35:46
- Service¶
Google Play Game 인증 검증 시 웹 콘솔 id로도 통과하도록 수정
월드에서 부채꼴 필터가 구체를 검색할 수 있도록 추가
FindObject에서 FindOption을 사용 시 Z 축을 무시하는 옵션 추가
- Management¶
DeployApiService 에서 지급 가능한 아이템 목록을 순서대로 보내게 수정
- misc.¶
일부 플랫폼에서 C# 패키징이 실패하는 문제 수정
Ubuntu 16.04에서 mdb 파일이 만들어지지 않던 문제 수정
v1.0.0-2512 (2017-12-05)¶
2017-12-05 20:42:06
v1.0.0-2509 (2017-12-05)¶
2017-12-05 09:17:44
- Network¶
분당 처리할 세션당 메시지 수 제한 추가
HTTP 에도 rate limit 적용 (HTTP 429)
v1.0.0-2502 (2017-12-04)¶
2017-12-04 07:37:34
- Service¶
World 부채꼴 필터의 각도 계산 오류 수정
- Database¶
Ubuntu Xenial 에서 MySQL Connector 의 연결 관련 버그 수정
- Object¶
Foreign 이 아닌 Object Type Attribute 로 순환 소유 관계가 만들어질 때 Fetch 함수의 버그 수정
v1.0.0-2497 (2017-12-01)¶
2017-12-01 12:06:37
Warning
Breaking Changes
다음의 변경 사항으로 인해 코드 수정이 필요할 수도 있습니다.
Matchmaking: ProgressCallback 에 JSON match_context 인자 추가.
ProgressCallback 에 JSON match_context 인자가 추가되어 코드 수정이 필요합니다.
다음의 변경 사항으로 인해 Zookeeper를 공유하는 모든 서버가 함께 업데이트 되어야 합니다.
Rpc: 서버간 연결 관련 처리 개선.
- Service¶
DSM: OAuth 토큰 획득에 실패하면 콜백 오류 처리하게 수정
Matchmaking: ProgressCallback 에 JSON match_context 인자 추가.
- Object¶
C# Object.WriteAllImmediately, {Object}.WriteImmediately 함수 추가
C# RegisterAttributeTrigger 함수 추가
C# SelectBy{AttributeName} 함수 추가
- Distribution¶
Rpc: 서버간 연결 관련 처리 개선.
- Network¶
웹소켓 프로토콜 지원
- misc.¶
C# 프로젝트 생성 시 불필요한 .cc/.h 파일을 생성하지 않도록 변경
프로젝트 생성 시 predefined 매크로 템플릿이 동작하지 않던 문제 수정
v1.0.0-2480 (2017-11-24)¶
2017-11-24 01:48:36
- Network¶
SSL 기본 알고리즘 순서 변경 및 허용 목록 축소
- Object¶
ORM 오브젝트 GetLockType() C++ 함수 추가
ORM 오브젝트 GetLockType() C# 함수 추가
- System¶
등록되지 않은 Activity Log 사용 시 크래시 하지 않도록 수정
- Service¶
Matchmaking 시 enable_dynamic_match = false 면 시간순으로 우선권을 갖도록 수정
Apple Game Center 인증 검증 기능 추가
v1.0.0-2453 (2017-11-09)¶
2017-11-09 02:21:56
- Framework¶
C# - 서버 크래시 시 콜스택 정보가 로그에 항상 포함되도록 개선
- Object¶
C# - kReadLock 으로 Fetch 후 쓰기를 할 때 더 자세한 로그가 출력되도록 개선
- Service¶
World 사각형, 부채꼴 내장 필터가 입력 높이가 음수이면 무한대로 처리하도록 수정
- misc.¶
아이펀 디플로이 추가 설정 기능 및 캠페인 설명 문서화
v1.0.0-2443 (2017-11-02)¶
2017-11-02 12:10:29
Warning
Breaking Changes
다음의 변경 사항으로 인해 서버를 다시 빌드해야 합니다.
RedisClient: Create() 할 때 database 선택할 수 있도록 수정.
- Database¶
Redis 컴포넌트에 database 선택할 수 있는 기능 추가.
RedisClient: Create() 할 때 database 선택할 수 있도록 수정.
v1.0.0-2440 (2017-11-01)¶
2017-11-01 15:49:36
- Service¶
World::MonitorTypeExistence() 버그 수정
World::GetName() 추가
v1.0.0-2437 (2017-10-31)¶
2017-10-31 06:52:56
Warning
Breaking Changes
다음의 변경 사항으로 인해 코드 수정이 필요할 수도 있습니다.
iFun Authenticator deprecated 처리
iFun Authenticator 를 이용한 인증 검증 기능은 Deprecated 되어 향후 제거될 예정이오니 각 플랫폼별 인증 검증 함수로 변경하시기 바랍니다.
C# GooglePlayGame AuthenticationResponse 에러 관련 변수명 변경
C# GooglePlayGame 인증 검증 함수를 사용하는 경우 코드 수정이 필요합니다.
- Service¶
iFun Authenticator deprecated 처리
C# GooglePlayGame AuthenticationResponse 에러 관련 변수명 변경
C# SessionClosedHandler 에서 AccountManager 로그아웃 처리 할 수 없던 버그 수정.
v1.0.0-2431 (2017-10-27)¶
2017-10-27 13:55:53
Warning
Breaking Changes
Custom API 를 사용하는 경우 다시 빌드해야 합니다.
아이펀 디플로이의 반복 캠페인 처리 추가
- Management¶
아이펀 디플로이의 드랍다운 리스트 기능 사용 가능하게 수정
아이펀 디플로이의 반복 캠페인 처리 추가
v1.0.0-2425 (2017-10-20)¶
2017-10-20 16:37:54
- Service¶
C# AccountAuthentication deprecated 처리
C# GooglePlus 인증 추가
C# NexonPlatform 인증 추가
C# NexonToy 인증 추가
C# Facebook 인증 추가
C# LINE 인증 추가
v1.0.0-2416 (2017-10-16)¶
2017-10-16 15:30:28
Warning
Breaking Changes
다음의 변경 사항으로 인해 코드 수정이 필요할 수도 있습니다.
개별 timespan 랭킹 삭제에서 모든 랭킹 삭제하도록 LeaderboardResetRequest 인터페이스 변경.
LeaderboardResetRequest 객체를 만들 때 입력하는 timespan 이 제거되었습니다. 해당 구조체를 사용하시는 경우 코드 수정이 필요합니다.
다음의 변경 사항으로 인해 연결되는 모든 서버의 엔진 업데이트가 필요합니다.
분산 환경에서 Object Model 이 다른 서버는 구동되지 않도록 수정
다음의 기능 추가로 인해 리더보드 업데이트가 필요합니다.
Leaderboard 월간 랭킹 리셋 기능 추가
1.0.0-1762 experimental 버전 이상의 리더보드로 업데이트 해야 합니다.
- Service¶
개별 timespan 랭킹 삭제에서 모든 랭킹 삭제하도록 LeaderboardResetRequest 인터페이스 변경.
Leaderboard 월간 랭킹 리셋 기능 추가
World 를 MANIFEST 에 기술하여 생성할 때 Channel 과 Local 여부를 설정할 수 있게 수정
- Distribution¶
분산 환경에서 Object Model 이 다른 서버는 구동되지 않도록 수정
- Time¶
서버 프로세스의 구동시간을 얻는 WallClock::GetUptime(), WallClock::GetUptime2() 추가
서버 프로세스의 구동시간을 얻는 funapi/uptime Counter 추가
- Management¶
캠페인 보상 정보 파싱 버그 수정 (C#)
v1.0.0-2409 (2017-10-12)¶
2017-10-12 14:36:30
Warning
Breaking Changes
World 기능을 사용할 경우 코드 수정 및 서버 빌드가 필요합니다.
WorldManager::Create/Get/FindServer 함수의 channel 인자 위치 변경
WorldManager::Create/Get/FindServer() 함수를 호출하실 경우 channel 인자를 맨 뒤로 옮겨야합니다.
- Service¶
WorldManager::Create/Get/FindServer 함수의 channel 인자 위치 변경
다른 서버와 공유하지 않는 World 지원
World 삭제 기능 추가
- Management¶
C# DeployApiService 가 잘못된 캠페인 형식을 사용하는 버그 수정
v1.0.0-2400 (2017-09-29)¶
2017-09-29 11:16:13
- Service¶
World::FindObject() 에서 distances 인자가 NULL 일 때 Filter 를 쓰면 크래시하는 버그 수정
- Object¶
분산환경에서 Object Cache 메모리 사용량 개선
v1.0.0-2395 (2017-09-26)¶
2017-09-26 17:00:14
- Service¶
World 의 boundary 검색 시 option 에 지정된 수 보다 더 많이 검색되는 버그 수정
World::InsertStaticObject, World::FindStaticObject 추가
- Database¶
RedisClient: Pub/Sub 처리시 간헐적으로 assertion 에 걸리는 문제 수정.
v1.0.0-2389 (2017-09-25)¶
2017-09-25 16:02:00
- Service¶
게임 서버에서 리더보드 랭킹을 초기화할 수 있는 ResetLeaderboard() 함수 추가
이 기능을 사용하려면 1.0.0-1731 experimental 버전 이상의 리더보드 에이전트가 필요합니다.
- Distribution¶
DedicatedServerRpc: Tag 를 얻을 수 있는 GetPeerTag() 함수 추가
- Database¶
일부 머신에서 RedisClient 연결이 해제되는 문제 수정.
v1.0.0-2381 (2017-09-21)¶
2017-09-21 14:34:10
- Distribution¶
DedicatedServerRpc: ConnectHandler 에서 tag 를 조회할 수 없는 문제 수정.
- Object¶
ORM 의 메모리 사용량 관련 문제 수정
v1.0.0-2368 (2017-09-15)¶
2017-09-15 17:26:48
Warning
Breaking Changes
World 기능을 사용할 경우 코드 수정 및 서버 빌드가 필요합니다.
World::Find*2() 제거 및 FindOption 을 받아 동일한 처리를 대신하도록 수정
World::FindObject2(), World::FindSession2() 를 사용하는 경우 아래 함수로 변경해야 합니다.
World::FindObject(…, FindOption(true), …)
World::FindSession(…, FindOption(true), …)
World 의 Find*() 의 거리 계산 시 Sphere 의 중심을 기준으로 하는 옵션 추가
World::FindOption 을 사용할 경우 서버를 다시 빌드해야 합니다.
- Service¶
World::Find*2() 제거 및 FindOption 을 받아 동일한 처리를 대신하도록 수정
World 의 Find*() 의 거리 계산 시 Sphere 의 중심을 기준으로 하는 옵션 추가
World::Find*(), World::Broadcast() 함수들이 기준 좌표 대신 Object ID 를 받을 수 있는 기능 추가
World 의 Find*() 에 정렬, 범위 검색 옵션 추가
World::Broadcast() 함수 인자에 FindOption 추가
World::FindObject() 가 Filter 함수를 받을 수 있도록 개선
World::FindObject() 를 위한 Type Filter 추가
World 내의 특정 Type Object 유무를 통지 받을 수 있는 기능 추가
World::MakeRectangleFilter() 추가
World::MakeCircularSectorFilter() 추가
- Distribution¶
자동으로 Dedicated Server RPC server 를 알아내는 기능 추가.
DedicatedServerRpc 기능을 사용할 경우 Dedicated Server 에서 사용하는 Unreal 클라이언트 플러그인을 73 experimental 버전 이상으로 업데이트하셔야 합니다.
DedicatedServerRpc: Dedicated Server 에서 입력한 Tag 로 peer 목록 가져오는 기능 추가
DedicatedServerRpc 기능을 사용할 경우 Dedicated Server 에서 사용하는 Unreal 클라이언트 플러그인을 73 experimental 버전 이상으로 업데이트하셔야 합니다.
- Framework¶
크래시할 때 엔진 버전을 로그로 출력
v1.0.0-2353 (2017-09-08)¶
2017-09-08 15:06:19
- Service¶
World 의 모든 Object 를 가져오는 World::GetAllObject() 추가
v1.0.0-2350 (2017-09-08)¶
2017-09-08 02:14:17
- Distribution¶
RPC Disconnect Handler 에서 접속 끊긴 Peer 의 Tag 와 Status 를 읽을 수 있게 수정
DedicatedServerRpc: bytes 대신 FunDedicatedServerRpcMessage 를 사용하도록 수정.
Dedicated Server RPC 를 사용할 경우 Unreal 클라이언트 플러그인을 72 experimental 버전 이상으로 업데이트해야 합니다.
v1.0.0-2348 (2017-09-07)¶
2017-09-07 17:11:07
Warning
Breaking Changes
다음의 변경 사항으로 인해 서버를 다시 빌드해야 합니다.
Timer 에 Event Tag 를 지정하여 병렬처리 할 수 있게 수정
- Object¶
event_profiling 카운터에 함수 처리 시간 추가(handler_time)
execution_time 으로 내림차순 정렬하는 event_profiling_execution_time_order 카운터 추가
handler_time 으로 내림차순 정렬하는 event_profiling_handler_time_order 카운터 추가
io_wait_time 으로 내림차순 정렬하는 event_profiling_io_wait_time_order 카운터 추가
- Time¶
Timer 에 Event Tag 를 지정하여 병렬처리 할 수 있게 수정
Repeating Timer 가 밀릴 때 과도하게 이벤트를 생성하지 않도록 수정
- Service¶
World::InsertObject() 가 ID 가 중복될 때 Assert 대신 0 을 반환하도록 수정
World::Object 가 Point 뿐만 아니라 Sphere 도 될 수 있도록 수정
v1.0.0-2342 (2017-09-05)¶
2017-09-05 17:11:13
- Distribution¶
Unreal Dedicated Server 와 RPC 통신하는 기능 추가.
Unreal Dedicated Server 에서 클라이언트 플러그인과 통신합니다. 클라이언트 플러그인은 71 experimental 버전 이상이 필요합니다.
- Network¶
Protobuf field 로 메세지 핸들러 등록시 메모리릭이 발생되는 문제 수정
Protobuf field 로 메시지 핸들러 등록시 이름에 > 가 포함되는 버그 수정
- Service¶
GooglePlayGameService 인증 검증 지원
GooglePlayGameService 인증 검증 지원(C#)
v1.0.0-2333 (2017-09-01)¶
2017-09-01 12:43:30
- Distribution¶
Segmentation Fault 로 크래시했을 때도 Zookeeper 연결을 끊고 종료하도록 수정.
- Object¶
ORM 관련 잘못된 Assert 제거
v1.0.0-2329 (2017-08-31)¶
2017-08-31 04:26:28
Warning
Breaking Changes
World 를 사용하실 경우 게임 서버를 다시 빌드해야 합니다.
World::Object 의 ID 를 생성자의 인자로 받아 임의로 할당할 수 있도록 수정
- Service¶
World::Object 에 mutex 락 추가
World::Object 의 ID 를 생성자의 인자로 받아 임의로 할당할 수 있도록 수정
데디케이티드 서버를 강제 종료하는 시간 지정할 수 있게 수정
C#: DeployAPIService에서 ORM 롤백 처리가 되지 않는 문제 수정
- Network¶
Session::GetExpirationTime() 의 값이 부정확하게 나오는 문제 수정
C#: 메세지 핸들러 호출 전/후를 후킹할 수 있는 함수 추가
v1.0.0-2316 (2017-08-28)¶
2017-08-28 11:04:51
- Network¶
메세지 핸들러 호출 전/후를 후킹할 수 있는 함수 추가
- misc.¶
DeployApiService 문서 업데이트
v1.0.0-2311 (2017-08-25)¶
2017-08-25 14:03:55
- Network¶
TCP transport 가 attach 되는 경우 호출되는 handler 등록 가능하게함
Session::GetLastSendTime() 추가
Session::GetExpirationTime() 추가.
session id 를 한 번만 보내 트래픽을 줄이는 기능 관련 크래시 문제 수정
C#: http.Method.GetString(), http.StatusCode.GetString() 추가
- Management¶
C#에서 추가한 Restful API가 목록 조회 시 정상적으로 포함되도록 변경
- Service¶
world 에서 distance 대신 distance_square 를 받는 함수들 추가.
- Object¶
Object Cache 가 trailing spaces 들을 MySQL general_ci 와 동일하게 다루도록 수정
- Distribution¶
Rpc: peer 연결 여부를 확인할 수 있는 IsPeerConnected() 함수 추가.
v1.0.0-2296 (2017-08-22)¶
2017-08-22 16:22:34
- Object¶
kReadCopyNoLock 으로 Array, Map Fetch 할 때 NULL 오브젝트가 있으면 크래시 하는 버그 수정.
v1.0.0-2285 (2017-08-18)¶
2017-08-18 12:55:22
- Service¶
WorldManager::Create() 함수의 zone 인자를 Json 에서 ZoneVector 로 변경
WorldManager::Create() 함수에 index_block_length 인자 추가
World Channel 지원
v1.0.0-2281 (2017-08-16)¶
2017-08-16 18:48:10
- Management¶
DeployApiService: 인벤터리 아이템 다중 회수 API 지원
DeployApiService 를 native/mono 중 선택해서 활성화하게 수정
C# iFunDeploy API 연동 지원 (1) - 유저 관리 기능
C# iFunDeploy API 연동 지원 (2) - 커스텀 API
C# iFunDeploy API 연동 지원 (3) - 캠페인 기능 연동
C# iFunDeploy 연동 지원 (4) - 인벤터리 삭제 지원
C# ApiService URL 매칭하는 방식 개선
- misc.¶
C# HTTP API 통신 예제 코드 추가
v1.0.0-2275 (2017-08-14)¶
2017-08-14 07:47:31
- Service¶
Redis 가 초기화 된 후에 DSM이 크래시할 수 있는 버그 수정
DS host에 서버를 띄울 공간이 없을 때 지나치게 빨리 재시도하는 문제 수정
v1.0.0-2265 (2017-08-11)¶
2017-08-11 15:52:08
- Distribution¶
MySQL, Zookeeper 처리 속도 모니터링 기능 추가
- Network¶
이벤트 프로파일링 시 Protobuf 핸들러 이름이 정수 값으로 보이는 문제 수정
- Service¶
World 범위 검색 알고리즘 개선
v1.0.0-2250 (2017-08-08)¶
2017-08-08 19:32:09
- Object¶
한 이벤트에서 동일한 Key 의 ORM 오브젝트의 생성 삭제를 반복할 때 발생하는 문제 수정
삭제한 오브젝트를 다시 삭제하는 잘못된 코드를 ASSERT 로 막던 것 허용.
- Service¶
C# AccountManager 관련 콜백이 간헐적으로 호출되지 않는 문제 수정
- Network¶
send_session_id_only_once 관련 Assert 로 크래시할 수 있는 문제 수정
v1.0.0-2241 (2017-08-06)¶
2017-08-06 19:19:49
- Object¶
ORM Object 를 생성 후 바로 삭제할 때 Assert 로 크래시하는 문제 수정
v1.0.0-2238 (2017-08-04)¶
2017-08-04 10:29:15
- Object¶
오브젝트 프로시저명을 축약하여 사용할 수 있는 기능 추가
MANIFEST/Object 에 use_db_stored_procedure_full_name 를 false 로 지정하면 축약된 오브젝트 프로시저명으로 DB 서버와 통신합니다. 이 경우 DB 스키마 해시가 변경되어 프로시저를 재 생성하는 DDL 쿼리가 실행됩니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 需要的 DB 权限 에서 설명하는
export_db_schema
옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.
v1.0.0-2233 (2017-08-03)¶
2017-08-03 09:05:32
Warning
Breaking Changes
다음의 변화로 인해 DB 권한 확인이 필요할 수도 있습니다.
Array 또는 Map 만 가지는 오브젝트의 프로시저를 만들 수 없는 버그 수정.
본 수정으로 인해 DB 스키마 해시가 변경되어 프로시저를 재 생성하는 DDL 쿼리가 실행됩니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 需要的 DB 权限 에서 설명하는
export_db_schema
옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.
- Object¶
Array 또는 Map 만 가지는 오브젝트의 프로시저를 만들 수 없는 버그 수정.
v1.0.0-2231 (2017-08-02)¶
2017-08-02 17:51:10
Warning
Breaking Changes
다음의 변화로 인해 DB 권한 확인이 필요할 수도 있습니다.
오브젝트를 DB 에서 가져올 때 트래픽 줄이도록 수정
본 수정으로 인해 DB 스키마 해시가 변경되어 프로시저를 재 생성하는 DDL 쿼리가 실행됩니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 需要的 DB 权限 에서 설명하는
export_db_schema
옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.오브젝트 DB 테이블의 col__tag 사용하지 않도록 수정.
더이상 col__tag 컬럼이 사용되지 않습니다. 엔진에서 자동으로 해당 컬럼을 제거하지는 않습니다. 본 수정으로 인해 DB 스키마 해시가 변경되어 프로시저를 재 생성하는 DDL 쿼리가 실행됩니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 需要的 DB 权限 에서 설명하는
export_db_schema
옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.
다음의 변화로 인해 플러그인 업데이트가 필요할 수도 있습니다.
UDP 에서 Session ID 를 첫 메시지일 때만 전송하는 기능을 쓸 때 버그 수정
UDP 와 send_session_id_only_once 를 사용하실 경우 다음 버전 이상의 플러그인으로 업데이트하시기 바랍니다.
Unity3D: 223
Unreal4: 67
Cocos2d-x: 67
- Object¶
ORM 지연 업데이트 관련 Assert 로 크래시하는 문제 수정
오브젝트를 DB 에서 가져올 때 트래픽 줄이도록 수정
오브젝트 DB 테이블의 col__tag 사용하지 않도록 수정.
종료 처리가 멈출 수 있는 문제 수정
- Network¶
UDP 에서 Session ID 를 첫 메시지일 때만 전송하는 기능을 쓸 때 버그 수정
v1.0.0-2226 (2017-08-01)¶
2017-08-01 15:23:32
- Service¶
DSM: 예약 인스턴스 수 동적 조절하는 콜백 추가
ConfigureReservedInstanceCountCallback 라는 콜백을 이용해서 EC2 상의 데디케이티드 서버 호스트 수를 입력 받고, 이후에 사용할 예약 인스턴스 수를 동적으로 조절할 수 있는 기능이 추가되었습니다.
v1.0.0-2223 (2017-07-31)¶
2017-07-31 16:57:05
Warning
Breaking Changes
다음의 변화로 인해 모든 서버의 엔진 업데이트가 필요합니다.
ORM 분산 처리 시 발생하는 네트워크 트래픽 개선
이전 버전의 서버와 연결되면 크래시합니다. 모든 서버를 함께 업데이트 하시기 바랍니다.
- Object¶
Object 가 cache_expiration_in_ms 보다 더 빨리 캐시에서 내려갈 수 있는 문제 수정
분산 환경에서 ORM Object Cache 적중률 개선
Object 삭제 관련 Assert 로 크래시할 수 있는 문제 수정
분산 처리 과정의 Lock 관련 Assert 수정
ORM 분산 처리 시 발생하는 네트워크 트래픽 개선
오브젝트 쿼리 용량 줄이도록 수정.
프로시저를 사용하지 않을 때 불필요한 쿼리 제거.
- Framework¶
ArgumentMap 에 FindDoubleArgument() 함수 추가.
- Distribution¶
분산 환경에서 불필요한 Zookeeper 요청 제거
- misc.¶
MANIFEST.json double 타입 인자 지원.
v1.0.0-2216 (2017-07-27)¶
2017-07-27 05:53:34
- Object¶
프로시저를 사용하지 않을 때 간헐적으로 Array 데이터를 지우지 못하던 버그 수정.
v1.0.0-2210 (2017-07-26)¶
2017-07-26 14:45:42
Warning
Breaking Changes
다음의 변화로 인해 DB 권한 확인이 필요할 수도 있습니다.
use_db_char_type_for_object_id 옵션 사용시 캐릭터셋이 지정되지 않는 버그 수정.
이 옵션을 true 로 설정하셨을 경우 엔진 업데이트 후 서버 실행 시 프로시저를 재생성하기 위해 DDL 쿼리를 실행합니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 需要的 DB 权限 에서 설명하는
export_db_schema
옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.
- Object¶
Object ID Pool 관련 Assert 수정
use_db_char_type_for_object_id 옵션 사용시 캐릭터셋이 지정되지 않는 버그 수정.
v1.0.0-2200 (2017-07-18)¶
2017-07-18 11:46:09
- Object¶
Object Cache 의 Index 성능 개선
생성된 Object 가 DB Update 완료 전에 Cache 에서 내려갈 수 있는 문제 수정
v1.0.0-2187 (2017-07-13)¶
2017-07-13 11:54:25
- Object¶
DB, Zookeeper Write I/O 지연시 정상적인 Key 가 Dangling Key 로 처리되는 문제 수정
존재하지 않는 Key 의 Object 를 Create 또는 Fetch 할 때 일시적으로 CPU 를 과도하게 사용하는 문제 수정
v1.0.0-2183 (2017-07-06)¶
2017-07-06 20:21:15
Warning
Breaking Changes
다음 변화로 인해 서버 빌드가 필요합니다.
Object Model 을 다루는 내부 코드 개선
다음 변화로 인해 코드 수정이 필요할 수도 있습니다.
Deploy API 수정 사항 반영
캠페인 시작 콜백 함수에 전달하는 CampaignArgument 에 시작/종료 시간 관련 인자를 추가했습니다. 해당 인자를 접근하기 위해선 새로 빌드해야 합니다. 아이템 지급 API에 유저에게 지급하는 것인지 캐릭터에게 지급하는 것인지 구분하는 인자가 추가되었습니다. (해당 인자는 account, character 중 하나의 값을 씁니다.)
- Management¶
Deploy API 수정 사항 반영
- Object¶
Object Model 을 다루는 내부 코드 개선
ORM 분산처리 관련 잘못된 ASSERT 제거
ORM 롤백 처리 중 Assert 로 크래시할 수 있는 문제 수정
- C#¶
C# Object Array, Map Fetch 함수 성능 개선
- misc.¶
리더보드에 추가된 mysql_local_account_column_length 옵션 설명 추가
v1.0.0-2176 (2017-07-04)¶
2017-07-04 15:54:09
- Network¶
use_session_relibility 와 send_session_id_only_once 기능을 함께 쓸 때 Encryption 관련 ASSERT 로 크래시할 수 있는 문제 수정
use_session_relibility 와 send_session_id_only_once 기능을 함께 쓸 때 Session Reliability 에 의한 재연결에 안될 수 있는 문제 수정
UDP 관련 불필요한 ASSERT 제거
- System¶
간헐적으로 서버 종료 처리에 지연이 생기는 문제 수정
v1.0.0-2172 (2017-06-30)¶
2017-06-30 17:15:59
- Service¶
DedicatedServerManager 가 2 대 이상일 때 발생되는 문제 수정
DedicatedServerManager 가 요청을 Queueing 하도록 수정
DedicatedServerManager::Cancel() 추가
Master DedicatedServerManager 가 종료될 때 즉시 Master 권한을 포기하도록 수정
v1.0.0-2169 (2017-06-28)¶
2017-06-28 16:19:40
- Service¶
aws_settings 의 subnet_id 가 빈 문자열일 때 발생하는 문제 수정
v1.0.0-2166 (2017-06-28)¶
2017-06-28 09:30:45
- Service¶
DedicatedServerManager 에 AWS Subnet ID 를 지정할 수 있도록 수정
v1.0.0-2161 (2017-06-26)¶
2017-06-26 17:34:05
Warning
Breaking Changes
다음 변화로 인해 코드 수정 및 인증 서버 업데이트가 필요합니다.
Kakao 인증 제거
변경된 Kakao 운영정책으로 인해 서버 사이드 인증 API 가 제거되었습니다. 만약 Kakao 인증 API 를 사용중이시라면 직접 Kakao API 를 호출하여 인증 처리해야 합니다. 직접 구현하실 경우 다음 GitHub 에서 구현 샘플을 참고하실 수 있습니다.
https://github.com/iFunFactory/engine-example-kakao-game-authentication
- Database¶
Mariadb Connector 가 재연결될 때 쿼리가 유실될 수 있는 문제 수정
- Service¶
멀티캐스트 메시지를 검사할 수 있는 기능 추가
Kakao 인증 제거
- Object¶
Object Fetch 함수 성능 개선
- System¶
이벤트 유입, 처리량 카운터가 실제 보다 낮고 부정확하게 측정되는 문제 수정
- misc.¶
Object Type 의 JSON 을 다룰 때 내부의 불필요한 함수 호출 제거
v1.0.0-2152 (2017-06-21)¶
2017-06-21 10:32:53
Warning
Breaking Changes
다음의 변화로 인해 코드 수정이 필요합니다.
JsonSchema::Type kDouble 오타 수정
- C#¶
ApiService Handler 에서 ORM 을 사용할 수 없는 문제 수정
- Management¶
SystemInfo Counter 가 구동 후 일정 시간 동안 출력되지 않는 문제 수정
- Service¶
AccountManager RedirectClient 호출 후 엔진에서 세션을 종료하도록 수정
- misc.¶
JsonSchema::Type kDouble 오타 수정
Mongodb logger에 SSL/TLS 활성화하는 플래그 추가
v1.0.0-2144 (2017-06-12)¶
2017-06-12 19:52:40
- Network¶
close_transport_when_session_close 옵션이 작동하지 않는 문제 수정
- Database¶
RedisClient 추가
- Management¶
DeployAPI: 캠페인 취소, 아이템 대량 지급 API 추가
- misc.¶
CLion 개발 환경 구성 문서 업데이트(2017.1.2 버전 기준)
v1.0.0-2136 (2017-06-01)¶
2017-06-01 15:02:54
Warning
Breaking Changes
다음의 변화로 인해 코드 수정 및 빌드가 필요할 수도 있습니다.
DeployAPI: 선물 지급 API 수정
선물 지급 API가 수정되어 GiveGiftToCharacter API 삭제. 새로 추가된 GiveGift를 사용해서 수정 및 새로 빌드해야 정상 동작합니다.
- Management¶
DeployAPI: 선물 지급 API 수정
- Network¶
다음 함수들이 kDefaultProtocol 을 인자로 받을 수 있도록 수정
Session::GetRemoteEndPoint()
Session::IsTransportAttached()
Session::CloseTransport()
- Object¶
Object Lock/Lease 재시도 로그 표현 수정
ORM Database 와 연결된 Mariadb Connector 를 얻을 수 있는 API 추가
- misc.¶
C# - Mariadb(MySQL) Connector 사용 시 크래시할 수 있는 문제 수정
v1.0.0-2118 (2017-05-29)¶
2017-05-29 15:16:32
Warning
Breaking Changes
因以下变化,有可能需要修改Multicast Protobuf或更新插件。
针对Multicast protobuf extension修改了可使用的字段编号范围。 若扩展FunMulticastMessage使用,须将字段编号修改成从16 开始使用。同时须要将插件更新到以下版本以上。 (以Experimental版本为基准)
Unity3D: 212
Unreal4: 62
Cocos2d-x: 62
- Network¶
修复了将Protobuf Extension Identifier作为Message Type时的Build错误
v1.0.0-2109 (2017-05-24)¶
2017-05-24 16:57:18
Warning
Breaking Changes
因以下变化,需要构建服务器并更新插件。
为Protobuf 的Message Type添加了可以使用Integer来代替String的功能
若想使用该功能,须将插件更新到以下版本以上。 (以Experimental版本为基准)
Unity3D: 210
Unreal4: 61
Cocos2d-x: 61
- Network¶
添加了在TCP、UDP中除了首条消息以外的其他消息均不传输Session ID, 从而减少网络流量的功能
为Protobuf 的Message Type添加了可以使用Integer来代替String的功能
v1.0.0-2099 (2017-05-19)¶
2017-05-19 19:56:02
Warning
Breaking Changes
因以下变化,须要修改代码并重新构建服务器。
Deploy API: 修复漏洞并对应更改后的接口
由于DeployApiService的部分接口已更改,所以须要重新构建服务器。 SearchUsers, **GetInventory**函数时,须要对implementation进行修改。
Session::LastSentMessageType() 函数错别字已修改
会话的API已变更,需修改源代码。
- Distribution¶
优化了Zookeeper故障的异常处理
- Management¶
Deploy API: 修复漏洞并对应更改后的接口
- Network¶
Session::LastSentMessageType() 函数错别字已修改
- misc.¶
修复了在Ubuntu 16.04创建包时systemd服务无法运行的问题
解决了使用Flavor的情况下,创建systemd包时服务无法正常运行的问题
v1.0.0-2080 (2017-05-04)¶
2017-05-04 16:29:43
- Object¶
优化为Object Model Error日志中可输出更多信息,并变更为FATAL日志
添加了遗漏的Object Model检验
- Framework¶
修改为Google Protobuf相关错误日志可保存在日志文件中,而不是stderr中
- System¶
C# - 支持Event::Abort()
- Network¶
C# - 支持Session::SetTransport(…)
v1.0.0-2074 (2017-04-24)¶
2017-04-24 19:24:05
Warning
Breaking Changes
因以下变化,有可能需要修改代码。
DSM: 修改为用户可以闯入进来
因专用服务器API已修改,所以需要修改源代码。 DedicatedServerManager::SendUsers()函数已变更为Spawn(), 在该函数中已添加了传输各用户数据的参数,故可以使用相应 参数(在没有数据的情况下,也须要传输空的JSON)。 已变更为通过SendUsers函数仅处理向已经开始的游戏发送用户 的任务。**客户端**和**funapi-dedicated-server-host**也 须要**更新**到最新版本,这样才可正常运行。
- Service¶
DSM: 修改为用户可以闯入进来
v1.0.0-2071 (2017-04-21)¶
2017-04-21 02:43:49
Warning
Breaking Changes
因以下变化,需要修改C#项目选项。
修复了C# - Monodevelop 5.x中无法开始调试的问题
当使用Monodevelop 5.x时,可**重新创建项目**, 或在项目选项 ->执行->用户命令中,在执行阶段参考以下方法将 **/usr/bin/funapi_monodevelop_helper.exe**添加为首个项目。
1.复制原来已经输入的值。 2.添加’执行’阶段项目,输入”/usr/bin/funapi_monodevelop_helper.exe”。 3.添加’执行’阶段项目,重新输入1中删除的内容。
- Service¶
体现了Nexon Platform认证相关变更事项
- misc.¶
修复了C# - Monodevelop 5.x中无法开始调试的问题
v1.0.0-2068 (2017-04-20)¶
2017-04-20 17:07:31
Warning
Breaking Changes
因以下变化,需要修改MANIFEST.json文件。
更改了用于处理网络I/O的线程数设置名称
已从**IoService/io_service_threads_size**变更为**SessionService/network_io_threads_size**, 且原有设置暂时会有效运行。 请尽快变更为新的设置名称。
添加了Google Log保留期选项
超过30天的调试(glog)日志将被删除。为了保留更长时间,须变更 **glog_retention_period_in_days**的设置值。
- Network¶
更改了用于处理网络I/O的线程数设置名称
- System¶
添加了Google Log保留期选项
- Object¶
删除了调用2次以上ORM Object Delete()时出现的ASSERT
修复了C# - Map的Key中有String Type时无法构建的问题
- Distribution¶
Zookeeper性能计数器地址由zookeeper_stat变更为distribution_profiling
v1.0.0-2059 (2017-04-17)¶
2017-04-17 16:55:31
- Object¶
支持通过JSON初始化C#-Object的功能
为C#对象ArrayRef、MapRef添加了Has、Clear、FindFirstEmptySlot函数
- misc.¶
修复为setup_build_environment在非symbolic link时,也能运行
将C# - Install/Start/Uninstall函数的Return Type由void变更为bool
Json::HasAttribute({AttrName}, {AttrType}) 函数已添加
v1.0.0-2040 (2017-04-03)¶
2017-04-03 16:19:20
- Network¶
修改为Session被关闭时,可保存日志
- Service¶
修复了因已在AccountManager登录的会话而导致的用其他Account ID登录时出现ASSERT的问题
v1.0.0-2018 (2017-03-30)¶
2017-03-30 14:18:43
- Object¶
修复了当通过C# - Object Create()函数传输的String Key超过 model中定义的长度时,会发生NullReferenceException的问题
修复了将C# - null Object置于左边,通过 ‘==’ 运算符比较时发生 NullReferenceException的问题
- Network¶
修改为Network相关日志中可保留客户端地址等更多消息
v1.0.0-2016 (2017-03-29)¶
2017-03-29 11:15:24
v1.0.0-2016 (2017-03-29)¶
2017-03-29 11:15:24
Warning
Breaking Changes
因以下变化,须要重新构建服务器。
服务器测试功能(funtest::Session)支持UDP
使用funtest::Session时须要重新构建服务器。
- Network¶
+优化为Session Message Log中可同时保留Transport Protocol(TCP or UDP or HTTP)
- misc.¶
服务器测试功能(funtest::Session)支持UDP
修复了服务器测试功能(funtest::Session)的HTTP相关漏洞
v1.0.0-2011 (2017-03-27)¶
2017-03-27 16:19:58
Warning
Breaking Changes
因以下变化,须要修改代码并重新构建服务器。
优化为可以选择Matchmaking服务器
StartMatchmaking() 函数中已添加了target_server参数。 可以在kRandom(随机)、kLeastNumberOfPlayers(有较少请求的服务器优先)、 kMostNumberOfPlayers(有较多请求的服务器优先)中选择一个, 或直接选择PeerId。
Rpc::SetStatus() 被调用时,不会覆盖引擎内部Status
更新了C#支持
在之前版本中创建的C#项目须重新创建。
- Service¶
GetMatchmakingServerInfo() 函数已添加。 可以了解所有MatchmakingServer的PeerId及Matchmaking的请求数。
添加了LINE认证
v1.0.0-1991 (2017-03-14)¶
2017-03-14 09:37:02
- Distribution¶
添加了名为rpc_use_public_address的flag
- Network¶
修复了HTTP中收到未注册处理器的消息时,忽略后续消息的问题
优化为funtest::Session关闭时,可自动关闭Transport
- System¶
修改为通过设置MANIFEST,可以在Activity Log文件中关闭输出Schema
- misc.¶
修复了服务器测试功能的内存泄漏漏洞
添加了基于Web的监控工具
请参考https://www.ifunfactory.com/engine/documents/funapi-dashboard。
v1.0.0-1974 (2017-02-23)¶
2017-02-23 10:33:34
Warning
Breaking changes
因以下变化,须要修改代码并重新构建服务器。
修复了广播时指定kDefaultProtocol的情况下,不运行的漏洞
Session(AccountManager)::BroadcastLocally/Globally() 函数的 Encryption、TransportProtocol默认参数值已被删除。
- Network¶
修复了广播时指定kDefaultProtocol的情况下,不运行的漏洞
- Framework¶
修复了因SIGSEGV崩溃时延时关闭的问题
- Object¶
修复了event_profiling计数器中回滚次数输出错误的漏洞
- misc.¶
Multicast:消息传输hooking文件化
Session的BroadcastLocally()、BroadcastGlobally()函数文件化
AccountManager的BroadcastLocally()、BroadcastGlobally()函数文件化
Json::FindAttribute() 函数已添加
v1.0.0-1952 (2017-02-06)¶
2017-02-06 09:11:34
- Network¶
Network: 添加了向所有会话发送消息的函数
AccountManager: 添加了向已登录的所有会话发送消息的函数
- Object¶
优化为通过JSON初始化Object时,可支持Foreign Attribute
- Service¶
Multicast: 添加了传输消息时调用的hook函数
v1.0.0-1931 (2017-01-24)¶
2017-01-24 04:25:41
Warning
Breaking changes
因以下变化,须要重新构建游戏服务器。
优化为在``Json::From*(…)``中解析失败时,可以收到回调函数
- C#¶
C#支持(Ubuntu)
CentOS计划今后支持。
为了通过C#进行开发,须要输入如下命令,重新创建项目。
- Framework¶
优化为在``Json::From*(…)``中解析失败时,可以收到回调函数
v1.0.0-1912 (2017-01-17)¶
2017-01-17 12:40:49
- System¶
修复了``Assert failed: execution_time_ == 0:``造成服务器崩溃的问题
v1.0.0-1903 (2016-12-15)¶
2016-12-15 11:55:46
Warning
Breaking changes
需要更新客户端插件的部分如下。
添加了可以通过字节发送Protobuf会话ID的功能
必须将客户端插件更新到以下版本以上, 并重新构建Protobuf DLL。
Unity3D: 190
Unreal4: 35
Cocos2d-x: 35
- Object¶
修复了object_db_migrator.py工具错误处理部分DB数据的漏洞
- Network¶
添加了可以通过字节发送Protobuf会话ID的功能
请参考:ref:`send_session_id_as_string <network-configuration>`选项说明。
- misc.¶
修复了构建服务器时,Unity3D DLL构建失败的问题
v1.0.0-1895 (2016-12-13)¶
2016-12-13 18:28:12
- System¶
将event_queue_stat变更为event_profiling_summary
添加event计数器,将部分计数器变更为event下级
原event_queue_length已变更为event计数器下级。
原event_injection_per_sec已变更为event计数器下级。
原event_complete_per_sec已变更为event计数器下级。
- Object¶
添加object计数器,将部分计数器变更为object下级
原objects已变更为object计数器下级的”object_count”。
原outstanding_update_query已变更为object计数器下级。
原outstanding_fetch_query已变更为object计数器下级。
修复了object migration工具对没有设置参数值的字段进行错误处理的漏洞
v1.0.0-1881 (2016-12-06)¶
2016-12-06 21:12:45
- System¶
修复了event处理过程中assert造成崩溃的问题
在队列中为事件性能分析添加等待时间(queue_time_xxx)
将事件性能分析的名字wait_time_xxx变更为io_wait_time_xxx
变更事件队列的各个统计项目名称
completion_xxx``已变更为``execution_time_xxx
。wait_xxx``已变更为``io_wait_time_xxx
。
- Object¶
修复了``Assert failed: cache_for_lease_.Remove(object_id)``造成崩溃的问题
修复了event timeout时,部分资源无法被解除的问题
修复了多个服务器同时安装Schema时,发生崩溃的漏洞
修复了在Centos中更新DB Schema时,发生崩溃的问题
- misc.¶
优化了联网功能文档
Document: 修改了os.cpus错误说明部分
v1.0.0-1852 (2016-11-21)¶
2016-11-21 13:21:40
Warning
breaking changes
Multicast: 修复了iOS中发送Protobuf组播消息时客户端 崩溃的相关漏洞
使用组播时,一定要使用186以上版本的插件, 并且须重新构建Protobuf DLL。
- Service¶
Multicast: 修复了iOS中发送Protobuf组播消息时客户端 崩溃的相关漏洞
v1.0.0-1848 (2016-11-18)¶
2016-11-18 02:17:43
Warning
breaking changes
修改为仅在对象DB procedure发生变更时才重新创建
因本项修改而添加了数据表,且会执行相关DDL Query。 当没有足够的DB权限时,服务器会崩溃。
col__tag column长度固定在36
因本项修改,将会执行把col__tag column长度变更为36的 DDL Query。当没有足够的DB权限时,服务器会崩溃。
修复了因”Assert failed: ObjectCache::Delete(…)”而崩溃的问题
为予以应用,必须要重新构建游戏服务器
添加了对象相关TRANSACTION ISOLATION LEVEL READ UNCOMMITTED设置选项
当use_db_stored_procedure: true时,若修改该选项值,会执行重新创建 procedure的DDL。当没有足够的DB权限时,服务器 会崩溃。
Session::GetLastReceiveTime(msgtype)添加SendMessage()时调用的hook
须要重新构建游戏服务器。
- Object¶
修复了因”Assert failed: IsValid()”而崩溃的问题
添加了string column长度增加时也能自动修改的功能
添加了对象相关DB数据表模式的验证功能
添加了对象相关DB procedure模式的验证功能
修改为仅在对象DB procedure发生变更时才重新创建
col__tag column长度固定在36
修复了因”Assert failed: ObjectCache::Delete(…)”而崩溃的问题
添加了对象相关TRANSACTION ISOLATION LEVEL READ UNCOMMITTED设置选项
修复了安装Schema后,数据表验证失败的问题
修复了提取对象DB Schema时服务器无法正常关闭的问题
- System¶
修复了使用MulticastServer时,”Assert failed: IsValid()”造成崩溃的问题
修复了当在一个event type中注册2个以上event handler时,”Assert failed: IsValid()”造成崩溃的问题
优化了event thread hang checker的性能
优化了event的处理性能
- Network¶
Session::GetLastReceiveTime(msgtype)添加SendMessage()时调用的hook
HttpClient: 优化为在发生DNS查询问题时,可进行重试
- Framework¶
修复了安装组件的过程中关闭服务器时,无法正常关闭的问题
- Distribution¶
修复了输出”failed to unpublish”日志时所产生的问题
修复了Centos中因build选项错误而导致分布式处理功能无法运行的问题
- misc.¶
强化了文件搜索功能
添加了Biller changelog
添加了Authenticator changelog
添加了Leaderboard changelog
将核心转储调试方法文件化
v1.0.0-1814 (2016-10-28)¶
2016-10-28 16:35:29
- Object¶
修复了使用export_db_schema选项时,部分procedure发生drop的漏洞
修复了变更后的Schema无法体现到Insert、Update procedure中的漏洞
v1.0.0-1810 (2016-10-26)¶
2016-10-26 11:16:51
Warning
Breaking Changes
修复了无法检测到Array、Map Attribute类型变更的漏洞
在服务器运行时,如果变更Array、Map Attribute的类型,服务器会 崩溃。
- Distribution¶
修复了分布式处理相关ASSERT会造成崩溃的问题
修复了服务器非正常关闭时,RPC无法连接的漏洞
Rpc::SetStatus() 无法体现到正在连接的peer中的问题已被修复
- Object¶
修复了无法检测到Array、Map Attribute类型变更的漏洞
- misc.¶
允许proto文件位于{project}-source/src以外的目录
v1.0.0-1791 (2016-10-05)¶
2016-10-05 16:52:44
Warning
Breaking Changes
修复了无法检测到可变长度字符串长度变化的漏洞
服务器运行时,会试图更新DB Schema。当DB权限受限时, DB Schema更新会失败,同时服务器会崩溃。 此时,可使用:ref:object-subsystem-db-permission`中介绍的``export_db_schema` 选项,通过管理员DB账号更新DB Schema。
- Object¶
修复了分布式处理相关ASSERT会造成崩溃的问题
修复了无法检测到可变长度字符串长度变化的漏洞
修复了创建处理object的代码时,python代码中出现的漏洞
- misc.¶
Document: 添加了Zookeeper最大堆内存大小的Java选项设置说明
Document: 添加Zookeeper auto purge选项说明
v1.0.0-1783 (2016-09-28)¶
2016-09-28 16:56:21
- Object¶
将”failed to lease”日志的输出次数限制在一定次数以内
变更object的所有权时,通过延迟lease,避免不必要的重试
优化了分布式处理相关功能
修复了Object Fetch相关ASSERT会造成服务器崩溃的漏洞
- Distribution¶
修复了部分zookeeper client在统计中被遗漏的漏洞
修复了遗漏引擎内部RPC finisher的问题
修复了RPC disconnect handler运行顺序相关漏洞
- Service¶
为ClientResourceServce MANIFEST添加遗漏的Curl依赖
- misc.¶
修复了funapi_profile在有多个服务器进程时,无法运行的漏洞
Json::Copy() 性能优化
v1.0.0-1766 (2016-09-23)¶
2016-09-23 08:52:28
Warning
使用ife1、ife2加密时,必须将插件版本 更新到176以上。
- Network¶
修复了ife1、ife2加密漏洞
v1.0.0-1759 (2016-09-22)¶
2016-09-22 14:14:38
Warning
Breaking Changes
Leaderboard的``ScoreSubmissionRequest::kUpdate``已删除。
须要变更为``ScoreSubmissionRequest::kHighScore``。
Redis的``Command(Async)``函数已删除。
须要变更为``ExecuteCommand(Async)``函数。
- Service¶
Leaderboard: 删除``ScoreSubmissionRequest::kUpdate``
- Distribution¶
修复了暂时无法调取object的漏洞
修复了服务器关闭时,偶尔发生崩溃的问题
修复了服务器开启时,偶尔发生的 Zookeeper连接失败的问题
修复了崩溃后结束的过程中处理不正常的问题
- Object¶
修复了远程服务器关闭时,以较低概率出现的因ASSERT而崩溃的漏洞
修复了分布式处理相关ASSERT会造成崩溃的漏洞
优化了关闭处理
- Database¶
Redis: 删除``Command(Async)``函数
- Network¶
为Transport encryption添加了ChaCha20 / AES128支持
- Management¶
Counter: 添加了``concurrent_user``计数器
- Time¶
为WallClock添加了Timestamp和Timestring转换功能
- misc.¶
Document: 添加了引擎支持的计数器列表
Document: 更新了C# Runtime测试示例说明
v1.0.0-1738 (2016-09-08)¶
2016-09-08 12:23:49
- Object¶
删除了与Object处理有关的错误ASSERT
修复了特定情况下,事件过度回滚的问题
修复了特定情况下,将相同的object分成不同的lock type进行Fetch时的漏洞
修复了分布式处理相关ASSERT会造成服务器关闭的问题
修复了通过``kReadCopyNoLock``对null object id进行fetch时的漏洞
- Framework¶
修复了MANIFEST中有注释时,”make check_features”不运行的漏洞
修复了MANIFEST中有注释时,部分IDE开发环境中服务器无法驱动的漏洞
- misc.¶
将使用外部库的方法文件化
Document: 添加了插件FunapiSession说明
添加了从文件和Stream中读取包含注释在内的JSON的
Json::FromFileWithComments()
、Json::FromStreamWithComments()
v1.0.0-1718 (2016-08-31)¶
2016-08-31 15:10:22
- Object¶
修复了object lock downgrade相关漏洞
- Distribution¶
删除了与分布式处理有关的错误ASSERT
修复了关闭过程中会崩溃的漏洞
- System¶
Event: 添加了事件队列相关处理时间的统计功能
- Framework¶
优化了关闭处理
- Management¶
Counter: 添加了计数器值超过threshold时,会输出日志的功能
- misc.¶
Document: Leaderboard: 添加了对排行榜时间表是否已经重置进行查看的功能
Document: 修改了CLion Build设置说明
Document: 修改了积分榜文件中链接乱码问题
添加了客户端移动相关文件
v1.0.0-1697 (2016-08-19)¶
2016-08-19 10:41:22
- Distribution¶
修复了处理object时,可能会崩溃的漏洞
- misc.¶
将固定package版本的方法文件化
v1.0.0-1695 (2016-08-18)¶
2016-08-18 18:01:36
- Object¶
修复了进行Object返回相关处理的过程中出现ASSERT的问题
修复了event timeout处理相关的漏洞
添加了对破碎的Object进行Fetch时,对已遗漏的Zookeeper所有权进行解除的功能
- Framework¶
修复了服务器运行中崩溃时,延迟关闭的问题
- Distribution¶
修复了分布式处理相关的漏洞
- Service¶
添加了用于客户端跨服移动的消息
v1.0.0-1679 (2016-08-12)¶
2016-08-12 17:04:52
- Framework¶
修复了特定情况下崩溃后无法关闭的漏洞
- misc.¶
Document: Redis: 添加了``ExecuteCommand()``函数
Document: Redis: 添加了``ZCount``、
ZRem
Document: Redis: 添加了``Discard``、
Exec
、Multi
v1.0.0-1661 (2016-08-08)¶
2016-08-08 15:23:34
- Distribution¶
修改为可使用多个ZookeeperClient
添加了各ZookeeperClient的统计
Document: Distribution: 添加了各ZookeeperClient的统计
- Object¶
优化了Object的处理性能
v1.0.0-1657 (2016-08-05)¶
2016-08-05 17:13:47
- Object¶
修改为可以按照ORM attribute单独减少String长度
- misc.¶
将更新频道(package储存库)的选择方法文件化
在参考手册中添加了``String(n)``类型相关说明
v1.0.0-1650 (2016-07-30)¶
2016-07-30 16:15:23
- Object¶
Object: 使对象数据库统计按照write、read进行区分
Document: 为对象数据库统计添加了write、read分类说明
- Service¶
修改为Matchmaking的Progress CB和Match CB可并行执行
- Time¶
Timer: 修复了Timer id可能出现kInvalidTimerId的漏洞
v1.0.0-1643 (2016-07-15)¶
2016-07-15 17:19:51
- Object¶
Object: 修复了无法应用``db_key_string_length``、``db_string_length``变更值的漏洞
Document: 添加或完善了以下项目的说明
copy_cache_expiration_in_ms
use_db_stored_procedure
db_string_length
,db_key_string_length
System: Event: 为EventProfiler添加事件等待时间
优化为服务器崩溃时,尽量执行仍未执行的队列后再关闭
Document: 优化了EventProfiler的统计
为event profiler添加了event timeout和object的相关使用数据统计
优化了``kReadCopyNoLock``性能
添加了各数据库Query处理时间的统计
修复了不存在数据表DDL的情况下,export_db_schema时崩溃的漏洞
- Network¶
添加了可以确认会话是否已经打开的``IsOpened()``函数及文件
修复了``CloseTransport()``之前通过``SendMessage()``发送的消息会无法被传输的漏洞
- Database¶
Redis: 修改为连接断线时无需等待,可直接做断线处理
Redis: 修复了在服务器Install阶段使用命令时,Redis被断线处理的问题
- Distribution¶
优化为服务器崩溃时,可更快速地解除对象所有权
添加了Zookeeper相关处理的统计
- System¶
修改为ResourceManager可支持DateTime、Time、Date类型
- Framework¶
修改为允许对MANIFEST.json添加javascript格式的注释
- Time¶
修改为Mariadb Connector可支持DateTime、Time、Date类型
- misc.¶
Document: 修复了MO向导示例漏洞
修改为可以对object_model JSON 文件添加注释
Document: 修改了管理游戏服务器->处理企划数据文档中的错误
v1.0.0-1626 (2016-07-07)¶
2016-07-07 16:37:07
- Object¶
添加了Database延时更新功能
Distribution: 优化为在``enable_database``未被开启的情况下,也能进行分布式处理
Matchmaking: 优化为在``enable_database``未被开启的情况下,也能进行使用
Multicast: 优化为在``enable_database``未被开启的情况下,也能进行使用
Document: 删除分布式处理、匹配、组播文件中的``enable_database``说明
优化了关闭处理
- Distribution¶
优化了RPC的性能
将跨服RPC连接数减少到1个
``Rpc::Call()``函数的返回值由Xid变为void。(解决了以Reply Handler和返回值进行分布式例外处理的问题)
添加跨服自动共享的Status功能
修复了部分zookeeper operation失败时没有进行重试,而是通过FATAL LOG进行处理的问题
优化为Zookeeper session timeout可以通过MANIFEST进行设置
- Database¶
- Network¶
将session timeout的默认值由1小时变更为5分钟
- Service¶
Document: 添加了CrossServerStorage组件
- misc.¶
Document: 为billing代理中新添加的选项添加了说明
Document: 修改了MO游戏制作向导错别字
Document: 修改了匹配向导文档
v1.0.0-1607 (2016-06-20)¶
2016-06-20 17:40:32
- Object¶
修复了部分情况下,省略Object Lock检验的问题
优化了Object Lock Table性能
优化了Object Lock Table性能
优化了Object:Array PushBack性能
- Network¶
添加了Session关闭后可以设置成自动关闭所有Transport的功能
- misc.¶
Document: Object: 添加了``export_db_schema``选项相关说明
Document: 修改了``Leaderboard:DeleteScoreSync()``函数示例错别字
添加了Mariadb Connector说明
v1.0.0-1595 (2016-06-13)¶
2016-06-13 18:22:17
- Object¶
修复了Object ReadLock相关潜在漏洞,并优化了日志的可读性
添加了对Object ID进行SELECT的功能
- Distribution¶
删除不必要的Zookeeper请求
v1.0.0-1582 (2016-06-02)¶
2016-06-02 21:56:55
- Service¶
Leaderboard: 修改为排行榜重置日期超期后,可显示下一日期 排行榜重置日期超时后,作为L``eaderboardResetSchedule`` Structure member的
upcoming_date_time
、next_date_time
、``latest_date_time``的值 已修改为显示下一重置日期。
- Object¶
删除了通过多个key来fetch object时,如有重复的Key就会发生的不必要的assert
优化为DB character set 可以通过MANIFEST进行设置
优化为可以与Object Shard区分开来,从而对Key Shard的连接数进行设置
- Framework¶
添加了可以输出许可证信息的功能 服务器运行时,若指定``–license``旗标,将通过如下形式输出许可证信息。
License info: {"production":true,"expires":"2017-Dec-31 23:59:59"}
- Account¶
Leaderboard:添加了可查看排行榜是否已经重置的功能
若想使用API,必须对Leaderboard代理进行更新。
- Network¶
收到无效message时,将通过日志输出message type
添加了HTTP request uri的unescape处理功能
- Management¶
ApiService: 支持非同步处理器的处理
- Leaderboard¶
Leaderboard: 修复了对是否已经重置进行查看的API相关漏洞
- misc.¶
Document: 更新了插件Ping的说明
v1.0.0-1568 (2016-05-23)¶
2016-05-23 08:17:32
- Object¶
修复了在已timeout的event中fetch的object在cache过度保持的问题
- Management¶
添加了可以设置ApiService log level的功能
- misc.¶
Document: 添加了RuntimeConfiguration文件
Document: 添加了插件调试日志说明
修复了``funapi_core_analyze`` bash script发布被遗漏的问题
添加了事件超时处理器说明
添加了DB权限设置说明
v1.0.0-1558 (2016-05-13)¶
2016-05-13 16:01:46
Warning
Breaking Changes
若想使用Multicast相关更新功能,需要最新版本的插件。
已添加了新的错误代码(ErrorCode
) EC_CLOSED
,并且须要添加当收到该错误代码时,
重新进入频道的处理步骤。为此,须要使用新版本
的插件。
- Service¶
MulticastServer可以返回channel个数和用户数
Service:Multicast: 优化了频道入场和退场时的相关处理
添加了从CDN中获取客户端资源目录的功能
- Network¶
添加了传输紧急消息的功能
修改为可在引擎中为创建的thread分配名字
优化了通过HTTP收到无效JSON message时的处理
- Framework¶
添加了Manifest加密功能
- Time¶
修复了服务器关闭处理时在Timer中会发生assert的问题
- misc.¶
Document: 更新了插件文件
Document: 更新了服务器测试文件
Document: 添加了插件日志说明
修改为通过local launcher运行时,可支持MANIFEST override
v1.0.0-1550 (2016-05-02)¶
2016-05-02 10:31:27
- Network¶
优化为可以在各session runtime时,对ping sampling interval、timeout进行变更
修复了创建大量HttpClient时,部分请求失败的漏洞
- Object¶
将array type getter method变更为const
- Service¶
Authenticator: 体现了NexonToy变更的协议
- misc.¶
添加了将小型转储更改为核心转储后运行GDB的脚本
修复了通过service执行flavor时,log路径指定错误的漏洞
v1.0.0-1542 (2016-04-11)¶
2016-04-11 18:01:03
- Management¶
添加了AppInfo:Compatible client version Set/Get函数
添加了RuntimeConfiguration:AppInfo的compatible client version 当按照如下所示,通过Http GET进行请求后,即可收到compatible client versions。
可通过HTTP POST请求来修改compatible client versions。 HTTP body中通过JSON array type输入版本。(也可以输入空的JSON array。)
添加了RuntimeConfiguration:AppInfo的client_current_version
- Network¶
添加了为进行服务器测试而连接其他服务器client的功能
- Service¶
Authentication:添加了Nexon Toy
- Database¶
Redis: 修复了以较低概率出现的延时处理漏洞
- Time¶
添加了``WallClock::FromSec``、
MonotonicClock::FromSec
- Distribution¶
修改为服务器运行中与Zookeeper服务器连接失败时,会关闭服务器
- misc.¶
Document: 优化了参考文件中的事件相关说明
Document: 添加了数据包重放攻击屏蔽功能说明
v1.0.0-1530 (2016-04-04)¶
2016-04-04 11:23:03
- Network¶
添加了在multi-thread中访问session context时获取用于同步的mutex功能
删除了TCP连接断线并创建新的连接时所产生的不必要的Assert
修改为``TcpTransportDetachedHandler``运行时,可将session id作为event tag
修复了服务器驱动时以极低概率出现的崩溃漏洞
添加了在不使用session reliability的情况下,直接对TCP、HTTP消息的 sequence number进行检验,从而防止消息重复的sequence number validation功能
添加了让指定时间内未作出ping响应的连接自动断线的功能
- Distribution¶
添加了5秒内若未发送RPC reply,则显示警告的功能
- Management¶
添加了对处理ApiService的event tag数进行设置的功能
- System¶
修改为使通用event tag(timer, api service handler)不自动继承
- misc.¶
Document: 修复了让Biller开始服务时的命令语说明错误
修改为创建项目时,可开启所有compile time warning
在component model说明中体现了最新的更新内容
v1.0.0-1514 (2016-03-17)¶
2016-03-17 20:14:27
- Service¶
修复了Matchmaking Server连接断线时,部分Callback无法被调用的问题
Multicast: 修改为rpc_enabled: false时,会运行失败
Multicast: 修改了MANIFEST.json说明中的强调位置错误
Multicast: 修复了跨服连接断线时崩溃的漏洞
- Management¶
RuntimeConfiguration: 优化为输入了无法设置的flag时,也能开启服务器
- Network¶
修复了调用``Session::GetRemoteEndPoint()``时因连接断线而发生的漏洞
- misc.¶
更新了Visual Studio设置文档
添加了英文版本的tutorial文档
修改了部分韩文参考文档