We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
大多数游戏引擎都会内置一个控制台,方便在游戏运行时呼出,输入一些控制指令,查看引擎的内部状态。
Ant 引擎主要为移动设备设计,考虑到手机这样的设备并不适合控制台交互,所以并没有设计一个这样默认的控制台。当然,如果开发 PC 游戏的话,还是可以使用 imgui 制作一些调试界面的。
引擎给出的方案是:使用 Web 界面。为此,引擎提供了一个简单的 web server ,它支持基本的 http 协议,可以上传文件,浏览静态页面,执行动态程序(类似 CGI)。
web server 运行在一个 ltask 服务中,默认没有开启。
这是我们游戏中 web server 的启动代码:
local web = ltask.uniqueservice "ant.webserver|webserver" ltask.call(web, "start", { mode = "indirect", -- "direct" port = 9000, cgi = { debug = "vaststars.webcgi|debug", upload = "vaststars.webcgi|upload", texture = "vaststars.webcgi|texture", }, route = { vfs = "vfs:/", log = "log:/", app = "app:/", }, home = "vfs:/web", })
mode 可以使用 indirect 和 direct 两种模式。一般在手机上使用 indirect ,所有网络连接都从 VFS 的 fileserver 转发,游戏 App 并不直接监听本地端口。对于 iOS 系统,网络连接会由开发机上的 iTunes 转发。如果使用 direct 模式,则监听本地端口。
vaststars.webcgi 是游戏代码内的一个 Package,它实现了一些供 webserver 调用的脚本,例如:http://webserver/debug 就会调用 "vaststars.webcgi|debug" 中的 get() 函数。
vaststars.webcgi
http://webserver/debug
"vaststars.webcgi|debug"
get()
route 可以将 url 映射到文件系统中的路径上。目前提供三种文件系统:vfs 表示 vfs 系统下的路径,log 是本地的 log 目录,app 是 App 本地的可写目录,通常用于存放游戏存档,网络下载缓存等。此处的 vfs = "vfs:/" 可以让开发者通过 http://webserver/vfs 就能查看所有 vfs 中的文件。
vfs
log
app
vfs = "vfs:/"
http://webserver/vfs
home = "vfs:/web" 将网站的根指向 vfs 下的 /web 目录。
home = "vfs:/web"