iFun Engine Changelog (experimental)

v1.0.0-2934 (2018-07-10)

2018-07-10 17:08:42

Network
  • You can now change the warning threshold of send message queue When using session reliability feature.

    • The warning threshold session_reilability_send_queue_warning_threshold (default: 64) is specified at SessionService Component of your MANIFEST.json .
misc.
  • funtest C#: Added SendMessage for integer message type (message_type).
  • funtest C#: Added message handler (RegisterMessageHandler) for integer message type (message_type).

v1.0.0-2923 (2018-07-03)

2018-07-03 18:23:52

Warning

Breaking Changes

  • Due to the below update, You may have to change the name of flag in your project that using Dedicated Server Manager component.

    • Dedicated Server Manager : The flag dedicated_server_defunct_timeout_seconds is now renamed as dedicated_server_launch_timeout .
Service
  • Dedicated Server Manager : dedicated_server_defunct_timeout_seconds flag is now renamed as dedicated_server_launch_timeout .
  • Dedicated Server Manager : Added dedicated_server_terminate_defunct_instances flag. If the flag is set to true , the instances that did not received ready API within the timeout dedicated_server_launch_timeout(default: 300 seconds) will be terminated automatically.
Management
  • Fixed a bug where Counter API was not collecting NIC and disc usage correctly in certain environment.
misc.
  • Fixed a bug where creating upstart/systemd script was not working correctly for the project which defined multiple flavors

v1.0.0-2911 (2018-06-22)

2018-06-22 01:29:29

Service
  • DS Host: Added process timeout option.

    • dedicated-server-hosts will now respond failure meesage if process is not created within the timeout( request_timeout_seconds , default: 10) seconds.
  • DS Host: Added an error log with exit code for the cases that process terminated unexpectedly or being killed.

Management
  • Added the size of cache memory( cachedram ) in Counter API.

v1.0.0-2904 (2018-06-15)

2018-06-15 14:14:29

Service
  • Added a verbose log before DedicatedServerManger connects to dedicated-server-host.
  • Added several error logs that include a specific uri when connecting to dedicated-server-host is failed.
  • Added several error logs for dedicated-server-host when validating JWT is failed.
  • Added several error logs for ds-state-service when validating JWT is failed.

v1.0.0-2890 (2018-06-11)

2018-06-11 16:53:39

Service
  • Fixed an bug that describing instances was not working in redis-only environment in 2885 experimental.

v1.0.0-2885 (2018-06-08)

2018-06-08 13:41:07

Service
  • Fixed an issue that Spawn request proceed twice in slow network condition.

  • Changed the log message to make it more clear when selecing a instance is failed.

    • Example: Wating for pending , Not enough capacity , Invalid request
  • Changed the log message to make it more clear when connecting dedicated server host is failed.

System
  • MapRef::Size function is added.
  • C# - MapRef::Length is added.

v1.0.0-2874 (2018-06-04)

2018-06-04 15:09:23

Network
  • Added a new message hook (InstallProtobufMessageHandlerHook2) to support Protobuf field(integer) type.

v1.0.0-2872 (2018-06-01)

2018-06-01 10:18:19

Service
  • Instances creation/termination logic is changed as follows in DedicatedServerManger component.

    • DedicatedServerManger will now create new instances when the version is changed. Because of this behavior, number of total instances can be higher than the value of max_instances.
    • DedicatedServerManger now counts the instances with both deprecated and new version when choosing the servers to terminate. This behavior will prevent that terminating reserved instances before the new instances are prepared.
    • Once the new version is prepared, DedicatedServerManger will only use the new instances for upcoming matches. Deprecated instances will handle remaining matches, but they will be terminated when they become idle.
  • DedicatedServerManger will now show the warning message if one (or more) of your instances is not prepared until the time that specified in the following flag.

    • dedicated_server_defunct_timeout_seconds=<numeric> (default value:300, 5 minutes).

v1.0.0-2862 (2018-05-23)

2018-05-23 14:24:49

Warning

Breaking Changes

  • Due to the below update, All EC2 instances that are used for host service must be terminated, or should be tagged to have a funapi_internal_tag:dsm tag.

    • Fixed a bug where describing EC2 instances was not working correctly after aws_settings is updated.
Service
  • The proper error log message will be shown when updating aws_settings is failed.
  • Fixed a bug where describing EC2 instances was not working correctly after aws_settings is updated.
  • Fixed a bug where marking EC2 instances as deprecated was not working correctly after aws_settings is updated.
  • A response for /version API now has two status types (current/deprecated).

v1.0.0-2849 (2018-05-15)

2018-05-15 08:44:28

Service
  • Fixed an issue where calculating terminated instances was incorrect in the multi-region environment.
  • DedicatedServerManger now retry with exponential backoff algorithm when calling describe API is failed.
  • Minor performance improvement for calling AWS API.
  • PreRedirectionHook function is added. The hook will be called before the server sending a redirection message to a client.
  • DedicatedServerManger now counts instances that have the same image_id, and the same instance_id if it is specified in your MANIFEST.json.
Billing
  • A new function is added for getting transaction ID in C#
  • A new error code is added for the case that product does exists.

v1.0.0-2827 (2018-04-25)

