Magpie 0.8 放大 GALGAME 显卡帧率测试

虽然 GALGAME 不需要电竞,但画面越清晰,帧率数字越高越开心,是理所当然的吧。

PassMark 分数来自 https://www.videocardbenchmark.net/gpu_list.php

默认捕获方式 Graphics Capture 放大算法 ACNet单位, 结果为帧率 FPS

显示分辨率 显卡 PassMark あなたに恋する恋愛ルセット お兄ちゃん、朝までずっとギュッてして! 添いカノ
1920×1080 Intel HD 530 981 15 16 15
1920×1080 NVIDIA GeForce 940MX 1513 30 29 29
2560×1440 Intel HD 630 1348 20 19 19
2560×1440 NVIDIA GeForce GTX 1650 7751 60 60 60
2560×1440 NVIDIA GeForce GTX 1070 13419 144 (Desktop Duplication: 165) 62 (Desktop Duplication: 165) 159 (Desktop Duplication: 165fps)
2880×1800 AMD Radeon Pro 560X 3677 60 60 60
3840×2160 NVIDIA GeForce GTX 1070 13419 60 60 60

2021 年我的 GALGAME 游玩和开发时间统计

已经 2022 年 1月 1日了,又到了一年一度数据党公布年度统计结果的时候了。

以下是我个人的 GALGAME 游玩时间和开发时间,以及其它时间统计的数据结果。

