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-4113 (2019-06-17)

2019-06-17 17:41:41

Object
  • 주키퍼 동작 관련 기능들의 안정성을 개선했습니다.

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-3967 (2019-03-22)

2019-03-22 20:46:21

System
  • 이벤트 함수는 이제 모든 Install() 함수 호출이 끝난 후 시작합니다.

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

다음 변경 사항으로 인해 Mariadb 객체를 사용할 경우 프로젝트를 다시 빌드해야 합니다.
  • Mariadb Connector 에 연결 장애 시 호출되는 핸들러를 추가했습니다.

다음 변경 사항으로 인해 MaintenanceService 컴포넌트를 사용할 경우 MANIFEST.json
파일 안에 MaintenanceService 를 추가해야 합니다.
  • MaintenanceService 컴포넌트는 이제 기본적으로 비활성화 상태로 동작합니다.

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-3585 (2018-10-02)

2018-10-02 08:37:48

System
  • NFS와 같은 일부 파일 시스템 정보를 읽을 수 없는 문제를 수정했습니다.

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.jsonSessionService 항목에서 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-2874 (2018-06-04)

2018-06-04 15:09:23

Network
  • Protobuf field(정수) 타입을 인자로 받는 메세지 훅 추가

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_idinstance_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-2779 (2018-03-16)

2018-03-16 14:17:57

Service
  • 버그 수정 및 안정성 개선

v1.0.0-2769 (2018-03-09)

2018-03-09 10:32:01

Service
  • 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-2604 (2018-01-22)

2018-01-22 18:00:26