2018-04-25 16:36:27

Warning

Breaking Changes

  • You should rebuild your server due to the following changes.

    • A new error code is added for the case that product does not exists.
Service
  • Following logs are enabled by default:
    • Before create instances.
    • Before terminate instances.
    • After successfully tagged a version.
    • After successfully fetched description of instances.
    • When instances are found that has a termination conditions.
    • When Redis keys are found which is not actually on AWS.
  • DedicatedServerManager now removes the Redis key corresponding a instance that is not actually on AWS.
Billing
  • A new function is added for getting transaction ID .
  • A new error code is added for in the case that product is not exists

v1.0.0-2821 (2018-04-19)

2018-04-19 11:02:52

Service
  • DedicatedServerManager now tags instances in the same region.
  • DedicatedServerManager now counts idle instances in the same region.

v1.0.0-2817 (2018-04-18)

2018-04-18 15:15:20

Service
  • Fixed an issue where parsing image-id in DedicatedServerManger Component was not working in 2808 experimental.
  • DedicatedServerManger Component now prints log message when AWS setting is changed.
    • sensitive data, such as api key or secret, will be substituted by *****.

v1.0.0-2808 (2018-04-16)

2018-04-16 11:50:11

Service
  • Fixed an issue that the match context is null in ProgressCallback2.
  • Added verbose log option for Dedicated Server Manager.
    • You may see more details by turning on dedicated_server_verbose_log flag in DedicatedServerManager Component.
  • Fixed an issue that Dedicated Server Manager crashes when user_data is empty.
  • Dedicated Server Manager now handles image_id that shorter than 8 characters format correctly.
Management
  • Added request IP information in Http::Request and Http::Request2 structure.

v1.0.0-2801 (2018-04-10)

2018-04-10 08:54:17

misc.
  • Fixed an issue where identifying EC2 instances was not working properly.

v1.0.0-2800 (2018-04-07)

2018-04-07 17:26:40

misc.
  • Fixed an issue Where Dedicated Server Manager was handling instance with incorrect region info.

v1.0.0-2798 (2018-04-06)

2018-04-06 11:23:59

misc.
  • Dedicated Host Service now sends region info to Dedicated Server Manager properly.

v1.0.0-2796 (2018-04-04)

2018-04-02 13:29:18

misc.
  • Fixed an issue that might fail to parse C# Protobuf message in 2794 experimental version.

v1.0.0-2794 (2018-04-02)

2018-04-04 17:13:09

Service
  • Client resource files can be ignored by .funignore file.

    Ignoring feature is now available in funapi_client_resource_generator and iFunEngine. All files that matched with Perl regex expression in .funignore file will be ignored.

Object
  • Fixed an issue that failed to create composite key in Jinja2 2.8 version
Distribution
  • Fixed an issue that redis-backend RPC failed when database is disabled.
misc.
  • Fixed a bug that crash when server received empty protobuf message in C#

v1.0.0-2779 (2018-03-16)

2018-03-16 14:17:57

Service
  • Minor bug fixes, stability improvements

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

2018-03-09 10:32:01

Service
  • Fixed an issue that causing crash when matchmaking is completed in C#

v1.0.0-2768 (2018-03-08)

2018-03-08 17:26:03

Warning

Breaking Changes

  • You have to rebuild all servers at once if Matchmaking feature is used.

    • MatchContext removed from ProgressCallback, and ProgressCallback2 is added.

    You can still use match context in ProgressCallback2 callback.

    • UpdateMatchPlayerContext C++ is added.

    This can be used to change context of player who joined match.

Service
  • DSM: Allowed to read a file with user_data in aws settings
  • MatchContext removed from ProgressCallback, and ProgressCallback2 is added.

You can still use match context in ProgressCallback2 callback.

UpdateMatchPlayerContext C++ is added.

This can be used to change context of player who joined match.

v1.0.0-2762 (2018-02-26)

2018-02-26 05:36:49

Warning

breaking changes

  • You have to rebuild your project if MariaDB Connector is used.

    • MariaDB Connector can now read SQL Timestamp type.
    • MariaDB Connector can now accepts client flag.
Database
  • MariaDB Connector can now read SQL Timestamp type.
  • MariaDB Connector can now accepts client flag.
Service
  • Dedicated server manager will recover itself even if the redis key is removed.

v1.0.0-2720 (2018-02-19)

2018-02-19 12:58:06

Warning

Breaking Changes

  • You may have to fix your code since below changes are based on World::GetAllObject.
    • World::GetAllObject can now accept custom filter as a type.
Service
  • World::GetAllObject can now accept custom filter as a 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 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 Required DB permissions 에서 설명하는 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 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 Required DB permissions 에서 설명하는 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 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 Required DB permissions 에서 설명하는 export_db_schema 옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.

    • 오브젝트 DB 테이블의 col__tag 사용하지 않도록 수정.

      더이상 col__tag 컬럼이 사용되지 않습니다. 엔진에서 자동으로 해당 컬럼을 제거하지는 않습니다. 본 수정으로 인해 DB 스키마 해시가 변경되어 프로시저를 재 생성하는 DDL 쿼리가 실행됩니다. 만약 DB 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 Required DB permissions 에서 설명하는 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 권한이 충분하지 않을 경우 서버가 실행되지 않습니다. 이 경우 Required DB permissions 에서 설명하는 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: Now waits when executing DSM host even when Redis doesn’t start

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

