iFun Engine Changelog (experimental)

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: RESTful API를 EC2 public IP 주소로 여는 경우 처리

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 으로 쓸 때 빌드 오류 수정

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

2017-05-24 16:57:18

Warning

Breaking Changes

  • 다음의 변화로 인해 서버 빌드 및 플러그인 업데이트가 필요합니다.

    • Protobuf 의 Message Type 을 String 대신 Integer 를 쓸 수 있는 기능 추가

    이 기능을 사용하려면 다음 버전 이상의 플러그인으로 업데이트 해야 합니다. (Experimental 버전 기준)

    • Unity3D: 210
    • Unreal4: 61
    • Cocos2d-x: 61
Network
  • TCP, UDP 에서 Session ID 를 첫 메시지일 때만 전송하고 그 이후에는 생략하여 네트워크 트래픽을 줄이는 기능 추가
  • Protobuf 의 Message Type 을 String 대신 Integer 를 쓸 수 있는 기능 추가

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

2017-05-23 17:10:13

misc.
  • C# - ORM Object 에 Bool 타입이 있을 때 빌드 오류 수정

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

2017-05-19 19:56:02

Warning

Breaking Changes

  • 다음의 변화로 인해 코드 수정 또는 서버를 다시 빌드 해야합니다.

    • Deploy API: 버그 수정 및 바뀐 인터페이스 대응

    DeployApiService 의 일부 인터페이스가 수정되어 서버를 다시 빌드해야합니다. SearchUsers, GetInventory 함수의 경우 구현을 수정하셔야 합니다.

    • 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
  • ORM Object 의 Delete() 를 두 번 이상 호출할 때 걸리는 ASSERT 제거
  • C# - Map 의 Key 에 String Type 이 있을 때 빌드가 안되는 문제 수정
Distribution
  • 주키퍼 성능 카운터 주소를 zookeeper_stat 에서 distribution_profiling 으로 변경

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

2017-04-17 16:55:31

Object
  • C# - Object 를 JSON 으로 초기화 하는 기능 지원
  • 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 가 모델에 정의된 길이를 초과하면 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
  • Matchmaking 서버를 선택할 수 있도록 개선

    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.

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: 메시지 전송 후킹 문서화
  • 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
  • Object 를 JSON 으로 초기화할 때 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# 으로 개발하기 위해서는 다음과 같은 명령을 입력하여 프로젝트를 다시 만들어야 합니다.

    $ funapi_initiator {ProjectName} --mono
    
Framework
  • Json::From*(...) 에서 파싱 실패 시 콜백을 받을 수 있도록 개선

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

2017-01-17 12:40:49

System
  • Assert failed: execution_time_ == 0: 로 서버 크래시하는 문제 수정

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

2016-12-15 11:55:46

Warning

Breaking changes

  • 클라이언트 플러그인 갱신이 필요한 부분은 다음과 같습니다.

    • Protobuf 의 세션아이디를 바이트로 보낼 수 있도록 기능 추가

      반드시 아래 버전 이상으로 클라이언트 플러그인을 업데이트하고 Protobuf DLL 을 다시 빌드해야 합니다.

      • Unity3D: 190
      • Unreal4: 35
      • Cocos2d-x: 35
Object
  • object_db_migrator.py 툴이 일부 DB 데이터를 잘못 처리할 수 있는 버그 수정
Network
  • Protobuf 의 세션아이디를 바이트로 보낼 수 있도록 기능 추가

    send_session_id_as_string 옵션 설명을 참고하세요.

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 카운터 하위로 변경되었습니다.
  • 오브젝트 마이그레이션툴에서 값이 설정되지 않은 필드의 처리가 잘못되는 버그 수정

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

2016-12-08 02:36:51

