LEGO Island 便携版项目介绍
LEGO Island 便携版项目介绍
技术背景
本项目是基于反编译项目开发的乐高岛(LEGO Island,版本 1.1,英文)的便携版。其主要目标是对代码库进行改造,实现平台独立性,从而在尽可能忠实保留原游戏体验的同时,提高在各种系统上的兼容性。项目专注于实现平台独立,不会改变核心玩法、添加新功能、提升视觉质量或为改进而重写代码。
实现步骤
支持平台扩展
项目正在积极支持更多平台,目前已支持 Windows、Linux、macOS 和 Web。若你有特定平台的开发经验,可参与到 isle - portable
项目中,相关正在进行的工作可在 Wiki 中查看。
库替换
为实现平台独立的目标,需要用跨平台的替代库替换仅适用于 Windows 的库。以下是主要库/子系统及其替换情况:
库/子系统 | 替换方案 | 状态 | 备注 |
---|---|---|---|
窗口、事件 | SDL3 | ✅ | - |
Windows 注册表(配置) | libiniparser | ✅ | - |
文件系统 | SDL3 | ✅ | - |
线程、互斥锁(同步) | SDL3 | ✅ | - |
键盘/鼠标、DirectInput(输入) | SDL3 | ✅ | - |
游戏手柄、DirectInput(输入) | SDL3 | ✅ | - |
WinMM、DirectSound(音频) | SDL3、miniaudio | ✅ | - |
DirectDraw(2D 视频) | SDL3 | ✅ | - |
Smacker | libsmacker | ✅ | - |
Direct3D(3D 视频) | SDL3(Vulkan、Metal、D3D12)、D3D9、OpenGL、OpenGL ES、软件 | ✅ | - |
Direct3D 保留模式 | 自定义重新实现 | ✅ | - |
SmartHeap | 默认内存分配器 | - | - |
对于任何重大更改或添加,建议先在 Matrix 聊天中与团队讨论,以确保与项目目标一致。
项目构建
本项目使用 CMake 构建系统,这使得编译器和开发环境具有高度的通用性。可参考 GitHub action 获取构建指导。
核心代码
由于文档未提供核心代码,以下是一个简单的 CMake 示例用于构建项目:
1 |
|
最佳实践
- 对于库的重大更改或添加,先在 Matrix 聊天中与团队讨论,确保与项目目标一致。
- 若要参与项目开发,可参考 CONTRIBUTING 页面。
常见问题
项目构建问题
项目使用 CMake 构建,若遇到构建问题,可参考 GitHub action 中的构建指导。
运行问题
目前 Releases 标签下提供的构建版本是为开发者准备的,最终用户可能无法正常运行。若你有技术能力,可自行编译项目以使其运行。
LEGO Island 便携版项目介绍
https://119291.xyz/posts/lego-island-portable-project-introduction/