Hacker News 中文摘要

RSS订阅

Libsm64:将《超级马力欧64》作为库用于外部游戏引擎 -- Libsm64: Mario 64 as a library for use in external game engines

文章摘要

libsm64项目将《超级马里奥64》的逆向工程代码封装为共享库,提供干净的移动和渲染接口,方便集成到其他游戏引擎中。它运行时需加载官方ROM获取纹理和动画数据,API定义在libsm64.h中,支持Linux、macOS和Windows平台构建。

文章总结

libsm64 项目旨在将《超级马力欧64》中的移动与渲染代码封装成一个共享库,方便开发者将马力欧角色轻松集成到现有游戏引擎或其他系统中。该库主要基于SM64反编译项目的代码,并在运行时加载官方SM64 ROM以获取纹理和动画数据,因此使用该库的项目需要用户提供ROM文件用于资源提取。

库的外部API定义在libsm64.h文件中,客户端项目只需包含该头文件并加载库即可使用。测试目录下提供了一个最小示例项目,演示了库的基本用法。

在Mac和Linux上构建时,需确保已安装python3,若构建测试程序还需安装SDL2和GLEW库(Ubuntu下为libsdl2-dev和libglew-dev)。运行make命令即可构建,若想链接musl libc而非glibc,则使用LIBSM64_MUSL=1 make。运行测试程序需将SM64 US ROM命名为baserom.us.z64并置于仓库根目录。

在Windows上构建时,需按步骤设置MSYS2 MinGW 64环境,并将仓库URL替换为https://github.com/libsm64/libsm64.git。若构建测试程序,需通过pacman安装SDL2和GLEW库(64位或32位对应不同命令)。运行make构建后,同样需要将ROM文件置于根目录。

针对Emscripten(Web)的构建尚在开发中,可使用emmake make CC=emcc命令。若需从JS调用独立libsm64,需运行emcc dist/libsm64.so -o libsm64.js生成libsm64.wasm和libsm64.js;否则dist/libsm64.so可作为WebAssembly对象链接到C项目中。以上构建目标适用于所有平台。

评论总结

根据评论内容,总结如下:

主要观点:

  1. 项目现状与用途:评论者关注该库是否已有实际应用项目,并提供了相关资源链接(如awesome-libsm64)。

    • 关键引用:Retr0id:“Looks like this has been around for a while now, are there any interesting projects using it?”
    • 关键引用:Retr0id:“Edit: https://github.com/SuperSonicHub1/awesome-libsm64”
  2. 功能演示需求:部分评论者希望看到实际演示视频,并提供了示例链接。

    • 关键引用:ParadisoShlee:“Any demo videos? or just need to imagine it? found this: https://youtu.be/NXpOCfg8O64”
  3. 应用场景理解:有评论者准确理解该库的用途——将《超级马力欧64》的角色移植到其他游戏中(如《使命召唤》)。

    • 关键引用:deadbabe:“So let me get this straight, is the intent of this so that if you have some game like Call of Duty, you could use this to just add Mario running around in there jumping around like it was SM64?”
  4. 实际案例展示:评论者提供了马力欧出现在《半条命2》中的示例视频,表达对该库的喜爱。

    • 关键引用:schmeichel:“This is one of my favorite libraries from the premise alone. Here is an example of Mario in Half-Life 2: https://www.youtube.com/watch?v=Ld3qhqkegNw”
  5. 幽默调侃:有评论者开玩笑说可以将其包装成API,作为“马力欧64即服务”出售,并调侃任天堂。

    • 关键引用:dev0p:“Wrap it in an API, sell Mario 64 as a service. (@Nintendo: this is a joke, you can put down the rifle)”
  6. 其他项目关联:评论者提到希望《完美黑暗》的PC移植版能在GL 2.1下运行。

    • 关键引用:anthk:“I'd love the Perfect Dark recompilation working under GL 2.1: https://github.com/perfect-dark-pc-port/perfect_dark”

平衡性说明: 评论整体积极,主要围绕项目功能、演示、应用案例展开,无负面观点。幽默调侃不影响对项目价值的认可。