Service
  • 페이스북 인증시 크래시하는 문제 수정(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-2590 (2018-01-12)

2018-01-12 08:49:17

Network
  • funtest::Session 의 TCP 닫힐 때 상태 정보 문제 수정

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-2585 (2018-01-06)

2018-01-06 14:54:45

misc.
  • Mono에서 타이머 취소 시 exception이 발생하던 문제 수정

v1.0.0-2577 (2018-01-03)

2018-01-03 11:50:30

Service
  • RPC Redis backend 일 때 간헐적으로 서버 종료 안되는 문제 수정.

v1.0.0-2571 (2018-01-02)

2018-01-02 15:19:49

Management
  • ApiService가 꺼져있을 때 서버가 동작하지 않는 문제 수정

v1.0.0-2568 (2018-01-02)

2018-01-02 01:38:58

Management
  • ApiService 가 완전히 초기화된 후 요청을 받도록 수정

v1.0.0-2565 (2017-12-29)

2017-12-29 09:48:41

Service
  • ORM오브젝트 정의 시 두 개 이상의 속성을 조합하여 키로 사용할 수 있습니다.

v1.0.0-2561 (2017-12-29)

2017-12-29 13:18:38

Service
  • Matchmaking 통계 출력 문제 수정.

  • Matchmaking 통계에서 매칭 min/max 초기값을 0으로 수정.

Management
  • API service 의 URL 처리 로그에 bytes 길이도 출력하도록 수정.

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-2549 (2017-12-21)

2017-12-21 17:11:07

Service
  • World 사각형 필터에 구체 검사 추가

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-2522 (2017-12-08)

2017-12-08 01:40:05

Service
  • 월드에서 부채꼴 필터가 구체 검색 과정의 잘못된 ASSERT 제거

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

Service
  • World 사각형, 부채꼴 필터에 잘못된 방향(0, 0) 입력에 대한 예외처리 추가

Distribution
  • RPC 백엔드로 redis를 쓸 때 object id pool 관리 수정

v1.0.0-2509 (2017-12-05)

2017-12-05 09:17:44

Network
  • 분당 처리할 세션당 메시지 수 제한 추가

  • HTTP 에도 rate limit 적용 (HTTP 429)

v1.0.0-2506 (2017-12-04)

2017-12-04 20:59:45

Service
  • World 의 부채꼴 필터 버그 수정

v1.0.0-2503 (2017-12-04)

2017-12-04 14:05:31

Network
  • 플래그 지정 없이 웹소켓 서버가 실행되던 버그 수정

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-2460 (2017-11-21)

2017-11-21 10:59:32

Service
  • World 사각형, 부채꼴 필터의 무한대 높이 처리의 잘못된 Assert 제거

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-2373 (2017-09-19)

2017-09-19 15:16:24

Time
  • Timer 의 Event Tag 처리 관련 버그 수정

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-2336 (2017-09-04)

2017-09-04 23:14:57

Framework
  • 이벤트 함수에서 크래시할 때 이벤트 이름 출력

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-2290 (2017-08-22)

2017-08-22 09:31:30

Service
  • DeployApiService: 아이템 회수 명령 인자 설정 버그 수정

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-2258 (2017-08-10)

2017-08-10 16:00:34

Service
  • World 기능 추가

v1.0.0-2253 (2017-08-09)

2017-08-09 13:14:16

Service
  • 아마존 데디케이티드 서버 지원 관련 버그 수정

v1.0.0-2251 (2017-08-09)

2017-08-09 10:53:02

Network
  • Session::CloseTransport() 로 UDP 를 닫을 때 버그 수정

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-2205 (2017-07-19)

2017-07-19 12:01:37

Object
  • 일부 버그 수정 및 성능 개선.

v1.0.0-2200 (2017-07-18)

2017-07-18 11:46:09

Object
  • Object Cache 의 Index 성능 개선

  • 생성된 Object 가 DB Update 완료 전에 Cache 에서 내려갈 수 있는 문제 수정

v1.0.0-2199 (2017-07-17)

2017-07-17 20:35:32

Service
  • 데디케이티드 서버에 유저 진출입, 커스텀 콜백 기능 추가

v1.0.0-2196 (2017-07-17)

2017-07-17 09:42:16

Database
  • RedisClient 명령 호출 후 메모리 반환에 지연이 생기는 버그 수정

v1.0.0-2195 (2017-07-16)

2017-07-16 14:46:15

Object
  • 하나의 Object 가 서로 다른 두 서버에서 동시에 캐싱될 수 있는 문제 수정

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-2171 (2017-06-30)

2017-06-30 10:58:00

misc.
  • ResourceManager 문서중 기획데이터 사용하기 예제 잘못된 것 수정

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-2126 (2017-05-30)

2017-05-30 15:48:26

Service
  • DSM: 修改为执行DSM host时,即使未显示redis也进行等待

v1.0.0-2125 (2017-05-30)

2017-05-30 15:01:00

Network
  • 强化了TransportProtocol值的Assert处理

v1.0.0-2121 (2017-05-29)

2017-05-29 18:22:17

Service
  • DSM: 在通过EC2 public IP地址打开RESTful API的情况时处理

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-2103 (2017-05-23)

2017-05-23 17:10:13

misc.
  • C# - 修复了ORM Object中有Bool类型时的Build错误

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-2082 (2017-05-10)

2017-05-10 09:09:39

misc.
  • 修复了因CentOS7 rapidjson更新而导致的服务器无法运行的问题。

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-2042 (2017-04-05)

2017-04-05 09:36:24

misc.
  • 修复了1.0.0-2040 experimental版本中服务器崩溃时无法关闭的问题。

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-1954 (2017-02-07)

2017-02-07 09:59:41

Database
  • Mariadb(MySQL) 优化了Connector的超时处理

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-1936 (2017-01-25)

2017-01-25 11:20:01

Distribution
  • 优化了接收非正常RPC消息的异常处理

v1.0.0-1935 (2017-01-25)

2017-01-25 10:35:52

Distribution
  • 修复了给自身发送RPC时的漏洞

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

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-1901 (2016-12-14)

2016-12-14 18:11:13

misc.

更新了插件文件

v1.0.0-1897 (2016-12-13)

2016-12-13 22:26:52

Service
  • 添加了管理Dedicated Server的组件

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-1888 (2016-12-08)

2016-12-08 02:36:51

Object
  • 修复了会对object migration工具中提取的文件进行覆盖的问题

v1.0.0-1886 (2016-12-07)

2016-12-07 19:54:38

misc.
  • 修复了将服务器中构建好的Unity DLL应用到客户端上时,构建失败的问题

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``、ExecMulti

v1.0.0-1668 (2016-08-09)

2016-08-09 07:58:51

Object
  • 修改为可以使用``String(32) KEY`` / <String(32), ANY>

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

Warning

Breaking Changes

``String(32)``无法用作Key,须要重新构建。 (该限制规定已在之后的release中删除。

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-1645 (2016-07-18)

2016-07-18 00:39:53

Distribution
  • 添加了Zookeeper性能分析文件

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

Warning

Breaking Changes

当升级为已添加了延时更新功能的版本后,须要重新构建服务器。

使用RPC功能时,须要重新构建游戏服务器。(``Rpc::Call()``函数相关)

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
  • 修复了Redis的key或value中有空格时,会失败的漏洞

  • Redis::Command()``Redis::CommandAsync()``函数已进行*deprecated*处理。

  • 计划在2016年8月删除,须要替换成新添加的``Redis::ExecuteCommand()``, ``Redis::ExecuteCommandAsync()``函数。

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_timenext_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文档

  • 修改了部分韩文参考文档