8. 配置文件(MANIFEST.json)详情¶
可在MANIFEST.json的 dependency
项中添加的iFun引擎功能及可设置的参数如下。
Tip
功能列表按照字母顺序排列,上面已列出常用的设置参数。
Tip
以下功能已在/usr/share/funapi/manifests/*/MANIFEST.json中定义。
8.1. 性能优化¶
8.1.1. EventDispatcher¶
在iFun引擎中负责event的处理。
event_threads_size: 主事件线程个数。(type=uint64, default=4)
enable_event_profiler: 事件性能分析器是否已被激活(type=bool, default=true)
enable_outstanding_event_profiler: 是否对当前正在执行的事件进行性能分析(type=bool, default=true)
几乎不需要直接更改设置的参数
slow_event_log_threshold_in_ms: 是否通过日志保存缓慢的事件(type=uint64, default=300)
event_timeout_in_ms: 在事件超时前所花费的时间,单位为毫秒 (type=uint64, default=30000)
enable_inheriting_event_tag: 若在调用
Event::Invoke()
时不指定event tag,是否继承已调用的event的event tag(type=bool, default=true)enable_random_event_tag: 当
enable_inherit_event_tag
也未被激活时,是否在调用不含任何event tag的Event::Invoke()
时随机创建并赋予event tag。若为false,则赋予null event tag(type=bool, default=true)enable_event_thread_checker: 若为true,则会对event thread处理时是否发生blocking进行验证,且每秒验证1次(type=bool, default=true)
8.1.2. IoService¶
负责网络I/O处理。相当于内部boost::asio的io_service。
几乎不需要直接更改设置的参数
internal_threads_size: 负责处理客户端-服务端数据包的线程个数。(type=uint64, default=4)
8.1.3. Object¶
负责对游戏object进行管理的ORM。它会自动处理成可以不直接实现用于处理游戏object的lock、database等复杂代码。具体内容请参考 ORM Part 1: 概要 。
enable_database: 激活与实际数据库的联动。(type=bool, default=false)
db_mysql_server_address: ORM 이 사용할 DB 주소. (type=string, default=”tcp://127.0.0.1:3306”)
db_mysql_id: ORM 이 사용할 MySQL user id (type=string, default=””)
db_mysql_pw: ORM 이 사용할 MySQL password (type=string, default=””)
db_mysql_database: ORM 이 사용할 MySQL database 이름 (type=string, default=””)
cache_expiration_in_ms: 从DB中读取的缓存对象到终止缓存之前所需的毫秒时间(type=int64, default=300000)
copy_cache_expiration_in_ms: 从远程服务器中复制对象时,该缓存对象到终止缓存之前所需的毫秒时间(type=int64, default=700)
enable_delayed_db_update: 是否不立即更新DB,仅在延迟时进行批处理(type=bool, default=false)
db_update_delay_in_second: 当不立即更新DB而是批处理时操作延迟的时间,单位为秒(type=int64, default=10)
db_read_connection_count: 为进行读取操作而连接DB的次数(type=int64, default=8)
db_write_connection_count: 为进行写入操作而连接DB的次数(type=int64, default=16)
db_key_shard_read_connection_count: object_subsystem_sharding 사용시 key database 에 읽기 작업을 위한 DB 연결 개수 (type=int64, default=8)
db_key_shard_write_connection_count: object_subsystem_sharding 사용시 key database 에 쓰기 작업을 위한 DB 연결 개수 (type=int64, default=16)
db_character_set: DB的character set (type=string, default=”utf8”)
export_db_schema: 当为true时,输出创建DB schema的脚本后结束(type=bool, default=false)
几乎不需要直接更改设置的参数
db_string_length: 字符串属性时,为与其对应的SQL VARCHAR长度 (type=int32, default=4096)
db_key_string_length: Key的字符串属性时,为与其对应的SQL CHAR长度(type=int32, default=12)
use_db_stored_procedure: 是否使用stored procedure代替RAW SQL语句(type=bool, default=true)
use_db_stored_procedure_full_name: 축약된 이름 대신 긴 이름의 stored procedure 를 사용할지 여부 (type=bool, default=true)
use_db_char_type_for_object_id: 为了显示Object ID,在 SQL DB中使用CHAR(32)来代替BINARY(16)(type=bool, default=false)
enable_assert_no_rollback: 在代码中激活
AssertNoRollback()
检验. 请参考 觉察不愿意的回滚 . (type=bool, default=true)use_db_select_transaction_isolation_level_read_uncommitted: Select 쿼리를 실행할 때
TRANSACTION ISOLATION LEVEL
을READ UNCOMMITTED
로 설정. false 일 경우에는 mysql 의 기본값이 사용됨. (type=bool, default=true)
8.1.4. SessionService¶
控制iFun引擎的联网。Networking有关内容请参考 联网Part 1: 会话 。
端口相关设置
tcp_json_port: 收发JSON数据包的服务器TCP端口编号。如为0,则未激活。(type=uint64, default=8012)
udp_json_port: 收发JSON数据包的服务器UDP端口编号。如为0,则未激活。(type=uint64, default=0)
http_json_port: 收发JSON数据包的服务器HTTP端口编号。如为0,则未激活。(type=uint64, default=8018)
tcp_protobuf_port: 收发Protobuf数据包的服务器TCP端口编号。如为0,则未激活。(type=uint64, default=0)
udp_protobuf_port: 收发Protobuf数据包的服务器UDP端口编号。如为0,则未激活。(type=uint64, default=0)
http_protobuf_port: 收发Protobuf数据包的服务器HTTP端口编号。如为0,则未激活。(type=uint64, default=0)
会话管理相关设置
session_timeout_in_second: 为销毁会话而待机的有效时间,单位为秒。(type=uint64, default=300)
use_session_reliability: 打开会话级别的reliability功能。它保证了再次连接会话时也不会发生封包遗失。具体内容请参考 会话消息传输的稳定性 。(type=bool, default=false)
use_sequence_number_validation: 若消息的序列号错误,则无法处理消息。这是为了防止消息replay attack 。仅在TCP和HTTP中运行。具体内容请参考 屏蔽消息重放攻击 。(type=bool, default=false)
加密相关设置
与加密有关的具体内容,请参考 消息加密 。
use_encryption: 打开及关闭加密功能。(type=bool, default=false)
tcp_encryptions: 加密功能已打开时,用于TCP协议中的加密方式列表。
可设置为空值不进行加密, 也可在
ife1
,ife2
,chacha20
,aes128
中选择一个或全选使用。例)[]
或["ife1", "ife2"]
,["chacha20"]
udp_encryptions: 加密功能已打开时,用于UDP协议中的加密方式列表。
可设置为空值,不进行加密,或使用
ife2
。例) [“ife2”]http_encryptions: 加密功能已打开时,用于HTTP协议中的加密方式列表。
可设置为空值,不进行加密,或使用
ife2
。例) [“ife2”]encryption_ecdh_key: 加密功能已打开时,为了与AESChaCha20更换会话密钥而使用的服务器端密钥。
**TCP相关设置*
disable_tcp_nagle: 使用TCP会话时,通过设置
TCP_NODELAY
套接口选项来关闭 Nagle 算法。(type=bool, default=true)
调试及监控相关设置
enable_http_message_list: 若打开该选项,当使用HTTP
GET /v1/messages
时,可查看已通过RegisterHandler()
函数上传的message type 。具体内容请参考 (高级)iFun引擎的网络堆栈 中与HTTP有关的内容。虽然在开发上较为便利,但由于安全原因,建议在live阶段设置为false。(type=bool, default=true)session_message_logging_level: 会话消息日志级别。0为不保存日志。1为仅保存数据包类型及长度信息。2为数据包的内容也一同保存。(type=uint64, default=0)
Tip
若设置为2,将便于在开发过程中查看传输的消息。但是,会对服务器造成负荷,因此商用服务中不建议使用。
enable_per_message_metering_in_counter: 通过 Counter 将客户端和服务器之间的通信量信息提供给HTTP RESTful。具体内容请参考 Counter 。虽然利于开发,但会对服务器造成相当大的超负荷,因此建议设置为flase。(type=bool, default=false)
json_protocol_schema_dir: 通过数据包的形式使用JSON时,包含对JSON数据包的有效性进行验证的模式文件(schema file)的目录路径。具体内容请参考 自动验证JSON消息模式 。(type=string, default=””)
ping_sampling_interval_in_second: 以秒为单位指定用于进行RTT计算的ping采样间隔。0为关闭运行。请参考 会话Ping(RTT) 。(type=uint64, default=0)
ping_message_size_in_byte: 传输的ping消息大小。请参考 会话Ping(RTT) 。(type=uint64, default=32)
ping_timeout_in_second: 若在指定的时间内未返回Ping响应,则结束连接。0为中断运行。请参考 会话Ping(RTT) 。(type=uint64, default=0)
几乎不需要直接更改设置的参数
close_transport_when_session_close: 关闭会话时,附属的Transport(连接)也一同结束。(type=bool, default=true)
send_session_id_as_string: 决定在客户端和服务器的通信中发送会话ID时是通过binary发送还是通过字符串发送。(type=bool, default=true)
Important
为了使用该功能,客户端插件版本须大于以下版本。
Unity3D: 190
Unreal4: 35
Cocos2d-x: 35
send_session_id_only_once: 클라이언트-서버 TCP, UDP 통신 중에 세션 ID 를 첫 메시지에서만 보내고 그 이후 메시지에는 생략하여 네트워크 트래픽을 줄일지 결정. (type=bool, default=false)
network_io_threads_size: 클라이언트-서버 패킷 처리를 담당할 쓰레드 개수. (type=uint64, default=4)
8.2. 服务器管理功能¶
8.2.1. ApiService¶
相当于管理专用RESTful API服务器。为了安全管理服务器,iFun引擎在与客户端使用的HTTP端口分离的单独端口上支持管理专用API服务。
api_service_port: 用于运行管理专用RESTful API服务的本地TCP端口编号。(type=uint64, default=8015)
api_service_logging_level: 管理专用RESTful API消息的日志级别。0为不保存日志。1为仅在出错时保存。2为对所有请求保存日志(type=uint64, default=2)
几乎不需要直接更改设置的参数
api_service_event_tags_size: 同时运行管理专用RESTful API服务的个数(type=uint64, default=1)
8.2.2. CounterService¶
通过HTTP RESTful API显示Server内部的各种状态信息。具体内容请参考 Counter 。
counter_flush_interval_in_sec: 定期更新外部显示的counter值时的时间间隔,单位为秒(type=uint64, default=0)
几乎不需要直接更改设置的参数
counter_monitoring_interval_in_sec: 对除了向外部发送的值以外的所有值进行监控的时间间隔,单位为秒(type=uint64, default=30)
warning_threshold_event_queue_length: 监控计数器时,若事件队列比该值长,将显示警告框(type=uint64, default=3000)
warning_threshold_outstanding_fetch_query: 监控计数器时,若DB读取队列比该值长,将显示警告框(type=uint64, default=3000)
warning_threshold_outstanding_update_query: 监控计数器时,若DB写入队列比该值长,将显示警告框(type=uint64, default=3000)
warning_threshold_slow_query_in_sec: 카운터 모니터링 시 DB 읽기 또는 쓰기에 소요되는 시간(단위: 초)이 기준 값보다 길어질 때 경고 메세지를 출력함(type=uint64, default=1)
warning_threshold_slow_distribution_in_sec: 카운터 모니터링 시 분산 처리에 사용되는 Zookeeper/Redis 처리 시간(단위: 초)이 기준 값보다 길어질 때 경고 메세지를 출력함(type=uint64, default=3)
8.2.3. HardwareInfo¶
该功能在游戏服务器代码中读取硬件信息时起到帮助作用。
external_ip_resolvers: 列出用于获取公网IP的方法。须用逗号分开,先叙述的具有高优先级别。若当前方法失败,将尝试下一方法。
对于NAT的设置,须手动设置公网IP,并可以叙述游戏中使用的各个协议的端口编号。可以叙述的协议类型有
tcp+pbuf
,tcp+json
,udp+pbuf
,udp+json
,http+pbuf
,http+json
。具体内容请参考 获取服务器的IP地址 。(type=string, default=”aws,nic:eth0,nat:192.0.2.113:tcp+pbuf=8012:http+json=8018”)discover_public_ip_from_aws_instance: 如果游戏服务器在亚马逊网络服务(AWS)上运行,则该旗标(flag)将通过获取AWS的 http://169.254.169.254/latest/meta-data/public-ipv4 来获取自身的公网IP地址。(type=bool, default=false)
8.2.4. Logging¶
对Logging功能进行控制。Logging的具体内容请参考 游戏运营Part 3: 玩家行为日志 。
activity_log_output: 活动日志保存路径。可为以下值。
mongodb://user:passwd@host:port
json://path/to/file
file://path/to/file
syslog://name
stdout
glog
对于json或file、glog,将通过–-log_root_dir下面的相对路径创建。
Syslog仅在Linux中运行。
对于MongoDB,user、password、port信息属于可选信息,为了使用副本集,可以用逗号区分,并使用多个主机。(例,
mongodb://user:passwd@host1,host2,user:passwd@host3
) (type=string, default=”glog”)activity_log_rotation_interval: 对活动日志进行循环(Rotation)的时间间隔,单位为秒。(type=int32, default=60)
activity_log_write_schema: 是否在活动日志中输出schema信息(type=bool, default=true)
几乎不需要直接更改设置的参数
glog_flush_interval: 用于plush Google logging的时间间隔,单位为秒。(type=int32, default=1)
glog_retention_period_in_days: 구글 로그 파일의 보관 기간. 보관 기간이 지난 glog 파일은 삭제됩니다. (type=int32, default=30)
8.2.5. MaintenanceService¶
它是可以将游戏服务器切换成定期维护模式的功能。
under_maintenance: 是否切换成定期维护模式(type=bool, default=false)
maintenance_data_path: 包含定期维护信息的JSON文件。该文件的内容会传输给客户端。(type=string, default=””)
8.2.6. RuntimeConfiguration¶
它是在服务器运行中也可对MANIFEST.json的部分内容进行动态重写的功能。
enable_runtime_configuration: 是否在Run-time时修改iFun引擎设置(type=bool, default=true)
8.2.7. SystemInfo¶
它是将服务器的内存使用量、CPU使用量等OS信息通过CounterService显示给外界的功能。
systeminfo_refresh_interval_in_sec: 系统更新周期,单位为秒。(type=int32, default=5)
8.3. 服务器端临时储存库¶
8.3.1. CrossServerStorage¶
它是支持跨服共享数据的功能。具体内容请参考 分布式处理Part 2: 跨服共享数据 。
enable_cross_server_storage: 是否激活相应功能。 Redis 기능 설정 파라미터 의
enable_redis
도 true 로 세팅해야됨.(type=bool, default=false)redis_tag_for_cross_server_storage: 作为跨服共享数据的储存库使用的Redis服务器标签值 (Tag 로 Redis Server 구분 참조) (type=string, default=””)
8.3.2. Redis¶
iFun引擎支持与Redis的轻松联动。该功能对与Redis之间的连接进行控制。具体内容请参考 DB 접근 Part 2: Redis 。
enable_redis: 激活Redis功能。(type=bool, default=false)
redis_mode: 要使用的Redis mode。可输入
redis
或sentinel
(type=string, default=”redis”)redis_servers:
redis_mode
가redis
일 때, Redis 서버들의 주소와 인증 비밀 번호를 입력함.示例
"redis_servers": { "": { "address": "127.0.0.1:6379", "auth_pass": "" } }
redis_sentinel_servers:
redis_mode
가sentinel
일 때, Redis senitnel 서버들의 주소와 인증 비밀 번호를 입력함.示例
"redis_sentinel_servers": { "": { "master_name": "mymaster", "addresses": ["127.0.0.1:26379"], "auth_pass": "" } }
几乎不需要直接更改设置的参数
redis_async_threads_size: 处理Redis非同步命令语时使用的线程数字。(type=uint64, default=4)
8.4. 认证与支付¶
8.4.1. AuthenticationClient¶
iFun引擎拥有用于进行认证的单独agent。(请参考 Deprecated - iFun Authenticator 。)该功能用于对与该agent之间的通信进行设置。
use_authenticator: 是否激活与iFun Authenticator agent之间的通信。만일
false
이면 모든 검증 과정을 bypass 하고 성공으로 간주함. (type=bool, default=false)remote_authenticator_ip_address: iFun Authenticator运行的远程主机IP地址。 (type=string, default=”0.0.0.0”)
remote_authenticator_port: iFun Authenticator运行的远程主机的端口编号。 (type=uint64, default=0)
8.4.2. BillingClient¶
与认证一样,iFun引擎也提供单独的billing agent。(请参考 外部服务支持Part 2: 支付验证 。)该功能用于对与该agent之间的通信进行设置。
use_biller: 是否激活与iFun Biller agent的通信。만일
false
이면 모든 검증 과정을 bypass 하고 성공으로 간주함. (type=bool, default=false)remote_biller_ip_address: Fun Biller运行的远程主机的IP地址。 (type=string, default=”0.0.0.0”)
remote_biller_port: Fun Biller运行的远程主机的IP端口编号。 (type=uint64, default=0)
빌링 처리별 추가로 필요한 설정들
googleplay_refresh_token: Google Play刷新令牌。(具体内容参考Google Play开发人员信息)。(type=string, default=””)
googleplay_client_id: Google Play的客户端ID。(具体内容参考Google Play开发人员信息)。(type=string, default=””)
googleplay_client_secret: Google Play的客户端secret。(具体内容参考Google Play开发人员信息)。(type=string, default=””)
8.5. 游戏内的社交功能¶
8.5.1. LeaderboardClient¶
与认证一样,iFun引擎提供单独的leaderboard agent。(请参考 内容支持Part 1: Leaderboard(排行榜) 。)该功能用于对与该agent之间的通信进行设置。
use_leaderboard: 是否激活与iFun Biller agent的通信。 false 로 지정할 경우 모든 랭킹 관련된 요청을 dummy 값으로 응답하는 테스트모드로 작동함. (type=bool, default=false)
leaderboard_agents: 접속하려는 리더보드 에이전트들의 연결 정보를 다음과 같은 format 으로 입력함.
"leaderboard_agents": { // iFun Leaderboard agent를 tag 로 구분해서 각각의 접속 정보를 입력합니다. "<tag>": { // iFun Leaderboard 의 MANIFEST.json 에 기술된 server_tcp_port 를 입력합니다. "address": "127.0.0.1:12820" }, ... }
8.5.2. MatchmakingServer¶
发挥匹配服务器功能。匹配服务器可与游戏服务器单独存在,也可包含在游戏服务器内运行。若该 MatchMakingServer
功能包含在游戏服务器的 MANIFEST.json
中,则游戏服务器本身的运行将包括匹配功能。若创建了带有该功能的单独服务器,则单独运行。具体内容请参考 内容支持Part 2: 匹配 을 참고해주세요.
enable_dynamic_match: 是否合并未完成的匹配,以进行更快的匹配(type=bool, default=true)
enable_match_progress_callback: 进行匹配时,是否接收匹配进度情况提示。若该值为true,则定期调用已向
MatchmakingClient::StartMatchmaking()
中上传的progress_cb
。(type=bool, default=false)
几乎不需要直接更改设置的参数
concurrent_number_of_players_threshold: 指定匹配服务器可同时处理的玩家数量。为分配内存结构,需要进行设置。(type=int64, default=3000)
8.6. 分布式处理与服务器扩展¶
8.6.1. AccountManager¶
负责玩家的登录、退出、跨服移动等功能。该功能在具有多台服务器的分布式环境中也可运行。
redirection_strict_check_server_id: 在client移动到其他服务器中进行连接时,对服务器的ID进行验证。(type=bool, default=true)
redirection_secret: client移动到其他服务器中进行连接时,实施验证的密钥(type=string)
8.6.2. MulticastServer¶
멀티캐스팅과 채팅 기능을 제어합니다.
max_member_count_per_channel: 채널 당 유저 정원을 지정합니다. 0 이면 무제한으로 지정됩니다. 0 이 아닌 경우 2 이상 부터 지정 가능합니다. (type=uint64, default=0)
8.6.3. RpcService¶
控制跨服通信。
rpc_enabled: 激活RPC功能及依赖于RPC的其他功能。(type=bool, default=false)
rpc_threads_size: 负责RPC处理的线程数(type=uint64, default=4)
rpc_port: RPC服务器中使用的TCP端口编号。(type=uint64, default=8015)
rpc_nic_name: RPC通信中使用的网络接口(NIC)。为确保安全,以及减少外部云网络使用量,最好选择连接在内网网卡上。(type=string, default=””)
rpc_use_public_address: RPC 처리를 위해 NIC 주소가 아닌 public IP 를 사용할 것을 강제. 이는 클라우드 환경처럼 NIC 의 IP 가 private IP 이고 public IP 가 별도인 경우 유용함. (type=bool, default=false)
rpc_tags: 保存在相应服务器中的标签。可导入代码内拥有特定标签的服务器列表。
示例: 当如此指定时,仅选取代码内拥有dungeon_server标签的代码,或具有level:1-5标签的服务器。
"rpc_tags": [ "dungeon_server", "level:1-5" ]
rpc_message_logging_level: RPC消息的日志级别。如为0,则不保存日志。如为1,则保留事务ID、相对服务器ID、消息类型、长度。如为2,则在前面的信息中还包括消息体。(type=uint64, default=0)
几乎不需要直接更改设置的参数
rpc_backend_zookeeper: RPC通信时使用Zookeeper (type=bool, default=true)
rpc_disable_tcp_nagle: 使用TCP会话时,通过设置TCP_NODELAY套接口选项来关闭Nagle算法。(type=bool, default=true)
enable_rpc_reply_checker: 若设置为true,当没有RPC响应时,将显示警告框。(type=bool, default=true)
8.6.4. ZookeeperClient¶
iFun引擎在为进行跨服通信而使用Zookeeper时,控制与Zookeeper的连接。
zookeeper_nodes: Zookeeper服务器列表。用逗号分隔的‘IP:Port’形式的列表。(type=string, default=”localhost:2181”)
zookeeper_client_count: 指定每次在Zookeeper中结成几个连接。(type=uint64, default=4)
zookeeper_session_timeout_in_second: Zookeeper会话的超时时间。(type=uint64, default=60)
zookeeper_log_level: Zookeeper库的日志级别。(type=uint64, default=1)
8.7. 客户端支持¶
8.7.1. AppInfo¶
可以管理当前版本或允许的历史版本等,当需要补丁时,可以叙述URL等信息。对于认证和billing,还可指定须要怎样处理。
客户端版本相关设置
client_current_version: 游戏客户端当前版本。(type=string, default=”000”)
client_compatible_versions: 虽非最新但可访问的客户端版本列表。
示例
"client_compatible_versions": ["0.1", "0.2"]
client_update_info: 客户端版本信息。(type=string, default=””)
client_update_uri: 可以获取已更新的客户端的URI。(大部分应用商店) (type=string, default=””)
认证方式的设置
app_auth_service_provider: 指定客户端认证处理方式。AuthenticationService将运行。(type=string, default=””)
app_id: 在处理认证的一端可以识别的应用程序ID。例如,在应用商店中为应用程序ID等。(type=string, default=””)
app_password: 为进行认证处理,除了应用程序ID以外,还有可能须要一同输入相应的密码。该设置用于指定密码。(type=string, default=””)
8.7.2. ClientResourceService¶
它是帮助确认客户端的代码数据是否为最新,以及用于传输补丁URL等功能。具体内容请参考 客户端支持Part 2: 客户端资源 。
use_client_resource_service: 是否激活功能 (type=bool, default=false)
client_resource_service_port: 客户端资源服务捆绑的HTTP端口。(type=uint64, default=0)
client_resource_dir: 下载资源的保存目录路径。(type=string, default=””)
client_resource_url_base: 用于接收客户端资源的Base URL(例如CDN base路径),若已被设置,则客户端资源服务仅向客户端传输文件列表,实际的文件通过redirect的方式从相应的URL获取 。(type=string, default=””)
client_resource_list_url: 包含客户端资源列表的文件URL。若该值已被设置,则忽略
client_resource_dir
。(type=string, default=””)client_resource_max_file_size: 一个客户端资源文件的最大容量。单位为字节。(type=uint64, default=10485760)
几乎不需要直接更改设置的参数
client_resource_service_threads_size: 分配到客户端资源服务中的线程个数。(type=uint64, default=2)
8.8. 实现游戏内容¶
8.8.1. ResourceManager¶
它是帮助向游戏服务器读取策划数据的功能。具体内容请参考 内容支持Part4: 策划数据 。
game_json_data_dir: 包含以JSON形式存在的游戏策划数据的目录路径。(type=string, default=””)
enable_game_data_mysql: 包含游戏策划数据的MySQL服务器连接信息。(type=bool, default=false)
game_data_mysql_server: 包含游戏策划数据的MySQL服务器连接信息。(type=string, default=”localhost:3306”)
game_data_mysql_username: 包含游戏策划数据的MySQL服务器用户名。(type=string, default=”funapi”)
game_data_mysql_password: 包含游戏策划数据的MySQL服务器密码。(type=string, default=”funapi”)
game_data_mysql_database: 包含游戏策划数据的MySQL数据库名称。(type=string, default=”game_data”)
game_data_mysql_character_set: 用于与游戏策划数据DB进行连接的character set。(type=string, default=”utf8”)
game_data_mysql_tables: 相当于游戏策划数据的MySQL数据表名称。通过逗号区分。(type=string)