NAS玩出花(十):云端游戏平台
NAS玩出花(十):云端游戏平台
本篇介绍了使用Docker搭建多个云端游戏平台,主要用于摸鱼。
不要多想,只是一些DOS游戏和模拟器游戏,毕竟真的要是在NAS上玩黑神话,估计也没那么好的性能。
本文包含以下内容:
- dosgame-web-docker:拥有1898款中文DOS游戏的游戏库
- emulatorjs:Web端Retroarch
dosgame-web-docker
很多80后大叔的游戏PC游戏启蒙应该是DOS游戏(到我这就是GBA了), DOS上也有很多非常有名的游戏,比如《仙剑奇侠传》。
现在有这样一个项目,可以让你在web端重温当年的DOS游戏。
部署
给出yml配置文件,路径和端口可以自己选择。
services:
dosgame-web-docker:
container_name: dosgame
ports:
- '8089:262' #8090可以改成其他服务器没被占用的端口
volumes:
- './chinese-dos-games:/app/static/games'
image: 'oldiy/dosgame-web-docker:latest'
这个镜像不大,只有600m左右,大概有个十几个游戏。
运行
如果看到容器已经在运行,说明已经部署成功。
下载1898个DOS游戏
准备好空间,1898个中文DOS游戏大概有30G左右。
我把这些文件放在了./chinese-dos-games
,也就是上面docker中设置的位置。
我也看到有些文章使用迅雷下载,其实不用那么麻烦,作者把项目传到了github上,所以我们使用git和python就能直接下载。
最是喜欢这样的装备好的懒人包,不需要自己下载资源、寻找封面和规整路径。
事前准备
安装git和python
ubuntu上安装软件很方便,尤其是你如果跟着我的博客去自己搭建的话,应该已经做过换源,这样下载安装的速度应该会很快。
一句命令的事:
sudo apt install git python3
git clone
使用git clone
命令克隆整个项目,github上的项目不大,如果你实在无法连接github,可以试着找一找国内镜像。
命令就运行在./chinese-dos-games
目录下
git clone https://github.com/rwv/chinese-dos-games.git
进度条走完,使用ls
命令查看,结果如下:
python脚本下载
直接在目录下运行Python 3脚本,最近应该支持断点续传了,只要等着就好。
python download_data.py
执行完毕,你应该能看到多出来一个bin
目录,那里应该放着整个的游戏库。
使用
刷新或者重启下docker,打开网页,看看游戏列表,现在应该有完整的2000多个游戏了。
剩下的就是享受游戏了。
这里说明书很全,甚至还有攻略。
emulatorjs
emulatorjs实际上就是可以运行在web端的全能模拟器Retroarch,可以玩各种各样的怀旧游戏,功能和Retroarch类似。
相比于一些使用VNC方案的模拟器来说,emulatorjs实际上是运行在本地浏览器上的,对于NAS性能要求较低,也不需要太高的带宽进行图像的传输,唯一的问题就是启动的时候会加载模拟器和ROM文件,这一步会慢一点。
部署
创建文件夹,这些就不说了,直接看docker compose文件。
services:
emulatorjs:
image: lscr.io/linuxserver/emulatorjs:latest
container_name: emulatorjs
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- SUBFOLDER=/ #optional
volumes:
- ./config:/config
- ./data:/data
ports:
- 8086:3000
- 8089:80
- 4001:4001 #optional
restart: unless-stopped
其中PUID、PGID实际上是启动docker的用户权限,如果权限设置不对,docker就没法读取文件夹中的数据,建议是你使用哪个用户创建的也一样用这个用户。
具体查看方法是在该用户下的命令行中输入id
命令,就可以查看PUID和PGID了。
config是存放配置文件的地方,data是存放rom文件的地方。
3000端口是控制端口,80端口是真正的游玩入口,根据自己需要进行修改。
配置
让我们先打开控制端口的网页。
点击download
进行下载模拟器运行文件和视频loge等。
出现All Files后可以点击黑块关闭。
上传ROM文件
点击File Management
,再选择你想要上传的ROM文件对应的模拟器,比如这里选择了GBA。
点击roms
文件夹,右键选择upload
可以上传本地的ROM文件,当然直接拖拽进去也行。
之后返回Rom Management
,点击gba scan,这样可以扫描整个GBA ROM,并且添加到列表中。
设置ROM元数据下载
按理来说这个模拟器可以对ROM程序进行自动匹配,但是你也知道,咱们很多的汉化游戏实际上并没有官方版本,所以只能手动进行连接和下载元数据,这也是为了在web端进行浏览的时候的美观性。
在Rom Management
中选择gba,在右侧Unidentified Roms
上可以看到没有link的ROM,点击一下,看到如下。
选择identity item
,选择ROM对应的英文游戏名,点击link item
,这样就是把ROM连接到了对应的元数据中。
得到结果如下图:
点击Download All Available Art
对元数据进行下载,点击Add All Roms to Config
将元数据添加到web端中。
下载完成会变成绿色,如果你对下载的结果不满意,也可以点击ROM文件对其进行替换。
期待社区能有一些整合包吧。
运行
打开游戏端口的链接,应该就能看见GBA模拟器了,如果是网页端的键盘,那方向键左右进行选择,回车选中,F1
调出模拟器菜单。
正常来说,模拟器的save文件都保存在本地的浏览器当中,如果更换了浏览器,那save文件也不一样,不过可以通过左上角的齿轮文件按钮对save文件进行下载。
这个项目也支持使用xbox手柄进行控制,按键都和Retroarch相同,因为本身这个项目就是为了在xbox上的Edge浏览器中玩模拟器设置的。
对于性能,emulatorjs项目基本上不依赖于NAS的性能,主要还是在于web端的浏览器性能,通常FC、SFC、GBA这一类的老游戏模拟器非常成熟,性能要求也不高,应该能够很完美的运行,至于PS、PS2这类,可能就要吃力很多,这种大型的模拟器更适合本地运行。
注意,我在搭建的时候遇到了虽然添加了不同机器的ROM,但是主页面并没有更新,这种把docker重新创建一下就好了。
总结
这一期介绍了如何使用NAS搭建云端游戏平台,下一期可以介绍一个使用NAS实现网页作图和网页PS。