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-
Smackerlibsmacker-
Direct3D(3D 视频)SDL3(Vulkan、Metal、D3D12)、D3D9、OpenGL、OpenGL ES、软件-
Direct3D 保留模式自定义重新实现-
SmartHeap默认内存分配器--

对于任何重大更改或添加,建议先在 Matrix 聊天中与团队讨论,以确保与项目目标一致。

项目构建

本项目使用 CMake 构建系统,这使得编译器和开发环境具有高度的通用性。可参考 GitHub action 获取构建指导。

核心代码

由于文档未提供核心代码,以下是一个简单的 CMake 示例用于构建项目:

1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required(VERSION 3.10)

# 设置项目名称
project(isle_portable)

# 设置 C 标准
set(CMAKE_C_STANDARD 11)

# 添加可执行文件
add_executable(isle_portable main.c)

# 链接所需库
target_link_libraries(isle_portable SDL3 libiniparser libsmacker)

最佳实践

  • 对于库的重大更改或添加,先在 Matrix 聊天中与团队讨论,确保与项目目标一致。
  • 若要参与项目开发,可参考 CONTRIBUTING 页面。

常见问题

项目构建问题

项目使用 CMake 构建,若遇到构建问题,可参考 GitHub action 中的构建指导。

运行问题

目前 Releases 标签下提供的构建版本是为开发者准备的,最终用户可能无法正常运行。若你有技术能力,可自行编译项目以使其运行。


LEGO Island 便携版项目介绍
https://119291.xyz/posts/lego-island-portable-project-introduction/
作者
ww
发布于
2025年7月19日
许可协议