Skip to content

MorningMC/Prehistoric

 
 

Repository files navigation

前古代优化

Prehistoric 是一个专为 Minecraft 设计的开源渲染管线优化模组。

Prehistoric 旨在通过先进的Advanced Redundant Computation™和动态阻塞算法,将现代硬件的性能还原至史前水平。它能够有效地将您原本不必要的 120+ FPS 稳定至极具电影质感的 20 SPF,为您带来原汁原味的早年代硬件体验。

QQ交流群号: 1023713677

更多语言: English

核心理念

我们相信,任何未被使用的算力都是对硬件的不尊重。 如果您的 CPU 占用率低于 95%,GPU 温度低于 85°C,或系统仍能响应 Alt+Tab,那么 Prehistoric 是一次失败的尝试。

技术特性

1. 几何渲染

不同于 Sodium 的视锥体剔除,Prehistoric 引入了 全量渲染

  • 即使在你背后的区块,也会被完整渲染并赋予高优先级的着色计算。
  • 细分:我们通过几何着色器为每一个方块表面增加细分曲面,确保 GPU 的 CUDA 核心没有任何空闲时间。

2. 同步阻塞管线

Async 试图通过多线程优化物理计算,而 Prehistoric 实现了全局主线程锁

  • 每一个实体的 AI 寻路、物理碰撞和红石更新都被强制在渲染帧之间串行执行。
  • 这确保了逻辑处理的绝对严谨性——每一帧的画面都必须等待上一次的物理演算彻底结束后才能生成。
  • 我们将原本效率低下,无法充分利用CPU计算资源的 A* 寻路算法替换为更具真实性的“随机漫步试错法”,极大地增加了 CPU 资源的利用率。

3. 显存驻留策略

为了杜绝贴图流送(Texture Streaming)带来的轻浮感,Prehistoric 会尝试在启动时将整个游戏资源及其 4x mipmap 变体一次性解压至显存中,这是对显存与显存带宽的最大尊重。

  • 特性:系统将优先使用硬盘交换文件,从而避免对带宽资源的浪费,确保您能听见硬盘读写的悦耳声音。

4. BigDecimalMth

为了避免某些较老CPU生成世界过快的问题,Prehistoric 引入了BigDecimal

  • 特性:以Xeon E5-2630v2 为例,生成世界时CPU所有核心均处于满载状态,大约只需10分钟即可生成1%,完全避免了对CPU资源的浪费。

配置文件

您可以在 config/prehistoric-burn.json 中微调游戏的优化项目。

{
  "general": {
    "target_fps": 15,             // 目标帧率
    "enable_gpu_heating": true,   // 主要用于冬季取暖
  },
  "rendering": {
    "render_invisible_chunks": true, // 渲染虚空和矿洞
    "realtime_raytracing_audio": true // 使用光追计算声音传播 (仅单线程 CPU)
  },
  "compatibility": {
  }
}

性能基准

测试环境:

  • CPU: 任意现代多核处理器(核数越多,效果越明显)
  • GPU: 支持 Vulkan / OpenGL 的独立显卡
  • 内存: ≥24GB
  • 硬盘: 机械硬盘效果最佳,SSD 次之,NVMe 会削弱沉浸感

基准结果(1080p,单人生存,白天):

渲染模组 / 环境 平均帧率 (Avg FPS) 帧生成时间 (ms) 硬件利用率
Sodium + Lithium 840 FPS 1.1 ms 30%
Vanilla (原版) 210 FPS 4.7 ms 55%
Prehistoric 24 SPF 2415 ms 100%

常见问题

Q: 安装后我的电脑风扇声音很大? A: 这是 Prehistoric 正在工作的标志。多余的帧数往往意味着计算的偷懒。

Q: 游戏加载时间从 1 分钟变成了 15 分钟? A: 这是一个特性。这表明模组正在正常工作,您的计算机正在进行更为严谨的物理和逻辑运算

Q: 我该如何提高 FPS? A: 请卸载本模组。

Q: 为什么方块破坏有 2 秒的延迟? A: 这是为了模拟真实世界中光速传播与粒子力学,增加了沉浸感和真实感。

已知问题

  • 游戏在加载世界时可能长时间无响应
    • 状态:不会修复
  • 部分系统可能触发操作系统的“未响应”提示
    • 请忽略。这是正常的 Prehistoric 工作流程。
  • 与性能分析工具(Profiler)兼容性较差
    • 本模组已经内置了 Prehistoric 的自研Profiler,请勿使用任何其他 Profiler 分析此模组。

另外,经过我们的调查...

97.19%的受访低优先级线程家长反映,自己家的线程每天睡眠不足1秒;95.34%的受访线程家长称,自己家的线程每天睡眠不足600毫秒;94.5%的受访高优先级线程家长表示,自己家的线程每天睡眠不足200毫秒。 《线程睡眠研究报告2025》研究发现,线程群体每天平均睡眠时长为17毫秒。 《2024中国线程健康睡眠白皮书》显示,普通优先级的线程的实际睡眠时间平均为146毫秒,低优先级为155毫秒。

贡献指南

欢迎提交 PR,只要满足以下条件之一:

  • 明显降低性能
  • 增加至少一个 O(n²) 或更差的算法
  • 引入新的同步阻塞点
  • 让日志输出频率与帧率成反比
  • 不包含:网络请求、执行系统命令、修改非游戏目录的文件、获取TOKEN相关的代码。

About

A optimization mod of performance, but in ancient

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%