跳转到内容

架构与角色

Vitium 是一个典型的 Web 2 全栈应用。它通过 HTTP 服务将 TRPG 玩家和游戏管理员,服务器管理员和 Vitium 模组开发者联系在一起。下图简单呈现了它的架构。

Flowchart

Vitium 客户端 是一个 Web 前端应用。它被设计为部署在云上,并可以被任何服务器主动嵌入其前端页面中,通过被允许的跨域资源请求与服务端通信。客户端是用户( TRPG 玩家与游戏管理员)浏览器中的主要交互对象,几乎所有游戏内和游戏外的用户操作都由客户端处理。

客户端不承担或极少承担游戏内玩法的计算任务。它应当只负责显示内置或模组的游戏界面,并根据显示的需要进行无状态的计算。

需要注意的是,客户端不应当被直接访问使用,而是应当由服务端嵌入其返回的页面中。也就是说,用户浏览器的 始终不是客户端,而是服务端。

我们会用伪域名 client.vitium.dev 指代客户端主机。

Vitium 服务端 是一个 Web 后端应用。它提供一个 HTTP 服务,或其升级协议如 WebSocket . 服务端被设计为能够容易地部署到任何现代消费级桌面硬件上,以允许所有人自建游戏服务。

在直接访问时,服务端应当在返回的文档中嵌入指定客户端。

服务端通过网络接收客户端发送的用户操作,并将结果同步给客户端。所有游戏内玩法的实际计算均通过服务端执行。这些计算可以被模组所扩展。

服务端希望具有良好的并发性能,它典型工况下的设计同时在线上限为 255 人,并会尽可能采用优化达成这一目标。

我们会用伪域名 server.vitium.dev 指代服务端主机。

一个 Vitium 模组 是一系列第三方编写和打包的,符合 Vitium 所指定标准的静态资源与可执行脚本的集合。它可以被 Vitium 客户端和服务端所解释,并分别在其上实现添加,修改或删除特定视觉内容,用户交互或游戏机制的作用。一组进行游戏的客户端和服务端应当具有相同的模组。

模组可以托管到互联网上的任意一处。它通过 URL 分发到客户端和服务端,并由 Vitium 在需要时从互联网下载。