2017-05-30 15:01:00

Network
  • Improved assertion handling of TransportProtocol values

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

2017-05-29 18:22:17

Service
  • DSM: Handled if RESTful API is opened with an EC2 public IP address

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

2017-05-29 15:16:32

Warning

Breaking Changes

  • You may need to modify Multicast Protobuf and update plugins due to the following change.

    The available field number range for the Multicast Protobuf extension has been changed. If extending FunMulticastMessage, you need to use field numbers from 16 and up. You also need to update plugins to at least the versions below. (in experimental version)

    • Unity3D: 212
    • Unreal4: 62
    • Cocos2d-x: 62
Network
  • Fixed field error when using Protobuf extension identifiers as message types

v1.0.0-2109 (2017-05-24)

2017-05-24 16:57:18

Warning

Breaking Changes

  • You need to update server fields and plugins due to the following change.

    • Added function to use Protobuf message type as integer instead of string

    To use this feature, you need to update plugins to at least the following versions. (in experimental version)

    • Unity3D: 210
    • Unreal4: 61
    • Cocos2d-x: 61
Network
  • Added feature to only send session ID in first message in TCP and UDP, and later omit to reduce network traffic.
  • Added function to use Protobuf message type as integer instead of string

v1.0.0-2103 (2017-05-23)

2017-05-23 17:10:13

misc.
  • Fixed field error when Bool type present in C# - ORM objects

v1.0.0-2099 (2017-05-19)

2017-05-19 19:56:02

Warning

Breaking Changes

  • You need to modify your code or rebuild your server due to the following change.

    • Deploy API: bug fixes and changed interface responses

    Some DeployApiService interfaces were modified, so you need to rebuild your server. SearchUsers, GetInventory You need to update implementation for the ___ function.

    • Session::LastSentMessageType() Fixed Session::LastSentMessageType() function error

    Source code must be modified because session API has changed.

Distribution
  • Fixed handling of Zookeeper exceptions
Management
  • Deploy API: bug fixes and changed interface responses
Network
  • Session::LastSentMessageType() Fixed Session::LastSentMessageType() function error
misc.
  • Fixed the bug in which systemd service did not run when package created in Ubuntu 16.04
  • Fixed the bug in which service did not work correctly when systemd package created using flavors

v1.0.0-2082 (2017-05-10)

2017-05-10 09:09:39

misc.
  • Fixed server not running due to CentOS7 RapidJSON update.

v1.0.0-2080 (2017-05-04)

2017-05-04 16:29:43

Object
  • More data now output in object model error log and changed to fatal log
  • Added accumulated object model test
Framework
  • Updated to record Google Protobuf error logs in log file instead of stderr.
System
  • C# - Event::Abort() support
Network
  • C# - Session::SetTransport(...) support

v1.0.0-2074 (2017-04-24)

2017-04-24 19:24:05

Warning

Breaking Changes

  • You may need to modify code due to the following change.

    • DSM: Changed implementation to allow user intrusion

    Source code needs to be modified because the dedicated server API was modified. DedicatedServerManager::SendUsers() function was changed to Spawn(), and a parameter was added to send data for each user so the function could use the data (empty JSON must be sent even if there is no data). Existing SendUsers function now only handles sending users to games that have already started. Client and funapi-dedicated-server-host must now be updated to the latest version to work.

Service
  • DSM: Changed implementation to allow user intrusion

v1.0.0-2071 (2017-04-21)

2017-04-21 02:43:49

Warning

Breaking Changes

  • C# project options must be modified due to the following change.

    • Fixed bug preventing debugging from starting in C# - Monodevelop 5.x

    When using Monodevelop 5.x, recreate the project or refer to /usr/bin/funapi_monodevelop_helper.exe in Options -> Run -> User commands

as follows to add as the first item.

  1. Copy the value you input previously.
  2. Add the item at the “Run” stage and input “/usr/bin/funapi_monodevelop_helper.exe”.
  3. Add the item at the “Run” stage and reenter data deleted in 1.
Service
  • Reflected Nexon platform authentication changes
misc.
  • Fixed bug preventing debugging from starting in C# - Monodevelop 5.x

v1.0.0-2068 (2017-04-20)

2017-04-20 17:07:31

Warning

Breaking Changes

  • MANIFEST.json file options must be modified due to the following change.

    • Changed thread number setting name to handle network I/O

    Changed SessionService/network_io_threads_size in IoService/io_service_threads_size and existing settings are valid for now. Please change to the new setting name as soon as you can.

    • Added Google Log storage time option

    Debug logs (glog) are deleted after 30 days. To store them for longer,

you need to change glog_retention_period_in_days.

Network
  • Changed thread number setting name to handle network I/O
System
  • Added Google Log storage time option
Object
  • Removed hanging assertion when invoking ORM object Delete() two or more times
  • Fixed bug preventing build when there was a string type in C# - map key
Distribution
  • Changed Zookeeper performance counter address in zookeeper_stat to distribution_profiling

