Replies: 5 comments 22 replies
-
目前是没有为 windows 设计专门的发布版本的。但可以用 ios 一致的流程,和你说的不太一样。 现在可以把相关的所有文件都打包成 zip ,zip 里是 hash 名的文件。这个 zip 相当于 fileserver 的 cache 的一部分。所以 -rt 启动游戏后,如果发现 zip 包,就会读包里的文件。服务器应该是可选的。 如果按 ios 的发布流程,还可以把新增和改变的文件也打成 zip ,用 http 协议下载,补充到本地 cache 中。通过这种补丁方式下载也用不需要连接 fileserver 。 但是,目前还不支持读非 hash 文件名的外部文件。之后应该会设计一个基于本地文件系统的 mod 让运行模式的 vfs 可以访问。但是,对于需要编译的文件,可能运行模式还不能正确工作。 |
Beta Was this translation helpful? Give feedback.
-
总的来说需要一个新的io服务。之前有个想法是把现在的两个io服务合并,然后可以配置开启哪些特性,然后可以配置出现有的两种io服务,也可以自己配置其他特性组合的io服务 |
Beta Was this translation helpful? Give feedback.
-
改了windows/macos上,zip包的位置。 另一个可能有用的功能,这个路径 |
Beta Was this translation helpful? Give feedback.
-
我试了下, test/vfsmem/main.lua 这个测试目前跑不通 D:\ant\ant>"bin/msvc/release/ant.exe" "test/vfsmem/main.lua"
[2024-05-12 14:40:45.30][INFO ]( root ) startup 1
[2024-05-12 14:40:45.30][INFO ]( io ) startup 2
[2024-05-12 14:40:45.30][INFO ]( ant.engine|timer ) startup 3
[2024-05-12 14:40:45.33][INFO ]( ant.engine|logger ) startup 4
[2024-05-12 14:40:45.33][INFO ]( /main.lua ) startup 5
[2024-05-12 14:40:45.33][INFO ]( /main.lua ) quit.
[2024-05-12 14:40:45.33][ERROR]( root ) Root fatal: attempt to call a nil value (field 'reader_new')
stack traceback:
( service:2 )
D:/ant/ant/pkg/ant.vfs/memory.lua:97: in function <D:/ant/ant/pkg/ant.vfs/memory.lua:88>
(...tail calls...)
( service:5 )
/engine/firmware/ltask_service.lua:222: in upvalue 'rethrow_error'
D:/ant/ant/test/vfsmem/main.lua:16: in local 'func'
[C]: in function 'xpcall'
( service:5 )
/engine/firmware/ltask_service.lua:803: in local 's'
( service:1 )
/engine/firmware/ltask_service.lua:222: in upvalue 'rethrow_error'
engine/firmware/ltask_root.lua:126: in function <engine/firmware/ltask_root.lua:118>
(...tail calls...)
engine/firmware/ltask_root.lua:273: in local 'bootstrap'
engine/firmware/ltask_root.lua:279: in local 'func'
[C]: in function 'xpcall'
( service:1 )
/engine/firmware/ltask_service.lua:803: in local 's' 报在这一行: local c = vfs.read "/testmem/test.txt" |
Beta Was this translation helpful? Give feedback.
-
我还有一个比较纠结的地方。 我写了一个打包的批处理,执行后会将filepack生成的zip和我的exe拷贝到一个指定的发布目录,
一般情况下我们发布的exe就是正式的,用户在得到安装包后,肯定会去点exe启动程序,通过批处理绕一圈实在是不方便。 在不改引擎源码的情况下,我有办法做到不加额外的批处理,直接支持双击exe即可以运行时方式启动游戏吗~ |
Beta Was this translation helpful? Give feedback.
-
我希望打一个标准windows包,即直接将filepack生成的 bundle文件 + exe文件拷贝给其他人,他们就能正常启动运行。
目前我看如果以-rt启动游戏,会强行去连fileserver。
实际上我希望最理想的情况是:exe既支持直接读取bundle文件,也支持读取未打包的lua/资源文件。即优先读取包外文件,包外如果没有就去读bundle文件。
不知道怎么样改才能做到这点。
Beta Was this translation helpful? Give feedback.
All reactions