有兴趣可以看,不看也行,随便。(早上好,不好也行,随便。

时间统计

依旧是使用 ManicTime 这款软件进行自动统计的结果。

XPS 8930

  • Web Browsing 778h

  • Game 623h

    •  

    • 雷电模拟器(公主连接R) 79h37m

    • poi(舰队Collection)35h40m

    • ゆきいろ 33h50m

    • そらいろ 33h29m

    • レコンキスタ 31h32m

    • yourdiary+H 30h46m

    • White -blanche comme la lune- 29h33m

    • さくらの雲*スカアレットの恋 29h

    • 創作彼女の恋愛公式 27h30m

    • 嫁探しが捗りすぎてヤバい。 23h47m

    • 思い出抱えてアイにコイ!! 19h53m

    • ラムネ2 18h57m

    • 俺の恋天使がポンコツすぎてコワ~い。 18h33m

    • ラムネ 17h40m

    • ウチはもう、延期できない。13.85h

    • 朱-Aka- 13.45h

    • アインシュタインより愛を込めて APOLLOCRISIS 9h22m

    • アメサラサ 12h18m

    • みずいろ 9h45m

    • 銀色 7h25m

    • さくら、もゆ。 -as the Night’s,Reincarnation- 5h49m

    • Whiteちょこっとファンディスク 5h9m

    • 以及其它

  • Social 342h

  • Video 99h

  • Utils 89h

  • Development 43.45h

百分比: 1974.45 / 2065.43 = 95.595%

这么看来,今年一共打了 600 多小时的游戏,Windows 电脑就是拿来打游戏的!(叉腰.jpg)

除了玩游戏就是刷油管和推,在家就是网络废人,游戏废人,娱乐至死。

不过看着这时间统计,娱乐确实很爽,生产很苦逼,虽然刚开始可能做起来很舒服,但是随着时间投入的增加,项目越来越大,最后激情就会被磨灭,能在一个相对合理的时间内做完一个作品,完成一件让自己感到有成就感的事情,不容易。

世界上根本不存在什么没有成本的东西,什么都是成本,就算只是坐在电脑前玩游戏,投入的时间,喝的肥宅快乐水(无糖可乐),也是成本。但只要能让自己感到快乐,那些所需要的成本,又算个啥。

R7000P

  • Software Development 624h

  • Web Browsing 575h

  • Social 321h

  • Util 127h

  • Game 125h

百分比:1645 / 1845 = 89%

这么一看,纯开发占时间有 (624+127) / 1845 = 40%

开发这个统计是需要算上文件管理器处理文件的耗费时间的,不算的话就只有 33% 了,这种繁琐的但少不了的必要步骤,真是时间大杀器。

如果再算上查文档和学习资料的话,占比应该是有 50%

社交对接耗费时间就不好算了,比较复杂。

结论

2065.43 + 1845 = 3910.43 / 365 = 10.71351h

2021 年每天花费在使用电脑的时间上平均 10.7 小时。

这个数字有多准确,我也不清楚,但是应该能大致反应一些问题。

生产与消费

以玩游戏和制作游戏为例。

一个需要玩家花费几小时来体验的游戏,可能需要很多制作人员投入几百个小时的时间去制作,在这种投入产出消费比完全不对等的情况下,对于制作人员来说,作品做出来了,自己的工作已经到了生产阶段的结束。

后续等待的就是 消费者 对于这个作品的评价。

  • 大家的评价不错,那自然开心。

  • 大家的评价褒贬不一,那作为生产者需要思考一下,为什么会这样子。

  • 大家的评价都很差,那作为生产者,也许自己的方向不是很对,但凡能做出一个值得让大家肯定的地方,也不至于差评如潮。

创作本身是一个自我表现的过程,而作品是创作的结果,结果没有令自己或观众满意,那一定是哪里出了问题,要么是自己的错,要么是世界的错。


分割线


当然,

作为一个生产者,自己投入了几百,几千小时的努力,不管别人评价如何,自己已经做出来了,证明自己可以制作一个这样的作品。

作为一个消费者,自己花钱购买了,想怎么玩,就怎么玩,想怎么评价,怎么说,就怎么说,这都是作为消费者的特权,既然你让我看到了这样的作品,那我的感受怎么样,说出来又如何。

也许双方不能达成共识,但现实就是这样子构成的,不会让所有人满意,不会让所有人都得到自己心中的完美答案,双方的时间都是,花了就花了,没办法收回来。

写了这么多,在合适的时机,做合适的事情,将自己的时间投入到自己想做的事情里,让自己过的开心,才是最重要的。

Utage3 开发 Galgame 之使用 dummy 文件来防止资源报错

在 开发 或者 测试发布 游戏时,有时候会因为素材还没有准备就绪,但是需要进行 test play 的情况,这时候打开 dummy 文件功能,可以来避免资源卡住加载问题。

开启方法:

  1. 打开游戏场景,比如 Utage 示例的 Sample.scene。

  2. 在 Hierarchy 窗口展开定位到 Managers > FileManager。

  3. 在 Inspector 窗口中找到 AssetFileManager 组件,鼠标滚轮滑到 Dummy Files 部分。

  4. 勾选 Is Enable,设置好 Texture Sound Text Asset 的 dummy 文件。

  5. Ctrl + S 保存场景,完成。

设置完毕后,点击 Play 按钮运行游戏,遇到缺素材文件的时候就不会弹出资源加载错误弹窗了,而是使用 dummy 文件来替代不存在的资源。

Utage3 在 3.11.1 之前版本存在的内存泄漏问题记录

在使用 CaptureImage 指令和 RuleFadeOut 指令组合进行 Transition 的演出时,使用 Ctrl 来 skip 之后,多跑几遍就会内存上涨到爆炸。

详细汇报可看 谷歌论坛帖子地址

在 Report 给开发者之后,过了几小时就回复放出了补丁,效率还是很不错的。

以前的项目里很少用这个组合,目前开发的游戏使用了很多次这个指令在测试运行的时候发现了这个问题。(用 Utage3 的开发者还是少啊,都这么多年了,没人汇报 >_<,不过现在解决 了,可喜可贺,可喜可贺。)

用 Unity 来制作 GALGAME 的坑真不少,Unity 版本升级得踩坑,Asset 导入又慢管理又麻烦,Utage3 也用了这么久,整体来说还是很棒得,但是也有很多令人不爽的地方,但,GAL 开发没有银弹,游戏制作还得继续,踩着开发工具的版本更替,在制作的道路上越走越远。

使用 Magpie 来提升玩 GALGAME 的体验

2021 年了还是有不少 gal 是用 720p 的游戏分辨率制作的,这让一个主屏使用 1440p 显示器,副屏影音娱乐是 4k 显示屏的用户打 gal 时,使用游戏自带设置切换为全屏后,画面文字双双变糊,实在不是一个很好的游戏体验。

今年 3月份的时候,发现了 使用 mpv 和 Anime4K 播放动画视频 来提升观看动画的体验,当时就在想有没有人会开发一个可以让玩游戏时也能用 Anime4K 算法来提升游戏画质,后面 AMD 也推出了个 FSR 算法也是提升游戏画质的,在 GitHub 上以 Anime4K FSR 关键字搜索时,看到 Magpie 这个项目,看介绍也支持 Anime4K 算法,隐约感觉到,这一定就是我在寻找的软件。

引用一下官方 Repo 的介绍:

Magpie可以将任意窗口放大至全屏,支持多种高级缩放算法,包括Lanczos、Anime4K、FSR、FSRCNNX等。

主要用于游戏窗口的放大显示,适用于不支持全屏模式,或者内置的全屏模式会使画面模糊的情况。

下载完打开试用后,果然,这个软件是新时代玩 gal 必备的神器!

当然,使用算法实时渲染提升画质,对显卡来说是有性能要求的,所以要想畅玩享受全屏清晰画质 gal 的话,一个相对来说好点显卡是必须的。

Magpie 项目下载地址:https://github.com/Blinue/Magpie

强烈推荐尝试一下,玩上古游戏使用 Magpie 全屏放大显示,画质提升效果也是很不错的。

Python 在 Galgame 开发中的应用

看了下 bitbucket repo 记录,第一次使用 python 来写脚本处理文件是在 2017 年左右。当时是为了将翻译后的英文 txt 经过一些处理,导出为 csv 格式,以便校对后导出多语言演出脚本,也不是什么复杂的处理,就用 python 写了个脚本,应该是第一次实际使用 python 的样子。

之后,由于在开发游戏的过程中,会遇到一些比较繁琐,具有重复性,又有一定规律的需求的问题需要被解决,我也化身成为捕蟒人(python hunter)写了不少脚本。这里记录分享一些比较有意思的需求和解决思路仅供参考。

制作体验版时剔除未使用的素材资源

在制作游戏体验版时,往往需要把正在开发的项目中未使用过的资源给删除掉,再打包制作出来一个试玩版发布给玩家体验游玩。这个时候有 2 种思路

  1. 将使用过的资源导出一份作为体验版项目的资源。
  2. 删除未使用的资源。

解析演出脚本,将演出中使用过的图片,音乐素材给提取出来相对来说更不容易出错。

这边写的脚本也是这样子去做的。

  • 核心代码在于使用 shutil 标准库里的 copy 方法来复制文件。
  • csv 操作可以使用标准库里的 csv module

操作 Photoshop 导出立绘表情差分图片

可以使用 win32com 接口来操作 PS 来隐藏,显示图层后导出图片,示例可参考 Photoshop scripting with Python 这篇文章

创建 CG 鉴赏配置 cglist.csv

krkr2 的 kagex cg 鉴赏配置是一个 csv 文件,里面需要填写每个 cg 文件名。

由于 cg 鉴赏里配置的文件分辨率都是和游戏分辨率大小一致的,并且文件名大多数都是类似 EV01_1 这种,那么按思路来说可以将 data 文件夹里的所有 jpg png 文件都遍历一遍,将需要写入到 cglist 的文件名分组后,就可以导出为 cglist.csv 了。当然最后还是需要人工调整差分显示顺序,删除不需要的)

  • 判断图片分辨率大小,需要使用 Pillow 库 里的 Image