v1.0.0-2059 (2017-04-17)

2017-04-17 16:55:31

Object
  • Supported resetting C# - Object as JSON
  • Added Has, Clear, and FindFirstEmptySlot functions in C# object ArrayRef and MapRef
misc.
  • Fixed to work even when setup_build_environment is not a symbolic link
  • Changed C# - Install/Start/Uninstall function return type to void -> bool
  • Json::HasAttribute({AttrName}, {AttrType}) Added Json::FindAttribute() function

v1.0.0-2042 (2017-04-05)

2017-04-05 09:36:24

misc.
  • Fixed shutdown bug when server crashes in 1.0.0-2040 experimental version.

v1.0.0-2040 (2017-04-03)

2017-04-03 16:19:20

Network
  • Updated to leave log when session closed
Service
  • Fixed hang on assertion bug when logging in with a different account ID while already in a logged-in session in AccountManager

v1.0.0-2018 (2017-03-30)

2017-03-30 14:18:43

compared with ‘==’ operator
Network
  • Updated to leave more data such as client addresses in network log

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

  • You need to rebuild your server due to the following change.

    • Added server test feature (funtest::Session) UDP support

      You need to rebuild your server if using funtest::Session.

Network
  • Updated to leave transport protocol (TCP or UDP or HTTP) together in the session message log
misc.
  • Added server test feature (funtest::Session) UDP support
  • Fixed server test feature (funtest::Session) HTTP bug

v1.0.0-2011 (2017-03-27)

2017-03-27 16:19:58

Warning

Breaking Changes

  • You need to modify your code or rebuild your server due to the following change.

    • Enabled selection of matchmaking server
      • StartMatchmaking() Added target_server parameter to function. Enabled selection of one of kRandom (NULL), kLeastNumberOfPlayers (prioritize server with fewest requests) or kMostNumberOfPlayers (prioritize server with most requests), or direct PeerId selection.
    • Rpc::SetStatus() Updated to prevent overwriting internal engine status when Rpc::SetStatus() invoked
    • C# support updated
      • C# projects created in earlier versions must be remade.
Service
  • GetMatchmakingServerInfo() Added GetMatchmakingServerInfo() function. All MatchmakingServer PeerId and number of matchmaking requests can be discovered.
  • Added LINE authentication

v1.0.0-1991 (2017-03-14)

2017-03-14 09:37:02

Distribution
  • Added flag called rpc_use_public_address
Network
  • Fixed bug ignoring later messages if unregistered messages were received from the handler in HTTP
  • Updated to automatically close transport when funtest::Session closed
System
  • Schema output can now be turned off in activity log file with MANIFEST settings
misc.

v1.0.0-1974 (2017-02-23)

2017-02-23 10:33:34

Warning

Breaking changes

  • You need to modify your code or rebuild your server due to the following change.
    • Fixed the bug preventing broadcasting from working if kDefaultProtocol was set
      • Session(AccountManager)::BroadcastLocally/Globally() Removed default recognized values for Session(AccountManager)::BroadcastLocally/Globally() function encryption and TransportProtocol.
Network
  • Fixed the bug preventing broadcasting from working if kDefaultProtocol was set
Framework
  • Fixed bug delaying close handling during SIGSEGV crash
Object
  • Fixed bug causing incorrect output of rollback frequency in event_profiling counter
misc.
  • Multicast: Documented message transmission hooking
  • Documented session BroadcastLocally() and BroadcastGlobally() functions
  • Documented AccountManager BroadcastLocally() and BroadcastGlobally() functions
  • Json::FindAttribute() Added Json::FindAttribute() function

v1.0.0-1954 (2017-02-07)

2017-02-07 09:59:41

Database
  • Mariadb(MySQL) Improved MariaDB (MySQL) connector timeout handling

v1.0.0-1952 (2017-02-06)

2017-02-06 09:11:34

Network
  • Network: Added function to send messages to all sessions
  • AccountManager: Added function to send messages to all logged in sessions
Object
  • Updated to also support foreign attributes when object reset with JSON
Service
  • Multicast: Added hook called during message transmission

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

2017-01-25 11:20:01

Distribution
  • Improved exception handling of irregular RPC message receipt

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

2017-01-25 10:35:52

Distribution
  • Fixed bug when sending RPC to self

v1.0.0-1931 (2017-01-24)

2017-01-24 04:25:41

Warning

Breaking changes

  • You need to rebuild the game server because of the following changes.
    • Updated to receive callbacks when parsing from Json::From*(...) fails
C#
  • C# support (Ubuntu)

    CentOS will be supported later.

    To develop with C#, you need to input the following commands to remake your project.

Framework
  • Updated to receive callbacks when parsing from Json::From*(...) fails

v1.0.0-1912 (2017-01-17)

2017-01-17 12:40:49

System
  • Fixed server crash bug with Assert failed: execution_time_ == 0:

v1.0.0-1903 (2016-12-15)

2016-12-15 11:55:46

Warning

Breaking changes

  • Required client plugin updates are as follows.

    • Added feature to send Protobuf session ID in bytes

      You need to update client plugins to at least the versions listed below and rebuild Protobuf DLL.

      • Unity3D: 190
      • Unreal4: 35
      • Cocos2d-x: 35
