一直以来都想做一个自己的游戏,玩了MC之后更是觉得这个是自己想要的游戏。

然而Minecraft有很多缺点,既然它不开源只好自己做一个了,权当实现自己的梦想。

我对MC的一些想法

首先,一个开放的地图格式必不可少。理想情况下,高端玩家可以通过第三方工具直接读写地图存档。

而且,MC里修建建筑等有个很大的问题,WorldEdit并不好用。我不是说WE不好,问题是在MC现有的框架先没法更好的制作地图。一个良好的内置地图编辑器是必不可少的,最起码需要有平滑更改地形起伏, 放置不规则形状河道和湖的功能,这样地图作者在构建属于自己的世界时不会浪费过多的精力在地形的打造上。这应该是游戏厂商提供的工具之一。

其次,应该有一套简单的脚本系统,MC现在的JSON命令能做的事还是太少了,如果引入简单的脚本系统比如JavaScript、Groovy、Lua,整个地图的可玩性会得到极大地提升。

想象一下,你现在做了一张生存地图,想播放特定的音效,最好的办法是Game.playsound("example.ogg")一句话搞定,然而在MC里做不到,很多地图里的哭声是靠不停地刷恶魂宰恶魂实现的。(内牛满面君那么可爱为什么要伤害它)

如果这种游戏引入了可以和游戏内核交互的脚本系统,生存冒险地图的可玩性会直线上升!而且地图作者的压力也会减少很多,不用想办法触发闪电了,也不用弄自动宰恶魂机了,轻轻松松一句代码实现。

而且这个游戏对建筑党也不是很友好,想一下你是不是经常缺少某些颜色的方块?彩色羊毛什么的根本不够用啊!如果我做的话,至少会有一个RGB的颜色刷,方便改颜色。(1.12.2的彩色混凝土是个好东西,可惜颜色还是太少了)

我的计划

  1. 实现一个基本的体素世界
  2. 实现一个内置脚本系统
  3. 实现一个方便的地形魔改工具
  4. 增加一系列怪物、武器
  5. 增加NPC,对话和UI系统
  6. 开放更多的引擎接口给脚本
  7. 联机支持

这个游戏我打算用LibGDX+Kotlin来写,究其原因,主要是这种游戏需要使用OOP来描述世界。我无法想象使用面向过程语言怎么描述这个世界,那画面太美不敢想。 而且,Kotlin作为JVM上的语言,有两个优势,一个是可以利用海量的Java库(包括大量现成的脚本解析器),第二个是可以实现动态加载class来支持重型MOD。

Minecraft很成功的一点是开创了一种游戏的类型,在此之前没人这么干过。其次是给力的社区补全了很多很多的缺点,但是受限于版权问题,这些社区MOD不得不用尽邪术才能实现自己的功能,这是不友好的。

自从微软收购Minecraft之后,Java版几乎没有什么大规模的更新,一直在做修补,加一些无关痛痒的东西。可能在微软眼里,MC的未来是属于C++编写的基岩版MC,但是MC的精髓在于他的社区而不是游戏本体。 看看我自己开过的服就知道了,原版服1天凉,RPG地图能开的长一些两三天。只有MOD服可以玩很久,早期玩个一个月不是问题,虽然现在有各位秃子玩家疯狂刷科技树,那也能坚持个3-4天。这就证明,MC的吸引力就是那些无所不能的MOD, 是MC本体的世界给了他们空间,现在这个空间能维持多久真心不知道。如果有一天Java版停止更新,那这帮玩家也就没什么可以玩的了。