DavidGrice/knightskingdom
GitHub: DavidGrice/knightskingdom
该项目通过逆向工程解编译LEGO Creator Knights Kingdom游戏,研究Superscape VRT引擎文件格式并尝试用现代Web技术重建和扩展该经典游戏。
Stars: 5 | Forks: 0
# 概述
这是一个正在进行的项目,主要包含两个方面:
* 逆向工程 Lego Creator Knight's Kingdom
* 现代化游戏(使用相同或相似的资产)并扩展功能
# 当前进度(右键单击 + 在新标签页中打开)
[](https://youtu.be/7e8UlNaXLN0)
# 视频概述(右键单击 + 在新标签页中打开)
[](https://youtu.be/7Tek4hDv4kk)
### 使用的软件及相关项目
#### 逆向工程
* [Ghidra](https://github.com/NationalSecurityAgency/ghidra)
* [Ida Free](https://hex-rays.com/ida-free/)
* [IM HEX](https://imhex.werwolv.net/)
* [HEX workshop](http://www.hexworkshop.com/)
* [X32 DBG](https://x64dbg.com/)
* [Process Explorer](https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer)
* [Music Producer DX9.0](https://archive.org/details/DirectMusicProducer-DX9.0)
#### Superscape
* [Superscape VRT 5.71 SDK](https://archive.org/details/sdk571)
* [LEGO Creator: Knights Kingdom (2000)](https://archive.org/details/lego-creator-kk)
* [LEGO Creator: Harry Potter - 北美版 (Windows PC)](https://archive.org/details/lego-creator-harry-potter-pc-game)
* [Superscape Do3D 评估版本 5.10](https://archive.org/details/superscape-do3d-evaluation-version-5.10)
* [Lego Creator 1998 Lego Group Superscape CD](https://archive.org/details/lego-creator-1998-lego-group-superscape-cd)
* [Superscape Visualiser](https://archive.org/details/superscape_visualiser_dos)
* [Superscape Do 3D (1998)](https://archive.org/details/superscape-do-3d)
* [Superscape VRT v5.60 (1998)](https://archive.org/details/superscape-vrt-v560)
* [Superscape Viscape Universal v5.61](https://archive.org/details/viscape-universal-561)
#### 杂项
* [通过 LugNet 获取的 Lego Creator Forms 2000](https://news.lugnet.com/games/lego/creator/?n=25)
* [Lego Rock Raiders 论坛](https://rockraidersunited.com/topic/9215-installing-lego-creator-knights-kingdom-on-windows-10/)
* [提取的 Lego 资产](https://rockraidersunited.com/topic/9415-lego-creator-knights-kingdom-assets/)
# 文件夹
您将在下面找到与该项目和研究相关的文件夹,这些都是我收集的关于该主题的内容。
要逆向工程模型数据,[resources](./resources/) 是你要去的地方。
要编写现代应用程序,[src](./src/) 是你要去的地方。
# [resources](./resources/)
此文件夹包含我从 Superscape 的原开发者那里获得的文件。
### [Archive](./resources/Archive/)
包含在旧版 Superscape VRT 5.71 中找到的某些文件,用于导入数据。
### [model_files](./resources/model_files/)
包含带有缩略图的示例模型文件数据,您可以在任何 Hex 编辑器中打开它们以查看更详细的信息。
### [ordinals](./resources/ordinals/)
Python 脚本以及 2000 年用于创建游戏的 MFC42 文件。
### [sdk](./resources/sdk/)
包含由 Superscape 员工记录和使用的 SDK,以帮助他们了解程序的功能。
### [research](./resources/research/)
这是我和 RE 社区成员的帮助下整理出的研究资料:

这是 VRT 文件名包含的内容,它会让你了解 VCA 文件的偏移量。

这是 Shape 数据,你可以看到它随偏移量变化。

这是调色板数据,它也随偏移量变化。

这是世界数据,随偏移量变化。

这是一个基本的砖块,顶部带有 shape 偏移量

这是 VRT 使用的点数据示例。数据按几何或常规内存地址进行拆分。还可以包含面和线数据。

这是从 VRT 5.60 提取数据时的示例脚本。他们在 5.71 版本中更新了大量新信息和功能,尽管我交谈过的开发者没有副本,因为公司被收购了两次,现在归 EA 所有。

这是一个修改后的 VCA 文件示例。我只是添加了一个新点,你可以看到 Hex 文件保存它的不同之处。
### lca_file
包含 LCA(包含模型数据的 VCA 文件格式的 24 或 27 位包装器)。
每个子文件(如 SHP、PAL、WRLD 等)的偏移量都包含在此特定文件中。
# [src](./src/)
包含用于重建和扩展游戏的主要组件
### [images](./src/images/)
包含我从原始 bitmap 中解析提取的高清图像,以便日后更好地使用。
### [models](./src/models/)
是我从 Lego Island 2 中提取的模型,以帮助掌握引擎/应用程序的使用。我感到有些疲惫,希望取得一些进展来改善我的心理健康。
### [components](./src/components/)
是每个屏幕组件所在的地方,有助于让游戏的工作流程更容易使用。目前,只是使用更高分辨率的文件进行重建,但稍后会进行调整,使其更偏向图形化,例如使用 shader 而不是照片,或实时渲染的场景。一旦可以提取城堡数据,就会将其制作成动态的而非静态的欢迎屏幕。
# 如何运行现代版应用程序
# Create React App 入门指南
该项目是通过 [Create React App](https://github.com/facebook/create-react-app) 引导创建的。
## 可用脚本
在项目目录中,你可以运行:
### `npm start`
在开发模式下运行应用程序。\
打开 [http://localhost:3000](http://localhost:3000) 在浏览器中查看。
当你进行更改时,页面将重新加载。\
你也可以在控制台中看到任何 lint 错误。
### `npm test`
以交互式监听模式启动测试运行器。\
有关更多信息,请参阅[运行测试](https://facebook.github.io/create-react-app/docs/running-tests) 部分。
### `npm run build`
将生产环境的应用程序构建到 `build` 文件夹中。\
它能在生产模式下正确打包 React,并优化构建以获得最佳性能。
构建文件被压缩,并且文件名包含哈希值。\
你的应用程序已准备好部署!
有关更多信息,请参阅[部署](https://facebook.github.io/create-react-app/docs/deployment) 部分。
标签:3D游戏, 云资产清单, 数据可视化, 旧系统现代化, 游戏开发, 游戏引擎, 自定义脚本, 逆向工具, 逆向工程