Skip to content

botany233/dsp_search_seed

Repository files navigation

戴森球计划种子搜索&查看器

搜索器特点

  • 搜索条件精细:本搜索器的条件分为星系、恒星、星球三级,支持随意组合,定制化筛选星球级别矿簇数、词条等内容
  • 模拟精度高:据我所知,本项目是目前唯一一个实现星球矿脉生成的工具,近乎100%还原了游戏中的矿脉数量,而非传统的矿簇数量
  • 搜索效率高:种子搜索部分使用运行效率更高的c++编写,单线程速度是DspFindSeed的20多倍(使用3蓝巨星条件进行测试)
  • 应用内置多线程,无需多开;支持导入种子列表进行二次搜索

image

查看器特点

  • 内置UI按星系、恒星、星球三级显示种子信息;允许手动或批量导入种子,导入格式与DspFindSeed的搜种结果兼容
  • 支持种子排序:允许根据恒星类型、星球类型、矿簇/矿脉数量等对种子进行排序,并展示相应的排序值
  • 允许自定义排序值:自定义排序中提供了现成的接口,可以方便的编写python代码判定种子的价值,用于排序

image

使用说明

通用

  • 矿簇/矿脉:矿簇对应游戏中集中的一片矿脉
  • 特殊条件:在种子搜索和查看器排序时,高产气巨可被视为气态巨星,但气态巨星不会被视为高产气巨
  • 快速模式:完整生成每个星球矿脉的性能开销极大,因此引入快速模式。在该模式中,使用的矿簇和矿脉数量为理论生成的最大值,实际生成数量大约为该值的0.8倍。快速模式对每个种子的性能开销基本一致

搜索器

  • 条件关系:星球条件可被设定为星系或恒星条件的子条件,恒星条件为星系条件的子条件。恒星条件需满足自身及其所有子条件才被判断为满足,星系条件同理。满足星系条件的种子将判定为合格并被记录
  • 启用停用条件:条件的勾选仅控制自身是否生效,不连锁至其子条件
  • 条件优化:对于未设置的条件,搜索时会自动跳过以提高性能,建议不要设置任何多余条件
  • 标准/快速模式性能:与搜索条件和GPU性能密切相关,优化建议见应用内教程界面
  • 存储格式:为.csv文件,每行为一个种子,种子id, 恒星数量,与DspFindSeed兼容
  • 二次搜索:导入一个或多个上述格式的文件以限定搜索范围

查看器

  • 种子列表:导入种子上限为10万个,有去重功能
  • 刷新延时:CPU模式完整获取一个种子信息大约需要3~10秒,启用GPU加速后一般<1秒。程序会缓存最近100个点击的种子信息,因此重复浏览一个种子时的刷新延时会显著降低
  • 标准/快速模式性能:CPU下标准模式比快速模式慢约20000倍,GPU下与GPU性能相关

设置

基础设置

  • 线程数:最高可设置为128线程,但实际的线程数不会超过CPU核心数
  • GPU加速:本程序依赖OpenCL加速星球地形生成,部分GPU可能不支持,此时请关闭该选项,算法将回退至CPU执行

GPU设置

  • 工作组大小:建议设置为GPU支持的最大值,若无法正常搜索请尝试减小该值
  • GPU设备:推荐使用性能最高的GPU以提高性能

支持的搜索条件

  • 星系级:
    • 14种矿簇最低数量:一个种子最高26簇单极磁石
    • 14种矿脉最低数量
  • 恒星级:
    • 恒星类型
    • 最低光照
    • 最远距离:输入0表示初始恒星系
    • 符合数量:需要满足该条件的恒星/恒星系数量
    • 14种矿簇最低数量:单极磁石仅在中子星和黑洞出现
    • 14种矿脉最低数量
  • 星球级:
    • 星球类型:有且仅有初始星球为地中海类型
    • 星球特点:即星球词条,其中多卫星词条只出现在气态行星(气态巨星、冰巨星、高产气巨),卫星词条不会出现在气态行星
    • 液体
    • 全包:不使用透镜时全球可接收,一个星系最多只有一个全包星
    • 全接收:使用透镜时全球可接收,一个星系最多只有两个全接收星
    • 符合数量:需要满足该条件的行星数量
    • 14种矿簇最低数量
    • 14种矿脉最低数量

已知Bug

  • 由于初始星球矿脉生成算法较为特殊,目前标准模式结果不可信

特别感谢

以下仓库在本项目开发过程中提供了或多或少的帮助, 特此感谢!