Project1

标题: 教大家如何用本地浏览器运行MV游戏 [打印本页]

作者: lisliz    时间: 2020-4-17 13:54
标题: 教大家如何用本地浏览器运行MV游戏
介绍方法之前,首先我想给大家灌输一个概念,方便大家更好的理解接下来的操作方法。MV游戏是网页游戏,没有网页浏览器,是不能够自己运行的。

然后,能看网页的浏览器,我给大家随便列举几个。

Chrome谷歌浏览器,基于chromium内核
NW.js,MV部署电脑版,以及调试时使用的浏览器,这个浏览器是在Chrome浏览器的基础上自己改的。
Edge浏览器,也是微软在chrome浏览器的基础上改的。
FireFox火狐浏览器,这个浏览器完全不同于chrome浏览器,基于gecko内核。


好的,基础知识讲完,首先我要解释下为什么直接双击index.html在浏览器里打开后,游戏无法运行。

因为,浏览器对用户电脑里的隐私数据有很强的保护机制,它不让一个网页随随便便就能访问玩家电脑上的文件,因为那样可能造成隐私泄露。

但MV游戏却着实需要读取本地文件(数据库啊,各种立绘,图块啊),所以这些读取文件的请求直接会被浏览器拒绝,导致游戏无法运行。
所以你将会看到这种错误。


但有些小伙伴们就问了,为啥你调试时使用的NW.js浏览器就能正常玩游戏,且不会触发这种规则?没错今天我就告诉大家如何规避这个规则。

你们多少都在调试中按过F8吧,查看过NW.js的控制台,也就是这个


有没有人想过这个窗口标题里的chrome-extension://xxxxxxxxxxxxxxx/index.html是什么意思呢?
没错,这就是谷歌浏览器的插件模式,官方称作扩展程序,如果将MV游戏包装成谷歌浏览器插件的样子,是不会触发读取文件的限制的。

刚才说过NW.js是基于谷歌浏览器的吧,所以说,NW.js这样做规避了读取文件的限制,chrome这样肯定也行得通,所以我在游戏工程根目录加入了这三个文件,如下




然后,打开chrome浏览器,点击右上角的这里。



在弹出的窗口中点击这个开关,打开开发者模式。


最后点击这个按钮,会在上面的开关打开后自动出现。


在弹出的文件夹选择窗口中,选择你的游戏文件夹,点击确定,搞定!



大家看到了没有,地址栏也是chrome-extension://xxxxxxxxxxxxxxx/index.html这种形式,说明邪教成功!才不用架设服务器什么的呢

看官觉得这篇文章有意思的话,还请支持下本人的RM游戏呀:https://store.steampowered.com/a ... akoris_Rabbit_Doll/
作者: Zeldashu    时间: 2020-4-17 14:08
有意思,但似乎没什么实战意义。
作者: lisliz    时间: 2020-4-17 14:12
本帖最后由 lisliz 于 2020-4-17 14:17 编辑
Zeldashu 发表于 2020-4-17 14:08
有意思,但似乎没什么实战意义。


