这是山岚幽阳全体成员共同设计的一个三维程序,暂未确定程序名称,暂时用mist指代该程序,于2019年6月下旬起正式开发。
这里共4个主要的分支
- master 主(web环境)分支,包括程序的使用文档
- window windows系统环境下,使用的分支
- linux linux(主要针对centos)等,使用的分支
- android 安卓手机平台使用的分支
以上除安卓分支只有渲染部分外,其余每个分支均包括逻辑与渲染两个部分。
本程序基于GUN通用公共许可证v3.0开源,源码就在这里的上述各分支内。 master分支的docs目录包含使用文档,其他位置可能存在一些相应的记录文档。 所有开发文档位于山岚幽阳的网站www.snang.cc中,开发设计与讨论等也位于那里。 这里接受漏洞等问题的反馈,交流与探讨同样请移步www.snang.cc。
我们根据不同环境选用了一些不同的语言与框架,但总体上是互通的,所有其他环境,均以web环境中情况作为标准进行扩展。 同时web环境只提供主要功能,即预览。具体实现落实位于各个环境中。 web环境渲染部分使用three,逻辑部分使用nodeJS(或者可能考虑使用GO),同时提供electron打包后的应用。 web环境在使用其他库类框架的同时,自建用于该3D程序的总框架。 其他环境依赖于web环境提供的大致框架与实现,使用如cpp等语言,编写性能更高,功能更全的应用实现。
渲染部分:
- 对用户输入的处理,计算用户位置,和一些obj的拆分与合并,将位置与改变传递给逻辑部分;
- 对逻辑部分返回的处理,根据返回的更改内容和区块信息,将变动等渲染,并呈现给用户;
逻辑部分:
- 对渲染部分传递的信息的处理,根据传递的信息,对存档进行处理,并返回相应结果;
- 对全局的处理,对全局农作物的生长,地质的变化等进行计算,并应用到存档;
- 当服务端与用户端分离时,对渲染部分传递信息的简单检查,如检查改变前后物质的大致相等,确保非恶意数据传入;
总分工说明: 以上仅列举两部分,理论上应单独负责的内容,全局环境下,两部分分工还根据实际情况展开,可能与上述列举存在些许差异。 渲染部分与逻辑部分理论上,独立且互通。任何平台逻辑部分,都理应通过网络与任意平台渲染部分可配套使用。 安卓端为避免存档占用过大存储空间,不存在存档的逻辑部分,通过网络与其他平台配合使用,将空间充分用于渲染部分的模型存放等。