DavidGrice/knightskingdom

GitHub: DavidGrice/knightskingdom

该项目通过逆向工程解编译LEGO Creator Knights Kingdom游戏,研究Superscape VRT引擎文件格式并尝试用现代Web技术重建和扩展该经典游戏。

Stars: 5 | Forks: 0

# 概述 这是一个正在进行的项目,主要包含两个方面: * 逆向工程 Lego Creator Knight's Kingdom * 现代化游戏(使用相同或相似的资产)并扩展功能 # 当前进度(右键单击 + 在新标签页中打开) [![观看视频](https://img.youtube.com/vi/7e8UlNaXLN0/maxresdefault.jpg)](https://youtu.be/7e8UlNaXLN0) # 视频概述(右键单击 + 在新标签页中打开) [![观看视频](https://img.youtube.com/vi/7Tek4hDv4kk/maxresdefault.jpg)](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_file_headers](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0d31188a4f700437e5ba1eca4b54f502fe769e47013e9479d0e7c0c354b1b18c.png) 这是 VRT 文件名包含的内容,它会让你了解 VCA 文件的偏移量。 ![shap_offset](https://static.pigsec.cn/wp-content/uploads/repos/cas/28/286aa11aaf18e610140f8c9f63d23add8d0dc531ebb1b3168111e1f99f4c739b.png) 这是 Shape 数据,你可以看到它随偏移量变化。 ![palette_offset](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3a24bf218aa66752aee53faca78b9d535aae5bfae7d134dd9223c0f194d80e4.png) 这是调色板数据,它也随偏移量变化。 ![wrld_offset](https://static.pigsec.cn/wp-content/uploads/repos/cas/38/3829bbb25c747cbfbccc4737d7934553de85e5912cea8c8f46b6bd956ef3d143.png) 这是世界数据,随偏移量变化。 ![basic_brick](https://static.pigsec.cn/wp-content/uploads/repos/cas/1f/1f96e3d69a070263f674440ffce30c2daf16d9ba8635eb8218ce676c49cc36d7.png) 这是一个基本的砖块,顶部带有 shape 偏移量 ![point_data](https://static.pigsec.cn/wp-content/uploads/repos/cas/2a/2a9e445ea5e48ceb5c65d68ab69072a6a7338a16328d1674a951543fa515518e.png) 这是 VRT 使用的点数据示例。数据按几何或常规内存地址进行拆分。还可以包含面和线数据。 ![example_script](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3072741aeba9fe9ad8bb4ddf4454f4971c0baa3d1e2fc54588ca97da8ad00cd.png) 这是从 VRT 5.60 提取数据时的示例脚本。他们在 5.71 版本中更新了大量新信息和功能,尽管我交谈过的开发者没有副本,因为公司被收购了两次,现在归 EA 所有。 ![modified_vca](https://static.pigsec.cn/wp-content/uploads/repos/cas/54/5409bdacd3509d40320bee2796614c74066a723b96bcf46252a48a8654d23f62.png) 这是一个修改后的 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游戏, 云资产清单, 数据可视化, 旧系统现代化, 游戏开发, 游戏引擎, 自定义脚本, 逆向工具, 逆向工程