Object
  • Fixed incorrect handling of some DB data by object_db_migrator.py tool
Network
misc.
  • Fixed Unity3D DLL build failure when building a server

v1.0.0-1901 (2016-12-14)

2016-12-14 18:11:13

misc.
Updated plugin documentation

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

2016-12-13 22:26:52

Service
  • Added component to manage dedicated servers

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

2016-12-13 18:28:12

System
  • Changed event_queue_stat to event_profiling_summary
  • Added event counter, changed some counters to under events
    • Changed previous event_queue_length to under event counter.
    • Changed previous event_injection_per_sec to under event counter.
    • Changed previous event_complete_per_sec to under event counter.
Object
  • Added object counter, changed some counters to under objects
    • Changed previous objects to “object_count” under object counter.
    • Changed previous outstanding_update_query to under object counter.
    • Changed previous outstanding_fetch_query to under object counter.
  • Fixed incorrect handling of fields with unset values in the object migration tool

v1.0.0-1888 (2016-12-08)

2016-12-08 02:36:51

Object
  • Fixed overwriting of files extracted from the object migration tool

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

2016-12-07 19:54:38

misc.
  • Fixed build failure when Unity DLL built on server is used on the client

v1.0.0-1881 (2016-12-06)

2016-12-06 21:12:45

System
  • Fixed assertion crashing during event handling
  • Added queue time to event profiling (queue_time_xxx)
  • Changed name of event profiling wait_time_xxx to io_wait_time_xxx
  • Changed name of each statistics item in event queue
    • Changed completion_xxx -> execution_time_xxx.
    • Changed wait_xxx -> io_wait_time_xxx.
Object
  • Fixed Assert failed: cache_for_lease_.Remove(object_id) crashing
  • Fixed potential unclearing of some resources during event timeout
  • Fixed bug causing crash when schema installed simultaneously on several servers
  • Fixed crashing during DB schema update in CentOS
misc.
  • Updated networking feature documentation
  • Fixed incorrect explanation in Document: os.cpus

v1.0.0-1852 (2016-11-21)

2016-11-21 13:21:40

Warning

breaking changes

  • Multicast: Fixed client crashing bug when sending Protobuf multicast messages in iOS

    If using multicast, you need to use at least plugin version 186 and rebuild Protobuf DLL.

Service
  • Multicast: Fixed client crashing bug when sending Protobuf multicast messages in iOS

v1.0.0-1848 (2016-11-18)

2016-11-18 02:17:43

Warning

breaking changes

  • Updated to only regenerate when object DB procedure changed

    Tables have been added due to this modification, and you can now execute DDL queries. If DB permissions are insufficient, the server may crash.

  • Locked col__tag column length at 36

    You can now execute DDL queries changing col__tag to 36 because of this change. If DB permissions are insufficient, the server may crash.

  • Fixed crashing due to “Assert failed: ObjectCache::Delete(...)”

    You need to rebuild your game server to apply the change.

  • Added TRANSACTION ISOLATION LEVEL READ UNCOMMITTED setting for objects

    If you change this option when use_db_stored_procedure: true, you can execute the DDL regenerating the procedure. If DB permissions are insufficient, the server may crash.

  • Session::GetLastReceiveTime(msgtype)Added hook called when Session::GetLastReceiveTime(msgtype), SendMessage()

    You need to rebuild your game server.

Object
  • Fixed crashing due to “Assert failed: IsValid()”
  • Added feature to automatically change if string columns are long
  • Added DB table schema verification for objects
  • Added DB procedure schema verification for objects
  • Updated to only regenerate when object DB procedure changed
  • Locked col__tag column length at 36
  • Fixed crashing due to “Assert failed: ObjectCache::Delete(...)”
  • Added TRANSACTION ISOLATION LEVEL READ UNCOMMITTED setting for objects
  • Fixed table verification failure after schema installation
  • Fixed incorrect server shutdown when object DB schema retrieved
System
  • Fixed “Assert failed: IsValid()” crashing when using MulticastServer
  • Fixed “Assert failed: IsValid()” crashing when 2 or more event handlers registered in one event type
  • Updated event thread hang checker
  • Updated event handling
Network
  • Session::GetLastReceiveTime(msgtype)Added hook called when Session::GetLastReceiveTime(msgtype), SendMessage()
  • HttpClient: Fixed retry when DNS search problem occurred
Framework
  • Fixed abnormal server shutdown when shutting down during component installation
Distribution
  • Fixed “failed to unpublish” log output problem
  • Fixed distribution handling problem with incorrect build options in CentOS
misc.
  • Improved document search
  • Added biller changelog
  • Added authenticator changelog
  • Added leaderboard changelog
  • Documented core dump debugging

v1.0.0-1814 (2016-10-28)

2016-10-28 16:35:29

Object
  • Fixed bug in which some procedures dropped when using export_db_schema option
  • Fixed bug not reflecting changed schema in insert, update procedures

v1.0.0-1810 (2016-10-26)

2016-10-26 11:16:51

Warning

Breaking Changes

  • Fixed failure to detect array and map attribute type changes

    The server may crash if array or map attribute types are changed while the server is running.

