[wpdreams_ajaxsearchlite]

服务器如何工作


服务器进程

服务器启动脚本world.sh为每个服务器进程调用启动脚本,最初加载atavism.server.marshalling.Trampoline类,该类反过来加载读取一组Python脚本的“启动类”(在world.sh中定义)文件)。对于消息域服务器,启动类为atavism.msgsys.DomainServer。对于所有其他服务器,启动类是<class> atavism.server.engine.Engine </ class>。


除Message服务器外,每个服务器进程都运行一个或多个服务器插件。服务器插件是一个扩展atavism.server.engine.EnginePlugin的类。服务器可分为核心基础架构服务器和AGIS插件服务器,核心基础架构服务器为世界提供基础,AGIS插件服务器提供可扩展,修改甚至替换的游戏性和其他功能。


脚本和消息传递配置文件

当它们启动时,服务器进程读取config目录中的脚本,包括atavism_server / config / common目录中的脚本,以及atavism_server / config / world目录(或特定世界的等效目录)。如果服务器进程尝试读取不存在的脚本,它将记录警告并继续。


消息配置

所有服务器进程都读取以下Python脚本以配置消息传递:

  • atavism_server / config / common / aomessages.py定义了Atavism消息目录(核心服务器消息)。
  • atavism_server / config / world / worldmessages.py,为世界定义其他自定义消息。
  • atavism_server / config / world / worldmarshallers.txt注册要传递(或作为)消息的特定于世界的类。

 

此外,每个服务器进程都会在atavism / config / common / process-name-ads.txt中“公布”它发布的消息。 Atavism在atavism_server / config / common / aomarshallers.txt中定义了一组编组对象。


记录

服务器在atavism_server / logs /目录中生成日志,auth服务器日志显示在auth文件夹中,world登录world文件夹。每个进程都打印出自己的日志,其中包含一个附加日志,该日志将来自不同进程的所有错误汇总在一起。


auth.properties和world.properties文件包含日志的一些设置,例如日志文件的日期,如果它们在达到每个文件的KB值时应该旋转,等等。


域名服务器

Message Domain Server提供了一个消息注册表,使所有其他服务器能够相互通信。它不是服务器插件,而是它自己的特殊进程。


基础结构服务器插件


Atavism基础结构服务器提供其他插件服务器使用的基本服务。他们包括:


登录管理器

处理角色创建和选择。


世界管理

控制世界的地理位置以及PC和怪物能够看到的东西。


代理服务器

处理与Atavism / Unity客户端的所有通信,并将消息发送到其他服务器。

场景服务器

加载和管理世界场景。


AGIS服务器插件

AGIS插件服务器是:


战斗服务器


控制玩家和怪物之间的战斗以及相关功能。运行Combat,Grouping和ClassAbility插件。


物件管理器

 

创建和管理对象和对象持久性。运行Inventory插件。


怪物服务器

控制怪物和任务。