Skip to content

Introducing Project

Mouse edited this page Feb 14, 2023 · 19 revisions

项目介绍

用模组构建你的游戏。

Build your game with mods.

项目描述

本项目为一款模组化游戏引擎。开发语言为Java,渲染后端为OpenGL 4.2Vulkan。本项目目前专注于为创建体素沙盒3D游戏提供支持。

项目特色

  1. 模组构成游戏,原生模组接口支持。
  2. 开源项目,更利于创作者开发和学习交流。
  3. 优秀图形支持,OpenGL、Vulkan双渲染后端支持,配置式渲染管线。
  4. 游戏内编辑器,助力游戏内容创作。
  5. 统一的社区,为玩家、创作者和服务器提供交流展示平台。

时间表

  • 2018年4月6日: 项目立项。
  • 2019年7月7日: 引擎Alpha版本发布。
  • 2019年10月3日: 引擎Alpha Update 1(Demo计划)版本发布。
  • 2020年3月16日: 引擎Alpha Update 2(渲染更新)版本发布。

常见问题(FAQ)

Q:为什么要自己开发游戏引擎?使用市面上成熟的游戏引擎如Unity或者Unreal不是更好吗?

本项目开发者对版权和代码有着强烈的控制欲。自主开发引擎可让服务器运营者能没有后顾之忧地去运营服务器,避免他们以版权和商业纠纷等问题而陷入困境。同时也希望能够为开发者尽可能地保证开发接口的稳定和向下兼容,让开发者免于游戏更新所造成的劳顿之苦。

Q:既然不乐意使用商业级游戏引擎,为什么不使用已开源的游戏引擎?

大部分仍在活跃的开源游戏引擎大都采用C++或其他语言编写,使用Java语言开发的开源游戏引擎有jMonkeyEngine、libgdx等,但这些引擎均仅对渲染部分进行了封装,对于游戏逻辑的开发没有实际的帮助。此外由于本项目的性质,对游戏引擎有一些特殊的要求,从零开发游戏引擎也可以使开发者更透彻地去理解游戏引擎是如何工作的,有利于今后对游戏引擎的开发维护。

Q:为什么要使用Java语言?选择使用C++、C#或Kotlin不是更好吗?

Java是本项目开发者的首选开发语言,使用其他语言开发对于开发者来说,存在着一定的学习成本和不必要的使用风险。

C++虽然有着自由内存管理和可优化至更高性能的优点,但对于掌握不佳的初学者来说未必能发挥出它的十分之一功力,反而可能会造成更多的问题。

C#对Windows平台支持良好,也有着直接调用动态链接库、创建值类型等优异特性,这些特性能帮助游戏更好地提高性能,但其开发生态和工具链仍不完备,且主要以Unity为主。

Kotlin语法糖众多,且正受Java开发者的热捧,但其目前受众较少,Java语法在其中不是合法语法,使得开发者不得不完全抛弃Java,而使用Java开发项目则完全可以使用Kotlin开发模组。

Q:为什么不使用Lombok?

Lombok虽然能够帮助开发者简化代码,但其提供的特性均可使用IDE快捷键进行补全,并不能有效提升开发效率,同时其也会成为新晋开发者的学习成本。

Q:为什么不重写Terasology和Minetest这些开源体素沙盒游戏呢?

Terasology由Java开发,虽然有着良好的扩展性和简洁的代码,但仍使用的是OpenGL的固定管线,重写难度大。

Minetest由C++开发,使用的是Lua作为游戏扩展语言,其开发和调试的难度大,而且使用C++也同样会遇到上述的困难。

Chunkstories由Kotlin开发,使用了较新的Kotlin语言,但抛开使用该语言会遇到的困难以外,其作者也仍在活跃中,且其对玩家社区的建设并不感冒。

Q:游戏引擎的目标太大了,能不能做完?

我们并不是以技术为目的来开发游戏引擎的,所以我们的游戏引擎的技术并不是相当先进,开发时的大多数功能依赖于他人现有的解决方案。唯一阻碍我们的是如何设计一个高扩展,稳定,高效的模组开发接口。

Q:是不是跟某款游戏太像了?

**本项目所有源代码和艺术资源均无版权纠纷。**本项目受Minecraft启发,但我们主要目的是针对其没有稳定的开发接口,无官方的开放玩家社区,难以使用基于该游戏衍生出的内容获取报酬的痛点进行改进。尤其是目前基岩版愈加到其开发商的重视,旧Java版的地位岌岌可危,加密的代码和封闭的内容市场可能会阻碍创作者创意的展现。

体素沙盒的最标志性的玩法,方块的采掘与放置,我们无法于此之上再做创新。针对其生存模式,将对其我们认为的设计不妥之处加以改进。此外也会考虑加入新的玩法,如太空沙盒、角色扮演等。

Q:是否有支持移动端的计划呢?

由于本项目的特性,使用移动端游玩本游戏无法体验本游戏的全部内容和功能,同时也限于开发者的能力,所以暂时仅计划支持PC端。移动端支持与否在未来视情况而定。

Clone this wiki locally