从Native到Web(六), emscripten学习笔记: SDL游戏移植尝试

大体浏览过emscripten的那一堆demo后, 心想试试移植个游戏试试, 顺便体验下这项技术的实用程度

首先尝试了Onescripter, 因为手头上有可以编译运行的FateStayNight. 

  1. 在工程配置中增加新的Platform: Emscripten, 并选择编译成可以执行的html

  2. 编译提示缺少bzlib.h, 增加libbz2工程(开源), 注意这个就需要编译.bc库了(相当于.lib)

  3. 再编译, 依赖库没问题了. 提示SDL_CD相关函数都找不到. 这也可以理解, web不方便访问光驱嘛. 使用#if EMSCRIPTEN宏隔离不支持的SDL特性代码

  4. 编译通过, 可以运行了, 不过提示找不到脚本文件. 原来emscripten对于文件IO是有很大的限制的, 参考: Filesystem Guide
    1. 第一种比较简单粗暴, 把所有依赖的文件打包成一个.data文件, 载入页面时下载, 下载完再运行游戏. 不过这时候所有的数据都是在内存中的, 所以fopen什么函数其实访问的都是内存中的虚拟文件系统. 实验证明, 对于FateStayNight这种上GB资源的游戏来说, 这个方法会导致浏览器崩溃-_-

    2. 第二种方式应该是floh在PPT中说的那种方式, 类
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值