Distribution
  • Fixed crashing due to distribution assert
  • Fixed RPC connection failure bug when the server shut down unexpectedly
  • Rpc::SetStatus() Fixed unreflected peers during Rpc::SetStatus() access handling
Object
  • Fixed failure to detect array and map attribute type changes
misc.
  • Allowed proto file in directories outside {project}-source/src

v1.0.0-1791 (2016-10-05)

2016-10-05 16:52:44

Warning

Breaking Changes

  • Fixed failure to detect length changes in strings with variable lengths

    You can retry the DB schema update when running the server. If DB permissions are limited, the DB schema update executes and the server may crash. In this case, use the export_db_schema option explained in Required DB permissions to update the DB schema with an administrator DB account.

Object
  • Fixed crashing due to distribution assert
  • Fixed failure to detect length changes in strings with variable lengths
  • Fixed bug in Python code when object handling code created
misc.
  • Document: Added Zookeeper max heap size Java option description
  • Document: Added Zookeeper auto purge option description

v1.0.0-1783 (2016-09-28)

2016-09-28 16:56:21

Object
  • Fixed “failed to lease” log not output up to a set number of times
  • Reduced unnecessary retries due to lease delay when object ownership changes
  • Improved distribution performance
  • Fixed server crash bug due to object fetch assert
Distribution
  • Fixed bug in which some Zookeeper clients were omitted from statistics
  • Fixed omitted RPC finisher in engine
  • Fixed RPC disconnect handler execution order bug
Service
  • Added Curl dependency to ClientResourceServce MANIFEST
misc.
  • Fixed funapi_profile failure to operate when there are multiple server processes
  • Json::Copy() Optimized Json::Copy()

v1.0.0-1766 (2016-09-23)

2016-09-23 08:52:28

Warning

If you use IFE1 or IFE2 encryption, you must update the plugin to version 176 or higher.

Network
  • Fixed IFE1, IFE2 encryption bug

v1.0.0-1759 (2016-09-22)

2016-09-22 14:14:38

Warning

Breaking Changes

  • Removed leaderboard ScoreSubmissionRequest::kUpdate.

    You need to change to ScoreSubmissionRequest::kHighScore.

  • Removed Redis Command(Async) function.

    You need to change to the ExecuteCommand(Async) function.

Service
  • Leaderboard: Removed ScoreSubmissionRequest::kUpdate
Distribution
  • Fixed temporary inability to import objects
  • Fixed intermittent crashing when server shuts down
  • Fixed intermittent Zookeeper connection failure when server starts
  • Fixed irregular handling during shutdown after crash
Object
  • Fixed infrequent assertion crash bug when remote server shuts down
  • Fixed distribution assert crash bug
  • Updated shutdown handling
Database
  • Redis: Removed Command(Async) function
Network
  • Added ChaCha20 / AES128 support to transport encryption
Management
  • Counter: Added concurrent_user counter
Time
  • Added timestamp and timestring change features to WallClock
misc.
  • Document: Added list of counters supported by engine
  • Document: Updated C# Runtime test sample explanation

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

2016-09-08 12:23:49

Object
  • Removed incorrect object handling assert
  • Fixed excessive event rollbacks in particular situations
  • Fixed bug when fetching the same object with different lock types in some situations
  • Fixed potential server shutdown due to distribution assert
  • Fixed bug when fetching null object ID with kReadCopyNoLock
Framework
  • Fixed “make check_features” failure to operate when there is a comment in the MANIFEST
  • Fixed server not working in some IDE development environments when there is a comment in the MANIFEST
misc.
  • Documented how to use external libraries
  • Document: Added plugin FunapiSession explanation
  • Added Json::FromFileWithComments() and Json::FromStreamWithComments() reading JSON (including comments) from file and stream

v1.0.0-1718 (2016-08-31)

2016-08-31 15:10:22

Object
  • Fixed object lock downgrade bug
Distribution
  • Removed incorrect distribution assert
  • Fixed crashes during shutdown
System
  • Event: Added event queue handling time statistics
Framework
  • Updated shutdown handling
Management
  • Counter: Added log output if counter exceeds threshold value
misc.
  • Document: Leaderboard: Added check for ranking schedule reset
  • Document: Changed CLion build configuration description
  • Document: Fixed broken links in leaderboard documentation
  • Added client transfer documentation

v1.0.0-1697 (2016-08-19)

2016-08-19 10:41:22

Distribution
  • Fixed potential crashing during object handling
misc.
  • Documented how to lock package version

v1.0.0-1695 (2016-08-18)

2016-08-18 18:01:36

Object
  • Fixed potential assert hanging during object return handling
  • Fixed event timeout handling bug
  • Added Zookeeper owner cancellation when fetching broken objects
Framework
  • Fixed shutdown handling delay when server crashes while running
Distribution
  • Fixed distribution handling bug
Service
  • Added messages for transfer between client servers

v1.0.0-1679 (2016-08-12)

2016-08-12 17:04:52

Framework
  • Fixed shutdown failure bug after crash in some situations
misc.
  • Document: Redis: Added ExecuteCommand() function
  • Document: Redis: Added ZCount, ZRem
  • Document: Redis: Added Discard, Exec, Multi

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