Object
  • 오브젝트 마이그레이션툴에서 추출 완료된 파일을 덮어쓸 수 있는 문제 수정

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 될 때 일부 자원이 해제되지 않을 수 있는 문제 수정
  • 서버 여러개가 동시에 스키마 설치시 크래시할 수 있는 버그 수정
  • 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 프로시저가 변경되었을 때만 재생성하도록 수정

    본 수정으로 인해 테이블이 추가되었으며 관련 DDL 쿼리를 실행할 수 있습니다. 만약 DB 권한이 충분하지 않은 경우 서버가 크래시할 수 있습니다.

  • col__tag 컬럼 길이를 36 으로 고정

    본 수정으로 인해 col__tag 컬럼 길이를 36 으로 변경하는 DDL 쿼리를 실행할 수 있습니다. 만약 DB 권한이 충분하지 않은 경우 서버가 크래시할 수 있습니다.

  • “Assert failed: ObjectCache::Delete(...)” 로 크래시할 수 있는 문제 수정

    적용을 위해서 반드시 게임 서버를 다시 빌드해야 합니다.

  • 오브젝트 관련 TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 설정 옵션 추가

    use_db_stored_procedure: true 일 때 이 옵션값을 수정하면 프로시저를 재생성하는 DDL 이 실행될 수 있습니다. 만약 DB 권한이 충분하지 않은 경우 서버가 크래시할 수 있습니다.

  • Session::GetLastReceiveTime(msgtype), SendMessage() 시 불리는 hook 추가.

    게임 서버를 다시 빌드해야 합니다.

Object
  • “Assert failed: IsValid()” 로 크래시할 수 있는 문제 수정
  • string 컬럼 길이가 늘어난 경우 자동으로 수정되도록 기능 추가
  • 오브젝트 관련 DB 테이블 스키마 검증 기능 추가
  • 오브젝트 관련 DB 프로시저 스키마 검증 기능 추가
  • 오브젝트 DB 프로시저가 변경되었을 때만 재생성하도록 수정
  • col__tag 컬럼 길이를 36 으로 고정
  • “Assert failed: ObjectCache::Delete(...)” 로 크래시할 수 있는 문제 수정
  • 오브젝트 관련 TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 설정 옵션 추가
  • 스키마 설치후 테이블 검증이 실패할 수 있는 문제 수정
  • 오브젝트 DB 스키마 추출시 서버가 정상 종료되지 않던 문제 수정
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 에서 잘못된 빌드 옵션으로 분산 처리 기능이 작동하지 않을 수 있는 문제 수정
misc.
  • 문서 검색 기능 강화
  • Biller changelog 추가
  • Authenticator changelog 추가
  • Leaderboard changelog 추가
  • 코어덤프 디버깅 방법 문서화

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

2016-10-28 16:35:29

Object
  • export_db_schema 옵션 사용 시 일부 프로시저가 drop 되는 버그 수정
  • Insert, Update 프로시저에 변경된 스키마가 반영되지 못할 수 있는 버그 수정

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 스키마 업데이트를 시도할 수 있습니다. DB 권한이 제한적인 경우 DB 스키마 업데이트가 실패하며 서버가 크래시할 수 있습니다. 이 경우 필요한 DB 권한 에서 설명하는 export_db_schema 옵션을 사용하여 관리자 DB 계정으로 DB 스키마를 업데이트할 수 있습니다.

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 로 서버가 종료될 수 있는 문제 수정
  • null object id 를 kReadCopyNoLock 으로 fetch 할 때 버그 수정
Framework
  • MANIFEST 에 주석이 있을 때 “make check_features” 가 작동하지 않는 버그 수정
  • MANIFEST 에 주석이 있을 때 일부 IDE 개발환경에서 서버가 구동되지 않는 버그 수정
misc.
  • 외부 라이브러리 사용하는 방법 문서화
  • Document: 플러그인 FunapiSession 설명 추가
  • 주석을 포함한 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 빌드 설정 설명 수정
  • Document: 리더보드 문서에서 링크 깨진 것 수정
  • 클라이언트 이동 관련 문서 추가

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

2016-08-19 10:41:22

Distribution
  • 오브젝트 관련 처리시 크래시할 수도 있는 버그 수정
misc.
  • 패키지 버전 고정하는 법 문서화

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

2016-08-18 18:01:36

