模拟板块构造、侵蚀等的地球生成器。
项目描述
WorldEngine - 地球生成器
=========================
[](https://coveralls.io/github/Mindwerks/worldengine?branch=master) [](https://travis-ci.org/Mindwerks/worldengine) [](https://ci.appveyor.com/project/ftomassetti/worldengine)
_当前稳定版本为0.19.0_
您可以生成自己世界的相关数据,包括一系列图像(高度图、生物群落等)。
例如
```bash
worldengine world -s 1 -n seed1
```
世界是通过板块模拟、侵蚀、雨影、Holdridge生命区模型以及许多其他现象来生成的。
创建的世界可以用来模拟文明的演变(参见项目[civs](https://github.com/ftomassetti/civs))。
还可以生成额外的地图,例如古老外观的地图
```bash
worldengine ancient_map -w seed1.world
```

我们创建了一个[Google组](https://groups.google.com/forum/?hl=en#!forum/worldengine):如果您有任何想法、问题、建议或希望贡献力量,请[加入我们](https://groups.google.com/forum/?hl=en#!forum/worldengine)!
互操作性(Python,Java)
===============================
我们非常乐意看到WorldEngine与其他工具一起使用。由WorldEngine生成的世界可以加载到Python应用程序中,使用WorldEngine作为库。Java应用程序可以使用[WorldEngine-Java](https://github.com/Mindwerks/worldengine-java),这是一个用于加载WorldEngine文件的Java库。
世界可以使用protobuf格式或hdf5保存,这些格式在多种语言中都有库。我们一直在努力支持更多格式,并且总是乐于探讨改进互操作性的方法。
二进制包
===============
Windows、Linux和Mac的二进制包可以在[发布页面](https://github.com/Mindwerks/worldengine/releases)找到。
图形界面
===
一个实验性的(并且有限的)图形界面作为单独的项目提供:[https://github.com/Mindwerks/worldengine-gui](https://github.com/Mindwerks/worldengine-gui)。
安装
=======
### 使用pip
```
目前尚未发布到pypi,您可能仍然想使用Lands或WorldSynth
或者下载源代码
pip install worldengine
```
### 从源代码
```
git clone或下载代码
### 单元测试:同时克隆worldengine-data
git clone git@github.com:Mindwerks/worldengine-data.git ../worldengine-data
nosetest tests
```
### Windows上的安装
如果您想在Windows上安装Worldengine,您可以阅读这些[说明](https://github.com/Mindwerks/worldengine/wiki/Installing-Worldengine-on-Windows)。
可执行文件也位于[发布](https://github.com/Mindwerks/worldengine/releases)下,但目前正在过时。
注意:您还需要在同一个文件夹中包含worldengine src目录的副本。
依赖项
============
图形界面基于QT,因此您需要安装它们
输出
======
该程序生成一个二进制格式,其中包含生成世界的所有数据以及一系列图像。例如,种子1生成。
## 高程地图

## 降水量地图

## 温度地图

## 生物群落地图

## 海洋地图

有几种可选输出和许多选项来控制结果。[手册](http://worldengine.readthedocs.org/en/latest/)是您的良师益友!
使用方法
=====
```
worldengine [选项] [世界|板块|古地图|信息]
```
有关所有可能的选项的详细信息,请参阅[手册](http://worldengine.readthedocs.org/en/latest/)。
例如,这些命令
```python
worldengine -s 4 -n an_example -q 25 -x 2048 -y 2048
```
产生以下输出
```
Worldengine - 世界生成器(v. 0.19.0)
-----------------------
操作:世界生成
种子:4
名称:an_example
宽度:2048
高度:2048
板块数量:25
世界格式:protobuf
黑白地图:False
步骤:完整
灰度高度图:False
河流地图:False
散点图:False
淡化边界:True
开始(可能需要几分钟)...
生成输出
* 世界数据保存在'./an_example.world'
* 海洋图像生成在'./an_example_ocean.png'
* 降水量图像生成在'./an_example_precipitation.png'
* 温度图像生成在'./an_example_temperature.png'
* 生物群落图像生成在'./an_example_biome.png'
* 高程图像生成在'./an_example_elevation.png'
...完成
```
这是相应的古地图
```python
worldengine ancient_map -w an_example.world
```

算法
=========
世界生成算法经过不同的阶段
* 板块模拟:这是获得适当山脉链的最佳方法。为此使用了[pyplatec](https://github.com/Mindwerks/pyplatec)
* 在不同步骤中使用噪声技术
* 考虑纬度和雨影效应来计算降水量
* 计算侵蚀
* 计算每个区域的湿度
* 计算地形渗透率
* 使用 [Holdridge 生命带模型](http://en.wikipedia.org/wiki/Holdridge_life_zones) 计算生物群落
开发
===========
使用 virtualenv 你可以创建一个用于开发的沙盒。
Python 2
--------
```bash
virtualenv venv
source venv/bin/activate
pip install --upgrade pip setuptools
pip install -r requirements-dev.txt
python worldengine
```
Python 3
--------
```bash
virtualenv venv -p /usr/bin/python3
source venv/bin/activate
pip install --upgrade pip setuptools
pip install -r requirements-dev.txt
python worldengine
```
分发
============
我们使用 PyInstaller 将所有内容封装成一个二进制文件。
这将创建一个位于 `dist/worldengine` 的二进制文件,其中包含所有
必需的库以运行。
### Linux
由于我们使用的库,最好使用它们的 `develop` 分支。
```bash
pip install git+https://github.com/pyinstaller/pyinstaller.git@develop
pyinstaller --clean -F -n worldengine worldengine/__main__.py
```
### OSX
你需要安装 brew,这应该会给你所有需要的工具。
```bash
pyinstaller --clean -F -n worldengine worldengine/__main__.py
```
目前,它没有从 protobuf 汇集所有内容。因此,你需要
将 google/protobuf python 复制到 dist/google/protobuf 并在
dist/google 中创建 __init__.py
### Windows
将 Windows 转换成开发者环境是一个漫长且复杂的过程。
我会尽量让这个过程尽可能简短和直接。
记住,如果你是 win32 或 win64,那么你下载和安装的所有内容
都是同一类型,但不能同时是两者。
你需要安装 msysgit:https://msysgit.github.io/,这将为你提供一个
类似 Linux 的环境。之后,克隆仓库并安装 Windows 的 Python 2.7:
https://pythonlang.cn/downloads/windows/ 这将为你提供 pip
这是后续步骤所必需的。首先需要使用 pip 安装 virtualenv。
布局与 Linux 略有不同。
```bash
virtualenv venv
venv/Scripts/pip install -r requirements.txt
```
Numpy 安装将失败,因此你需要下载预编译的 wheel 文件并
使用 pip 安装它。http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
numpy‑1.9.2+mkl‑cp27‑none‑win_amd64.whl
根据你的架构选择一个,32 或 64。
```bash
venv/Scripts/pip install ../numpy‑1.9.2+mkl‑cp27‑none‑win_amd64.whl
```
下一步是获取 pywin32,它是 Python 的 win32api 钩子,在下载时,
你需要选择 32 位或 64 位,否则将无法工作。你也将
通过 pip 安装它。http://sourceforge.net/projects/pywin32/files/pywin32/
```bash
venv/Scripts/pip install ../pywin32-219.win-amd64-py2.7.exe
```
最后一步是安装 pyinstaller,这可能有些棘手
因为我们目前必须使用一个“足够好”的特定修订版本。
问题正在这里追踪:https://github.com/pyinstaller/pyinstaller/issues/1291
```bash
venv/Scripts/pip install git+https://github.com/pyinstaller/pyinstaller.git@67610f2
venv/Scripts/pyinstaller --clean --console -F -n worldengine worldengine/__main__.py
```
你有问题或改进建议吗?
=====================================================
请给我们写信!
你可以写信给我们:
* f _dot_ tomassetti _at_ gmail _dot_ com
* psi29a _at_ gmail _dot_ com
谢谢,所有的反馈对我们来说都很宝贵!
使用 WorldEngine 的项目
==========================
WorldEngine 被用于多个产品中,我们开始在这里列出它们
* [Lost Islands](https://wl.widelands.org/maps/lost-islands/) WorldEngine 已被用于为开源实时策略游戏 [Widelands](https://widelands.org) 生成地图
* [AX:EL - Air XenoDawn](http://store.steampowered.com/app/319830) 在 Steam 上发布的科幻空战商业游戏
如果你使用 WorldEngine,请告诉我们!
贡献者
============
本项目由[Bret Curtis](https://github.com/psi29a)和[Federico Tomassetti](https://github.com/ftomassetti)维护。
所有贡献、问题、想法都备受欢迎!
请随时在[google group](https://groups.google.com/forum/?hl=en#!forum/worldengine)中提出问题或留言。
我们想感谢在开发WorldEngine及其衍生项目过程中给予我们帮助的各位伟大的人。
* [Evan Sampson](https://github.com/esampson)贡献了令人惊叹的Holdridge生命带模型实现,并极大地改进了古老的地图、生物群落、降水和温度生成器。万分感谢!
* [Ryan](https://github.com/SourceRyan)贡献了Windows二进制版本,并在Reddit上讨论Lands,吸引了大量用户。万分感谢!
* [stefan-feltmann](https://github.com/stefan-feltmann)使Lands依赖于pillow而不是PIL(已弃用),这也有助于迁移到Python 3。万分感谢!
* [Russell Brinkmann](https://github.com/rbb)帮助在生成的世界中保存生成参数(以便我们可以再次生成相同的世界,例如),改进了命令行选项,并添加了跟踪信息(对于理解各种生成步骤的性能很有用)
* [Joshua Coppola](https://github.com/pangal)实现了卫星视图。非常感谢,它看起来很棒!
* [Stephan](https://github.com/tcld)让WorldEngine充分利用numpy,帮助加快生成速度。他还使世界生成更加可重复,并帮助提高了与Python 3的兼容性。
历史
=======
WorldEngine是通过合并Lands和[WorldSynth](https://github.com/psi29a/worldsynth)创建的。
最后一个Lands版本是0.5.3,最后一个WorldSynth版本是0.12,第一个WorldEngine版本是0.18。
许可证
=======
WorldEngine可在MIT许可证下使用。您应在项目的根目录中找到LICENSE。
=========================
[](https://coveralls.io/github/Mindwerks/worldengine?branch=master) [](https://travis-ci.org/Mindwerks/worldengine) [](https://ci.appveyor.com/project/ftomassetti/worldengine)
_当前稳定版本为0.19.0_
您可以生成自己世界的相关数据,包括一系列图像(高度图、生物群落等)。
例如
```bash
worldengine world -s 1 -n seed1
```
世界是通过板块模拟、侵蚀、雨影、Holdridge生命区模型以及许多其他现象来生成的。
创建的世界可以用来模拟文明的演变(参见项目[civs](https://github.com/ftomassetti/civs))。
还可以生成额外的地图,例如古老外观的地图
```bash
worldengine ancient_map -w seed1.world
```

我们创建了一个[Google组](https://groups.google.com/forum/?hl=en#!forum/worldengine):如果您有任何想法、问题、建议或希望贡献力量,请[加入我们](https://groups.google.com/forum/?hl=en#!forum/worldengine)!
互操作性(Python,Java)
===============================
我们非常乐意看到WorldEngine与其他工具一起使用。由WorldEngine生成的世界可以加载到Python应用程序中,使用WorldEngine作为库。Java应用程序可以使用[WorldEngine-Java](https://github.com/Mindwerks/worldengine-java),这是一个用于加载WorldEngine文件的Java库。
世界可以使用protobuf格式或hdf5保存,这些格式在多种语言中都有库。我们一直在努力支持更多格式,并且总是乐于探讨改进互操作性的方法。
二进制包
===============
Windows、Linux和Mac的二进制包可以在[发布页面](https://github.com/Mindwerks/worldengine/releases)找到。
图形界面
===
一个实验性的(并且有限的)图形界面作为单独的项目提供:[https://github.com/Mindwerks/worldengine-gui](https://github.com/Mindwerks/worldengine-gui)。
安装
=======
### 使用pip
```
目前尚未发布到pypi,您可能仍然想使用Lands或WorldSynth
或者下载源代码
pip install worldengine
```
### 从源代码
```
git clone或下载代码
### 单元测试:同时克隆worldengine-data
git clone git@github.com:Mindwerks/worldengine-data.git ../worldengine-data
nosetest tests
```
### Windows上的安装
如果您想在Windows上安装Worldengine,您可以阅读这些[说明](https://github.com/Mindwerks/worldengine/wiki/Installing-Worldengine-on-Windows)。
可执行文件也位于[发布](https://github.com/Mindwerks/worldengine/releases)下,但目前正在过时。
注意:您还需要在同一个文件夹中包含worldengine src目录的副本。
依赖项
============
图形界面基于QT,因此您需要安装它们
输出
======
该程序生成一个二进制格式,其中包含生成世界的所有数据以及一系列图像。例如,种子1生成。
## 高程地图

## 降水量地图

## 温度地图

## 生物群落地图

## 海洋地图

有几种可选输出和许多选项来控制结果。[手册](http://worldengine.readthedocs.org/en/latest/)是您的良师益友!
使用方法
=====
```
worldengine [选项] [世界|板块|古地图|信息]
```
有关所有可能的选项的详细信息,请参阅[手册](http://worldengine.readthedocs.org/en/latest/)。
例如,这些命令
```python
worldengine -s 4 -n an_example -q 25 -x 2048 -y 2048
```
产生以下输出
```
Worldengine - 世界生成器(v. 0.19.0)
-----------------------
操作:世界生成
种子:4
名称:an_example
宽度:2048
高度:2048
板块数量:25
世界格式:protobuf
黑白地图:False
步骤:完整
灰度高度图:False
河流地图:False
散点图:False
淡化边界:True
开始(可能需要几分钟)...
生成输出
* 世界数据保存在'./an_example.world'
* 海洋图像生成在'./an_example_ocean.png'
* 降水量图像生成在'./an_example_precipitation.png'
* 温度图像生成在'./an_example_temperature.png'
* 生物群落图像生成在'./an_example_biome.png'
* 高程图像生成在'./an_example_elevation.png'
...完成
```
这是相应的古地图
```python
worldengine ancient_map -w an_example.world
```

算法
=========
世界生成算法经过不同的阶段
* 板块模拟:这是获得适当山脉链的最佳方法。为此使用了[pyplatec](https://github.com/Mindwerks/pyplatec)
* 在不同步骤中使用噪声技术
* 考虑纬度和雨影效应来计算降水量
* 计算侵蚀
* 计算每个区域的湿度
* 计算地形渗透率
* 使用 [Holdridge 生命带模型](http://en.wikipedia.org/wiki/Holdridge_life_zones) 计算生物群落
开发
===========
使用 virtualenv 你可以创建一个用于开发的沙盒。
Python 2
--------
```bash
virtualenv venv
source venv/bin/activate
pip install --upgrade pip setuptools
pip install -r requirements-dev.txt
python worldengine
```
Python 3
--------
```bash
virtualenv venv -p /usr/bin/python3
source venv/bin/activate
pip install --upgrade pip setuptools
pip install -r requirements-dev.txt
python worldengine
```
分发
============
我们使用 PyInstaller 将所有内容封装成一个二进制文件。
这将创建一个位于 `dist/worldengine` 的二进制文件,其中包含所有
必需的库以运行。
### Linux
由于我们使用的库,最好使用它们的 `develop` 分支。
```bash
pip install git+https://github.com/pyinstaller/pyinstaller.git@develop
pyinstaller --clean -F -n worldengine worldengine/__main__.py
```
### OSX
你需要安装 brew,这应该会给你所有需要的工具。
```bash
pyinstaller --clean -F -n worldengine worldengine/__main__.py
```
目前,它没有从 protobuf 汇集所有内容。因此,你需要
将 google/protobuf python 复制到 dist/google/protobuf 并在
dist/google 中创建 __init__.py
### Windows
将 Windows 转换成开发者环境是一个漫长且复杂的过程。
我会尽量让这个过程尽可能简短和直接。
记住,如果你是 win32 或 win64,那么你下载和安装的所有内容
都是同一类型,但不能同时是两者。
你需要安装 msysgit:https://msysgit.github.io/,这将为你提供一个
类似 Linux 的环境。之后,克隆仓库并安装 Windows 的 Python 2.7:
https://pythonlang.cn/downloads/windows/ 这将为你提供 pip
这是后续步骤所必需的。首先需要使用 pip 安装 virtualenv。
布局与 Linux 略有不同。
```bash
virtualenv venv
venv/Scripts/pip install -r requirements.txt
```
Numpy 安装将失败,因此你需要下载预编译的 wheel 文件并
使用 pip 安装它。http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
numpy‑1.9.2+mkl‑cp27‑none‑win_amd64.whl
根据你的架构选择一个,32 或 64。
```bash
venv/Scripts/pip install ../numpy‑1.9.2+mkl‑cp27‑none‑win_amd64.whl
```
下一步是获取 pywin32,它是 Python 的 win32api 钩子,在下载时,
你需要选择 32 位或 64 位,否则将无法工作。你也将
通过 pip 安装它。http://sourceforge.net/projects/pywin32/files/pywin32/
```bash
venv/Scripts/pip install ../pywin32-219.win-amd64-py2.7.exe
```
最后一步是安装 pyinstaller,这可能有些棘手
因为我们目前必须使用一个“足够好”的特定修订版本。
问题正在这里追踪:https://github.com/pyinstaller/pyinstaller/issues/1291
```bash
venv/Scripts/pip install git+https://github.com/pyinstaller/pyinstaller.git@67610f2
venv/Scripts/pyinstaller --clean --console -F -n worldengine worldengine/__main__.py
```
你有问题或改进建议吗?
=====================================================
请给我们写信!
你可以写信给我们:
* f _dot_ tomassetti _at_ gmail _dot_ com
* psi29a _at_ gmail _dot_ com
谢谢,所有的反馈对我们来说都很宝贵!
使用 WorldEngine 的项目
==========================
WorldEngine 被用于多个产品中,我们开始在这里列出它们
* [Lost Islands](https://wl.widelands.org/maps/lost-islands/) WorldEngine 已被用于为开源实时策略游戏 [Widelands](https://widelands.org) 生成地图
* [AX:EL - Air XenoDawn](http://store.steampowered.com/app/319830) 在 Steam 上发布的科幻空战商业游戏
如果你使用 WorldEngine,请告诉我们!
贡献者
============
本项目由[Bret Curtis](https://github.com/psi29a)和[Federico Tomassetti](https://github.com/ftomassetti)维护。
所有贡献、问题、想法都备受欢迎!
请随时在[google group](https://groups.google.com/forum/?hl=en#!forum/worldengine)中提出问题或留言。
我们想感谢在开发WorldEngine及其衍生项目过程中给予我们帮助的各位伟大的人。
* [Evan Sampson](https://github.com/esampson)贡献了令人惊叹的Holdridge生命带模型实现,并极大地改进了古老的地图、生物群落、降水和温度生成器。万分感谢!
* [Ryan](https://github.com/SourceRyan)贡献了Windows二进制版本,并在Reddit上讨论Lands,吸引了大量用户。万分感谢!
* [stefan-feltmann](https://github.com/stefan-feltmann)使Lands依赖于pillow而不是PIL(已弃用),这也有助于迁移到Python 3。万分感谢!
* [Russell Brinkmann](https://github.com/rbb)帮助在生成的世界中保存生成参数(以便我们可以再次生成相同的世界,例如),改进了命令行选项,并添加了跟踪信息(对于理解各种生成步骤的性能很有用)
* [Joshua Coppola](https://github.com/pangal)实现了卫星视图。非常感谢,它看起来很棒!
* [Stephan](https://github.com/tcld)让WorldEngine充分利用numpy,帮助加快生成速度。他还使世界生成更加可重复,并帮助提高了与Python 3的兼容性。
历史
=======
WorldEngine是通过合并Lands和[WorldSynth](https://github.com/psi29a/worldsynth)创建的。
最后一个Lands版本是0.5.3,最后一个WorldSynth版本是0.12,第一个WorldEngine版本是0.18。
许可证
=======
WorldEngine可在MIT许可证下使用。您应在项目的根目录中找到LICENSE。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分布
worldengine-0.19.0.tar.gz (64.1 kB 查看哈希)
构建分布
worldengine-0.19.0-py2.py3-none-any.whl (62.7 kB 查看哈希)
关闭
worldengine-0.19.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26824f5e0bdff1800e060af21983131e39ba82f3e024258820ac45523fb8d772 |
|
MD5 | c9e5e06abd2c590cf7dc82deede2ccc7 |
|
BLAKE2b-256 | b13c17a67bbb366e5660cac9d2ef3dfcedec2814f583f98dd7d890228aca2be2 |
关闭
worldengine-0.19.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f2a0aeb9436463abd412fcbdcfe927837716ad7db81e7b15ded3e0027b8b183 |
|
MD5 | a9dbfd6db4e01df2bff2670c92ab61ea |
|
BLAKE2b-256 | aa767e3a6d04391c3065de8ed4315302cde84805d1f6f2355d4a461e462c9d0f |