2016-08-09 07:58:51

Object
  • Allowed use of String(32) KEY / <String(32), ANY>

v1.0.0-1661 (2016-08-08)

2016-08-08 15:23:34

Distribution
  • Allowed use of several ZookeeperClient
  • Added statistics for each ZookeeperClient
  • Document: Distribution: Added statistics for each ZookeeperClient
Object
  • Updated object handling

v1.0.0-1657 (2016-08-05)

2016-08-05 17:13:47

Warning

Breaking Changes

String(32) now cannot be used with a key, and you need to rebuild. (This limitation will be lifted in a future release.)

Object
  • Fixed to allow separate string length for each ORM attribute
misc.
  • Documented how to choose update channels (package repositories)
  • Added reference manual for String(n) types

v1.0.0-1650 (2016-07-30)

2016-07-30 16:15:23

Object
  • Object: Differentiated write and read in object DB statistics
  • Document: Added explanation of differentiated write and read in object DB statistics
Service
  • Updated to serialize matchmaking progress CB and match CB
Time
  • Timer: Fixed kInvalidTimerId bug for timer ID values

v1.0.0-1645 (2016-07-18)

2016-07-18 00:39:53

Distribution
  • Added Zookeeper profiling documentation

v1.0.0-1643 (2016-07-15)

2016-07-15 17:19:51

Object
  • Object: Fixed bug in which db_key_string_length, db_string_length changes were not applied

  • Document: Added or enhanced explanations of the following

    • copy_cache_expiration_in_ms
    • use_db_stored_procedure
    • db_string_length, db_key_string_length
  • System: Event: Added event queue time to EventProfiler

  • Updated to execute as many unexecuted queries as possible and shut down when the server crashes

  • Document: Updated EventProfiler statistics

  • Added statistics for use of event timeout and objects to event profiler

  • Updated kReadCopyNoLock

  • Added query handling time statistics for each DB

  • Fixed crashes during export_db_schema when table DDL did not exist

Network
  • Added and documented IsOpened() function to check whether a session is opened
  • Fixed bug in which messages sent through SendMessage() just before CloseTransport() were unable to be transmitted
Database
  • Redis: Updated to handle disconnection without waiting when connection closed
  • Redis: Fixed Redis disconnection handling when using commands at the server install stage
Distribution
  • Object ownership canceled more quickly when the server crashes
  • Added Zookeeper handling statistics
System
  • ResourceManager now supports DateTime, time, and date types
Framework
  • Allowed JavaScript notes in MANIFEST.json
Time
  • MariaDB Connector now supports DateTime, time, and date types
misc.
  • Document: Fixed MO guide example bug
  • Allowed adding notes to object_model JSON files
  • Document: Fixed errors in game server management -> planning data documentation

v1.0.0-1626 (2016-07-07)

2016-07-07 16:37:07

Warning

Breaking Changes

The server needs to be rebuilt after a version update with delayed updates added.

If using RPC, you need to rebuild your game server. (Related to Rpc::Call() function)

Object
  • Added database delayed update feature
  • Distribution: Allowed distribution handling even if enable_database is off
  • Matchmaking: Allowed use even if enable_database is off
  • Multicast: Allowed use even if enable_database is off
  • Document: Removed enable_database explanation from distribution, matchmaking, and multicast documentation
  • Updated shutdown handling
Distribution
  • Updated RPC performance
  • Reduced RPC connections between servers to 1
  • Changed Rpc::Call() function returned value from Xid to void. (Solved problem of distributed exception handling with reply handler and return value)
  • Added status feature automatically shared between servers
  • Fixed handling as FATAL LOG rather than retry when some Zookeeper operations fail
  • Allowed setting Zookeeper session timeout in MANIFEST
Database
  • Fixed failure when spaces in Redis key or value
  • Redis::Command(), Redis::CommandAsync() functions are deprecated.
  • Removal was planned for August, 2016, and they must be replaced with newly added Redis::ExecuteCommand() and Redis::ExecuteCommandAsync() functions.
Network
  • Changed default session timeout value from 1 hour to 5 minutes
Service
  • Document: Added CrossServerStorage component
misc.
  • Document: Added explanation of newly added options in billing agent
  • Document: Fixed typos in MO game creation guide
  • Document: Fixed matchmaking guide documentation

v1.0.0-1607 (2016-06-20)

2016-06-20 17:40:32

Object
  • Fixed omitted object lock test in some situations
  • Fixed object lock table
  • Fixed object lock table
  • Fixed Object:Array PushBack
Network
  • Added feature so all transport automatically closes when a session is closed
misc.
  • Document: Object: Added explanation of export_db_schema option
  • Document: Fixed typos in Leaderboard:DeleteScoreSync() function example
  • Added MariaDB Connector explanation

v1.0.0-1595 (2016-06-13)

2016-06-13 18:22:17

Object
  • Fixed object ReadLock latency bug and improved readability
  • Added feature to select object ID
Distribution
  • Removed unnecessary Zookeeper requests

v1.0.0-1582 (2016-06-02)

2016-06-02 21:56:55