Object
  • Object 반납 관련 처리에서 ASSERT 에 걸릴 수 있는 문제 수정
  • event timeout 처리 관련 버그 수정
  • 깨진 Object 를 Fetch 할 때 누락된 주키퍼 소유권 해제 처리 추가
Framework
  • 서버 실행중 크래시될 때 종료처리가 지연되는 문제 수정
Distribution
  • 분산 처리 관련 버그 수정
Service
  • 클라이언트의 서버간 이동을 위한 메시지 추가

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

2016-08-12 17:04:52

Framework
  • 특정 상황에서 크래시 후 종료가 안되는 버그 수정
misc.
  • Document: Redis: ExecuteCommand() 함수 추가
  • Document: Redis: ZCount, ZRem 추가
  • Document: Redis: Discard, Exec, Multi 추가

v1.0.0-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) 를 키로 사용할 수 없게 되었으며 다시 빌드해야 합니다. (해당 제약 사항은 이후 릴리즈에서는 제거되었습니다.)

Object
  • ORM attribute 별로 String 길이 따로 줄 수 있게 수정
misc.
  • 업데이트 채널(패키지 저장소) 선택하는 방법 문서화
  • 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 성능 개선

  • 데이터베이스 별 쿼리 처리 시간 통계 추가

  • 테이블 DDL 이 존재하지 않을 때 export_db_schema 시 크래시하는 버그 수정

Network
  • 세션이 열려 있는지 확인 가능한 IsOpened() 함수 추가 및 문서 추가
  • CloseTransport() 직전에 SendMessage() 로 보낸 메시지가 전송되지 않을 수 있는 버그 수정
Database
  • Redis: 연결이 끊겼을 때 대기하지 않고 연결끊김 처리되도록 수정
  • Redis: 서버 Install 단계에서 명령 사용시 레디스 연결 끊김 처리되는 문제 수정
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: 빌링 에이전트에 새로 추가된 옵션 설명 추가
  • 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`` 구조체 멤버인 upcoming_date_time, next_date_time, latest_date_time 의 값이 다음 리셋 날짜가 나오도록 수정되었습니다.
Object
  • 복수의 key 들로 object 를 fetch 할 때 중복된 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 추가
  • API 를 사용하려면 리더보드 에이전트 업데이트가 반드시 필요합니다.
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
  • ping sampling interval, timeout 을 session 별로 runtime 에 변경 가능하게 개선
  • HttpClient 를 대량으로 만들었을 때 일부 요청이 실패하는 버그 수정
Object
  • array type getter method 를 const 로 변경
Service
  • Authenticator: NexonToy 변경된 프로토콜 반영
misc.
  • 미니덤프를 코어덤프로 변환하고 GDB 실행하는 스크립트 추가
  • flavor 를 service 로 실행할 때 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 을 얻을 수 있습니다.

    GET http://ip:api_service_port/v1/configurations/compatible_client_versions
    
  • HTTP POST 로 요청해서 compatible client versions 를 수정할 수 있습니다. HTTP body 에 JSON array type 으로 버전을 입력합니다. (비어있는 JSON array 도 입력 가능합니다.)

    POST http://ip:api_service_port/v1/configurations/compatible_client_versions
    
  • 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
  • session context 를 multi-thread 에서 접근할 때 동기화를 위한 mutex 를 얻는 기능 추가
  • TCP 연결이 끊김과 동시에 새 연결이 맺어질 때 발생되는 불필요한 Assert 제거
  • TcpTransportDetachedHandler 가 session id 를 event tag 로 하여 실행되도록 수정
  • 서버가 구동될 때 매우 낮은 확률로 크래시할 수 있는 버그 수정
  • session reliability 를 사용하지 않고 TCP, HTTP 메시지의 sequence number 를 검사하여 중복 메시지를 막는 sequence number validation 기능 추가
  • 지정된 시간 내에 ping 응답을 하지 않는 연결을 자동으로 끊는 기능 추가
Distribution
  • RPC reply 를 5 초 이내에 보내지 않으면 경고하는 기능 추가
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 문서 추가
  • 한글 레퍼런스 문서 일부 수정