转换 KAG 脚本到 UTAGE3 脚本

三色绘恋在做手机版移植的时候,最后选择了使用 UTAGE3 这个 Unity Visual Novel Tool 作为系统框架,于是就需要先将 krkr 的 kag 演出脚本转换成 utage3 可以运行的演出脚本。

处理思路很简单:

  1. 解析 kag 脚本的指令
  2. 转换到 utage 对应的指令(这个过程可简单,可复杂)
  3. 生成 utage 用的 excel 演出脚本文件

但写起来挺难受的。

因为 utage3 的指令和 kag 指令的设计差别实在是太大了,再加上 kagex 的 world 功能提供的简单语法,又需要转换为新的指令。

移植这工作,做起来是一堆问题需要处理。

  • python 操作 excel 的库,可以使用 openpyxl
  • 遇到 excel 文件特别大,在 load_workbook 时设置 read_only=True 来处理。参考 Read-only mode
  • 新建 excel 时,写入数据量大时可以在新建 Workbook 时,设置 write_only=True 。参考 Write-only mode

转换剧本到 cv 台本文件

解析剧本人名和台词后

  • 将非当前角色的台词设置为淡灰色,字号变小。
  • 将当前角色的台词设置为黑色,加粗,加大。
  • 人名 和 台词 使用边框进行区分。

样式设置参考 openpyxlstyles

升级 Ubuntu 14.04 LTS 到 20.04 LTS 记录

上一次折腾 vagrant vituralbox 和 ubuntu 还是 2016 年搭建了个 svn server,之后就没怎么动过,Mac mini late 2012 也成了 svn 服务器专用机,这差不多 5 年间,用坏过一次 SanDisk 的 256G 的 ssd,后来换成了镁光的 MX500 500GB 一直用到现在。

由于 svn 版本是 1.8.X 想升级下版本发现还是直接升级系统算了,毕竟 14.04 LTS 2022 年也到 End of Support 时间了,不过谨慎点还是先升级到 16.04 LTS 好了。