这样可以用来教玩家如何用自己的浏览器运行你的游戏,然后就不用附带一个专门用来玩游戏的浏览器nw.js了,游戏也不会显得臃肿。(x


对了这方法暂时只能应付chrome系的浏览器,火狐浏览器这样是不行的。火狐浏览器有自己的方法,但比较麻烦,有人想知道可以在这里回复一下,没人想知道我就不打了orz
作者: PLeaseS    时间: 2020-4-17 15:28
这不卡吗
作者: walf_man    时间: 2020-4-17 16:26
厉害,这样也可以呀,那以后岂不是不需要架设服务器了,无论是本地还是阿里云
作者: lisliz    时间: 2020-4-17 17:22
walf_man 发表于 2020-4-17 16:26
厉害,这样也可以呀,那以后岂不是不需要架设服务器了,无论是本地还是阿里云 ...

假设服务器也可以的,但是网站都是有运营成本的啊
作者: guoxiaomi    时间: 2020-4-17 17:27
话说这样是不是就可以了……
  1. python -m http.server
复制代码

作者: walf_man    时间: 2020-4-17 20:45
lisliz 发表于 2020-4-17 17:22
假设服务器也可以的,但是网站都是有运营成本的啊

是的,需要成本,所以能省则省
作者: play337    时间: 2020-4-17 20:55
本帖最后由 play337 于 2020-4-17 20:57 编辑

Google Chrome 目前是最新版本
版本 81.0.4044.113 (正式版本) (64 位元)

錯誤
資訊清單檔案遺失或無法讀取
無法載入資訊清單。

-------------------------------------------
看來是舊版本的CHROME才可以有的...
作者: lisliz    时间: 2020-4-17 22:23
play337 发表于 2020-4-17 20:55
Google Chrome 目前是最新版本
版本 81.0.4044.113 (正式版本) (64 位元)

咦,应该不是新旧版本的问题,我很确定我这个谷歌浏览器是刚刚从官网下载的最新版
作者: tseyik    时间: 2020-4-17 22:29
(1)火狐輸入:about:config
(2)security.fileuri.strict_origin_policy改成false
  (3)重啓火狐
作者: lankst    时间: 2020-4-21 09:43
这样可以支持在网站上在直接运行,比较符合在线展示的功能
作者: LanMegumi    时间: 2020-4-21 17:18
不知是否有Web那样支持热更新/热重载的
插件呢?
(虽然应该没有但是还是想问问看
作者: lankst    时间: 2020-4-21 22:35
本帖最后由 lankst 于 2020-4-21 23:11 编辑

Edge浏览器,直接输入Index.html文件地址,就可以打开游戏了。

选中Index.html文件右键打开方式选择Edge浏览器,也可以直接打开。
这么说Edge浏览器隐私安全等级比较低。


作者: lisliz    时间: 2020-4-22 09:41
lankst 发表于 2020-4-21 22:35
Edge浏览器,直接输入Index.html文件地址,就可以打开游戏了。

选中Index.html文件右键打开方式选择Edge浏 ...

老版的可以,新版的就不行了,要有我这个方法
作者: walf_man    时间: 2020-4-22 15:43
LanMegumi 发表于 2020-4-21 17:18
不知是否有Web那样支持热更新/热重载的
插件呢?
(虽然应该没有但是还是想问问看 ...

热更新?试试雷神游戏厅云游戏,有几个作者用了之后说热更新爽歪歪了,不知道是不是你说的热更新
作者: LanMegumi    时间: 2020-4-22 16:08
walf_man 发表于 2020-4-22 15:43
热更新?试试雷神游戏厅云游戏,有几个作者用了之后说热更新爽歪歪了,不知道是不是你说的热更新 ...


打个比方
比如说 插件已经提前引入了
我只需要保存脚本就能在不关闭游戏的情况下看到改动

但是Rm mv 没有web的生命周期这一概念
所以我觉得应该是不存在我所说的热更新的

毕竟插件的使用是要配合图形化界面做修改
作者: walf_man    时间: 2020-4-23 12:00
LanMegumi 发表于 2020-4-22 16:08
打个比方
比如说 插件已经提前引入了
我只需要保存脚本就能在不关闭游戏的情况下看到改动

明白了,看来不是你说的那种热更新
按照你这个说法的话,雷神游戏厅的云游戏的热更新,更确切应该叫增量更新了
他的机制是,首次需要上传游戏全部文件,更新的话,只需要上传改动的那几个文件即可
玩家玩游戏的时候,每次打开游戏的时候按需加载,即只加载游戏运行必须的那几个文件,同时确保其为最新版本的文件。
如果作者更新了游戏,那么玩家需要退出游戏或者重进游戏才能获取到更新。

你说的这个热更新的机制我理解的是
比如作者更新了商店可以售卖的内容,如在原只卖小红瓶的情况下增加了中红瓶和大红瓶之后,玩家那边在游戏中刚才打开商店里面还只有小红瓶,转眼再打开商店就多了中红瓶和大红瓶,或者更进一步的,打开商店只有小红瓶,一转眼,商店里又冒出来中红瓶和大红瓶。

这种情况,rmmv是不支持的,因为他的游戏加载机制就是每次进入游戏的时候把所有数据都加载上了,每次进入一副地图的时候加载对应的地图数据
所以,若是想做热更新,那恐怕要从底层改起了。
作者: LanMegumi    时间: 2020-4-23 14:09
walf_man 发表于 2020-4-23 12:00
明白了,看来不是你说的那种热更新
按照你这个说法的话,雷神游戏厅的云游戏的热更新,更确切应该叫增量 ...

这项技术在 web 开发挺常见的
不过在游戏除了Unity 的Lua 算是增量更新
其他的暂时还没听说
作者: ccwkgg    时间: 2020-4-23 21:06
LanMegumi 发表于 2020-4-23 14:09
这项技术在 web 开发挺常见的
不过在游戏除了Unity 的Lua 算是增量更新
其他的暂时还没听说 ...

用雷玉的网络插件,写一个云变量的判定
加载在线JS文件就可以实现热更新

现在有云游戏了重进就可以更新了,没必要搞热更新了

作者: mmmmttt    时间: 2021-1-7 16:57
orz,厉害厉害!
作者: qbb95    时间: 2021-5-8 23:10
play337 发表于 2020-4-17 20:55
Google Chrome 目前是最新版本
版本 81.0.4044.113 (正式版本) (64 位元)

你看看是不是把manifest打成了mainfest了,我就是这个问题
作者: 入坑小萌新    时间: 2022-9-26 09:46
大佬,火狐浏览器要怎么搞呀
作者: 小秋橙    时间: 2022-9-26 16:14
入坑小萌新 发表于 2022-9-26 09:46
大佬,火狐浏览器要怎么搞呀

https://gitee.com/ckcz123/mota-js/tree/v2.x
可以在这个网站下载下面的【启动服务.exe】或者【server.py】,前者适用于win8.1或更高版本(win7需要dotNet4.0),后者适用于windows/mac/Linux等所有电脑端(但是需要安装python3)。
作者: lastend    时间: 2023-3-3 16:13
谢谢谢谢谢谢谢谢谢谢谢谢,很有用


作者: chiym    时间: 2023-6-21 00:37
edge浏览器
win +R 打开运行
执行以下命令:
msedge.exe --user-data-dir="C://Chrome dev session" --disable-web-security
会打开一个已禁用网络安全的浏览器然后直接把index.html拖进去就行。
谷歌浏览器同理 msedge.exe改成chrome.exe。

作者: 走出300加    时间: 2023-6-21 07:36
学到了学到了
作者: Cansor    时间: 2023-6-22 12:02
听起来不错,但没啥需求啊。
还不如用VS Code安装Live Server,这样RM插件开发者可以直接用浏览器调试插件。
作者: m64940995    时间: 2024-8-9 13:55
装一个vscode插件就能搞定的事
作者: 王老    时间: 2024-8-10 03:59
哦吼,今天刚在b站刷到你做的喵可莉的兔玩偶,正好现在买了????
作者: libaole    时间: 2024-8-26 09:05
chiym 发表于 2023-6-21 00:37
edge浏览器
win +R 打开运行
执行以下命令:

感谢,这个办法很好用




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1