找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7233|回复: 0

[转载] Ren'Py引擎从入门到放弃(支线5)——在web页面运行Ren'Py

[复制链接]
发表于 2019-6-22 20:00:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 BuErShen 于 2019-6-22 19:35 编辑

Ren'Py引擎从入门到放弃(支线5)——在web页面运行Ren'Py

世上无难事,只要肯放弃。

支线系列是独立于基础之外的内容,会引用一些外部平台大佬的内容,感觉有困难的同学可以暂时不(fang)看(qi)。

本篇内容讲解Beuc于2019年2月3日,在GitHub上新建的RenPyWeb项目。作用是在浏览器的Html5页面中运行Ren'Py工程。开发环境当前仅限Linux。搭建开发环境的过程中可能会遇到困难和挫折。请善用各种搜索引擎,尤其是墙外的,可以解决大部分疑问。若遇到疑难问题可私信,但我不保证一定能解决。

第一个问题:在Web页面上运行Ren'Py是什么原理?

答:Ren'Py的根是Pygame,Pygame的根是Python,而Python的根则是C语言(世界上第一个Python编译器是用C语言实现的)。当然,C语言也是不能直接在页面上运行的,可以在页面上运行的通常是JavaScript……于是Beuc就选用了可以将C语言代码转换成JS的编译器Emscripten实现这一工作。大体的关系如图:

大体的关系如图.jpg

最后在web服务端生成的是一堆js文件。

第二个问题:如何搭建RenPyWeb运行环境?

答:首先,必须搞一台转有Linux的电脑,虚拟机理论上也可以但我没试过。我电脑安装的是Ubuntu,目前的版本是Release 18.04。

下一步是安装git工具,命令行运行:

  1. apt-get install git
复制代码

git工具可能需要做一些初始化配置,此处暂时乎略。因为后续不影响使用。

GitHub - renpy/renpyweb: Ren'Py in your HTML5 web browser

这是GitHub上RenPyWeb的项目地址。我们可以直接下载整个项目的zip文件然后在本地解压,也可以用git命令直接复制到本地:

git clone https://github.com/renpy/renpyweb

该命令会在当前路径直接创建 renpyweb 目录。

复制完之后的事情就简单了(完全不是!)……依次运行:

  1. cd renpyweb
  2. scripts/build_toolchain.sh
  3. scripts/checkout_renpy.sh
  4. source toolchain/env.sh
  5. make
  6. scripts/install_in_renpy.sh
复制代码

如果所有命令都成功执行完毕,我们就可以在web页面上运行renpy项目(如果遇到报错请参考本篇后面的内容)。进入renpy/build/t,打开 index.html 文件,可以在浏览器上运行预先打包好的“The Question”。如果想要打包自己的工程,可以有两种方式:

  • scripts/distribute_game.sh + 工程目录名
  • 运行 renpy/renpy.sh 打开GUI界面,在主界面右下的操作中菜单选择 Web(Beta) ,然后生成 Build Web Application 。

在主界面右下的操作中菜单选择 Web(Beta).jpg

然后生成 Build Web Application 。.jpg



生成菜单右侧说明中提到,当前的运行模式会要求将整个打包文件下载的用户电脑浏览器中再执行,并且web平台的限制所以加载较大的图像、音频或视频将导致音频卡断和帧率下降。
运行的界面如下图:

运行的界面如下图.jpg

第三个问题:生成环境的命令报错怎么办?

答:不要慌……出现报错是很寻常的,慌也没用。根据个人经验,通常报错的原因有两类:一类是依赖程序或者库没有安装,另一类是用户权限不匹配。

第一类问题 常见于各种“Command ***** not found”。我在安装过程中遇到过 quilt 和 fossil 两个命令不存在的情况,使用apt-get装上就行了。此外还遇到过一个报错“pygame_sdl2.error is out of date”。pygame_sdl2 是Tom Rothamel为Ren'Py专门整理的一个库,运行环境需要 Cython。解决方法也很简单,apt-get装cython就行。

第二类问题 包括本地权限和git权限。本地权限请用chmod命令调整,实在懒全部777吧……在执行 checkout_renpy.sh 脚本时,可能会遇到鉴权失败的报错。这是由于当前目录及其父目录下没有初始化git配置的原因。在webrenpy的上一级目录初始化git配置就能解决,具体方法请使用搜索引擎。更简单的方法是直接用把脚本里的两个内容复制到本地:

cd renpyweb
git clone https://github.com/renpy/pygame_sdl2
git clone https://github.com/renpy/renpy


还有个比较特殊的问题:依赖组件fribidi要求0.19.2版本,而fribidi官网或者github上都没有这个版本,可能有严重bug所以移除了。renpyweb的make文件的第480行有这样一句:

$(CACHEROOT)/fribidi-0.19.2.tar.gz:
        wget https://web.archive.org/web/2016 ... ibidi-0.19.2.tar.gz -P $(CACHEROOT)

嗯……http://web.archive.org早就被墙了,所以在这里一定会反复尝试连接后多次失败退出。不过,办法也在这行脚本里。此处先检查cache目录是否存在这个文件,若不存在再用wget下载。所以我们可以想办法把文件下载好,放到renpyweb/cache中,make时就正常了。同理,其他一些依赖的库也可以先下载好放在cache中,节省时间。目前需要的几个文件为:

  • ffmpeg-3.0.tar.bz2
  • fribidi-0.19.2.tar.gz
  • libjpeg-turbo-1.4.0.tar.gz
  • libpng-1.6.34.tar.gz
  • libzip-1.5.1.tar.gz
  • SDL2_image-2.0.2.tar.gz
  • SDL2_mixer-2.0.1.tar.gz
  • zlib-1.2.11.tar.gz

emmmmm……我都上传到网盘了:

链接:https://pan.baidu.com/s/1medHk2jKFJLTlnK1LRwTUA
提取码:wmnf

第四个问题:git下载东西很慢怎么办?

答:请搜索“git 下载慢”,各种方法都尝试一下,总有一款适合你。我尝试过一些方法后发现,renpy和pygame_sdl2等项目的下载速度有明显提升,但emscripten永远是龟速……

吐槽部分:跟朋友合作的项目已经接近完成……demo了,最痛苦的还是写文档……

预告部分:还没想好下一篇写什么。按照进度应该准备讲定制化GUI了……很可能鸽,想放弃……



“Ren'Py引擎从入门到放弃”系列教程




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-5-2 05:38 , Processed in 0.076752 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表