Service
  • Leaderboard: When ranking reset date is passed, the next day is now shown Updated so that when the ranking reset date passes, the L``eaderboardResetSchedule`` structure member upcoming_date_time, next_date_time, and latest_date_time values show the next reset date.
Object
  • Removed unnecessary assert if there is a duplicate key when objects are fetched with multiple keys
  • Allowed setting DB character set in MANIFEST
  • Allowed setting number of key shard connections separately from object shards
Framework
  • Added feature to output license data When the server is running and the --license flag is set, license data is output in the following format. License info: {"production":true,"expires":"2017-Dec-31 23:59:59"}
Account
  • Leaderboard: Added API to check for ranking reset
  • You must update the leaderboard agent to use the API.
Network
  • Output message type as log when invalid message received
  • Added unescape handling for HTTP request URI
Management
  • ApiService: Supported asynchronous handling
Leaderboard
  • Leaderboard: Fixed API bug checking for reset
misc.
  • Document: Added plugin ping explanation

v1.0.0-1568 (2016-05-23)

2016-05-23 08:17:32

Object
  • Fixed excessive holding of fetched objects in cache during timed out events
Management
  • Added feature to set ApiService log level
misc.
  • Document: Added RuntimeConfiguration documentation
  • Document: Added plugin debug log explanation
  • Fixed omitted funapi_core_analyze bash script distribution
  • Added explanation of event timeout handler
  • Added explanation of DB settings

v1.0.0-1558 (2016-05-13)

2016-05-13 16:01:46

Warning

Breaking Changes

You need the latest version of the plugin for multicast updates. A new error code, (ErrorCode) EC_CLOSED, has been added, and handling of channel reentry must be added when this error code is received. You need to use the new version of the plugin for this.

Service
  • MulticastServer can return the number of channels and users.
  • Service: Multicast: Updated channel join/leave handling
  • Added feature to retrieve client resource list from CDN
Network
  • Added urgent message transmission feature
  • Fixed name assignment in threads created by the engine
  • Improved handling when receiving invalid JSON messages through HTTP
Framework
  • Added manifest encryption feature
Time
  • Fixed timer asserts when handling server shutdown
misc.
  • Document: Updated plugin documentation
  • Document: Updated server test documentation
  • Document: Added plugin log explanation
  • Supported MANIFEST override when executed with local launcher

v1.0.0-1550 (2016-05-02)

2016-05-02 10:31:27

Network
  • Allowed ping sampling interval and timeout changes in runtime for each session
  • Fixed bug in which some requests failed when HttpClient created in large quantities
Object
  • Changed array type getter method to const
Service
  • Authenticator: Reflected changed NexonToy protocol
misc.
  • Changed minidumps to core dumps and added script executing GDB
  • Fixed incorrect log path setting when executing a flavor as a service

v1.0.0-1542 (2016-04-11)

2016-04-11 18:01:03

Management
  • AppInfo: Added compatible client version Set/Get function
  • RuntimeConfiguration: Added AppInfo compatible client version You can get compatible client versions when requested with HTTP GET as follows.
  • You can modify compatible client versions by requesting with HTTP POST. Enter the version as a JSON array type in the HTTP body. (You can also enter empty JSON arrays.)
  • RuntimeConfiguration: Added AppInfo client_current_version
Network
  • Added feature to connect to peer clients to test servers
Service
  • Authentication: Added Nexon Toy
Database
  • Redis: Fixed infrequent handling delays
Time
  • Added WallClock::FromSec, MonotonicClock::FromSec
Distribution
  • Updated to shut down server when connection to Zookeeper server fails while server is running
misc.
  • Document: Updated explanation of events in reference documentation
  • Document: Added explanation of packet replay attack blocking

v1.0.0-1530 (2016-04-04)

2016-04-04 11:23:03

Network
  • Added feature to get mutex to synchronize when session context accessed from multi-thread
  • Removed unnecessary assert when making a new connection at the same time as a TCP connection closes
  • TcpTransportDetachedHandler is now executed with session ID as an event tag
  • Fixed very infrequent crash bug when server starts
  • Added sequence number validation feature to test sequence numbers of TCP and HTTP messages without using session reliability in order to block duplicate messages
  • Added feature to automatically disconnect when ping unanswered within a set time
Distribution
  • Added warning feature when RPC reply not sent within 5 seconds
Management
  • Added feature to set number of event tags to handle ApiService
System
  • Updated so common event tag(timer, api service handler) are not automatically inherited
misc.
  • Document: Fixed mistakes in explanation of commands to start biller as a service
  • Turned on all compile time warnings when a project is created
  • Reflected latest update in component model explanation

v1.0.0-1514 (2016-03-17)

2016-03-17 20:14:27

Service
  • Fixed some callbacks not being invoked on disconnection from matchmaking server
  • Multicast: Fixed failure to run when rpc_enabled: false
  • Multicast: Fixed incorrect emphasis location in MANIFEST.json explanation
  • Multicast: Fixed crashes on disconnection with server
Management
  • RuntimeConfiguration: Updated so server starts even when flags that can’t be set are input
Network
  • Fixed disconnection bug when Session::GetRemoteEndPoint() invoked
misc.
  • Updated Visual Studio documentation
  • Added English version of tutorial
  • Fixed some Korean reference documents