升级到 16.04 LTS

移除第三方 source.list

    • How to Remove PPAs from Ubuntu

    • 这边是因为曾经为了尝试 gitlab 所以添加过 gitlab 的 source,在升级系统的时候报有兼容性问题,于是需要先移除。

    • 另外在尝试自建 gitlab 后,发现 gitlab 还是太占资源了,就没继续用了。对于美术和演出人员来说还是 svn 操作更简单方便。

更新 ubuntu distribution

do-release-upgrade
  • 出现的选项都保持默认,OK,y

  • 升级结束后重启系统,进入之后 netstat -lntp 查看启动的端口发现 nginx 启动了,不过这边需要的 webserver 是 apache2 所以需要关闭 nginx 服务和自动启动

sudo service nginx stop
sudo service apache2 start

Nginx – disable autostart

sudo update-rc.d -f nginx disable

sudo systemctl disable nginx

sudo systemctl stop nginx
  • 当然也可以选择 uninstall nginx What is the best way to uninstall nginx
  • 也许偶尔需要配置学习下 nginx,我就没卸载了。
  • 访问 svn web server 后查看版本已升级为 1.9.3

备份 vagrant box

升级到 18.04 LTS

sudo dpkg -l|grep intel
sudo apt-get purge intel-microcode
sudo update-grub
sudo reboot```
    • 升级完毕后,查看 svn version 到了 1.9.7

升级到 20.04 LTS

    • 直接执行一个 do-release-upgrade

    • 启动时发现又是卡在 smp 那里,看来新的内核都有加 intel 漏洞的补丁?,但是我这边就一个内网服务而已,也不需要管安全,直接进行一个 apt purge intel-microcodeupdate-grub 然后重启

    • 本身就是一个老旧的 cpu,再打降性能补丁,或者限制单核运行,怎么想都不划算,用到报废换新电脑多好。

    • 升级完毕后,查看 svn version 到了 1.13.0

结尾

    • 升级系统看着一行行日志文字不停的滚动过去,不出问题整个过程还是挺爽的,颇有动画里 hacker 的感觉,然而实际就是在升级系统罢了。

    • 启动停在 smp 这个问题真是蛋疼,不然整个过程应该挺顺利的。

    • 整个系统就一个内网 svn 服务器,只要能保证 svn 正常工作就行。

git or svn?

    • 尝试过好几次用 git + git lfs 来测试当 galgame 项目的 source control 系统,最终都以图片,音乐,binary 文件 add commit push 耗时比 svn 长放弃。

    • git repo size limit 比较严格,GitLab 似乎时单个 repo 最大 10GB,而用 svn 就不用考虑 size 这个问题。

    • 我个人是用 git 来同步代码比重大的 project 的。

    • 但是像图片,音乐为主的 galgame 项目,还是用 svn 更方便合适些。

    • 不过 svn 需要手动创建 repo,手动添加用户还是挺麻烦的……

renpy web updater

最近因为一些原因,开始研究 renpy 这个 Visual Novel 框架了,把折腾的东西顺便写个教程分享下。

这个教程是有关 renpy 使用 web updater 功能来更新游戏内容的。

更新设置

Building an Update
Updates are built automatically when distributions are built. To build an update, set build.include_update to True in options.rpy. This will unlock the “Build Updates” option in the “Build Distributions” section of the launcher. Check this option, and Ren’Py will create the update files.

开启生成更新按钮

  • 打开 options.rpy
  • 在 init python 下面的 build 部分新增一个下面一行代码
build.include_update = True
  • 切换到 renpy 开发窗口,点击生成分发版,此时可以看到 生成更新 选项已经出现。

给主菜单添加 check for updates 按钮

  1. 打开 screens.rpy 定位到 main_menu 方法
  2. 在 main_menu_version 组件下新增 textbutton
## Updates via this button are for PC only
textbutton "check for updates":
    action updater.Update("http://127.0.0.1/TestChsGame/updates.json")

制作与测试游戏更新包

  1. 首先生成一个 1.0 版本的游戏包。(不勾选 生成更新)
  2. 修改下剧本文本内容和游戏版本号 1.0.1,勾选生成更新选项,生成下 1.0.1 版本的更新包内容


    1.0 和 1.0.1 的 build 包
  3. 上传 1.0.1 文件夹里的所有文件到本机 Web 服务器 TestChsGame 目录,上传完毕后,在浏览器里输入 http://127.0.0.1/TestChsGame/updates.json 可看到 json 文件内容
  4. 打开 1.0 build 运行游戏,点击 check for updates 按钮,可以看到有 1.0.1 版本更新提示

点击取消,Start 游戏,查看下第一行对白是显示 v1.0

返回到 Title,再次点击 check for updates 后,点击继续运行 updater 更新游戏

更新完毕后,会自动重启游戏

在 1.0.1 游戏启动后,点击开始游戏可以看到,剧本第一行对白已经显示为 1.0.1 了

至此,renpy web updater 测试游戏版本更新功能完毕。

测试用 Web 服务器

  1. 【推荐】系统有安装 python3 的话可以打开 cmd.exe 进入一个空目录后,使用 python -m http.server 来启动一个 web server

    默认端口是 8000,所以地址会变成 http://127.0.0.1:8000

  2. Windows 下可以安装个 wampserver
  3. 或使用搜索引擎跟着教程搭建一个 web server

Reference:

  1. 官方文档地址:Web Updater
  2. [Help] About the Web Updater

MacBook Air M1 使用 Parallels Desktop 和 Windows 10 on Arm 的体验

五一放假回老家,用 M1 MBA 作为エロゲ专用机玩了几天,这篇文章就作为体验的测试报告好了。

测试环境

硬件:MacBook Air 13 2020 M1
虚拟机:Parallels Desktop 16.5.0
Windows 系统: Windows 10 on Arm build 21370.1

性能

2c 2t Geekbench5 跑分为

单核 多核
1410 2768

截屏2021-05-02 上午10.45.27

8c 8t Geekbench5 跑分为

单核 多核
1508 5893

截屏2021-05-02 上午10.51.29

看跑分结果的话,8c8t 全开性能大致和 AMD Ryzen 4500U 差不多。

エロゲ兼容性(x86游戏)

大部分的エロゲ游戏,双击不能运行的话,使用 Safe Emulation 模式就可以正常启动了。

测试过使用 Safe Emulation 可以正常运行的有:

  • さくら、もゆ。-as the Night’s, Reincarnation-
    • 在 2c2t 的配置下打了好多天,感觉没压力。
  • IslandDiary
  • まいてつ Last Run!!
    • 需要安装 dx9.0c runtime
  • your diary +H
  • ゆきいろ

截屏2021-05-02 上午10.45.27
Windows 10 on Arm 完成度挺高的,微软发力起来还是很强的。

感想

PD + WoA 的体验

  • 感觉不错,至少拿来玩エロゲ问题不是特别大。

对 MacBook Air M1 的感受

  • 作为一台打字机,看动画,听音乐,听播客,看轻小说的机器体验整体不错。
  • 看漫画的话,还是用 27 inch 大屏幕更舒服。
  • 自带扬声器喇叭拿来看动画玩游戏时外放效果还是比较满意的。
    • 比 ThinkPad T460p 是不知道高到哪里去了。
    • 当然我对 iPad Pro 10.5 的四扬声器评价也很高,每天晚上睡前都会拿来放 bgm 助睡。
  • 高 PPI 的屏幕在看图像的时候会自带美化滤镜。
    • 即使 24 inch FHD 显示器是目前打 720p 黄油的最佳显示器,但大颗粒的缺点也是不容忽视的,看起文字来是比高 ppi 屏幕不舒服。
  • 13 inch MBA 的物理尺寸从设计观感上看,确实可以称为目前笔记本电脑的 sweet point
    • 全尺寸键盘,键盘两侧无多余的空白不适感。
    • 16 inch MacBook Pro 键盘两侧放的都是扬声器的开孔,但看起来观感也确实没有 13 inch 的舒适。
    • 1.29kg 的重量已经很不错了,但是如果能更轻的话,那就更棒了。(under 1kg)

使用 mpv 和 Anime4K 播放动画视频

  • 用 mpc-hc 和 madVR 来 upscale 播放动画也不错,不过还是按捺不住想折腾的心思,于是尝试了下这个。

  • mpv

    • 官网:https://mpv.io/

    • 安装:https://mpv.io/installation/

      • Windows 解压后,进入 installer 文件夹,使用管理员权限运行 mpv-install.bat 和 configure-opengl-hq.bat

      • 切换到 mpv.exe 运行目录,打开 mpv/mpv.conf 文件

  • Anime4K

  • 打开一个视频文件,shift + i 显示 OSD 菜单,按 2 可以看到当前的 user shader 设置,使用 ctrl + 1 到 6 来切换 shader profile,ctrl + 0 来清除 shader profile.

  • 试了下我还是使用第一个推荐的 For 480/720p videos 的配置了。