原以为是一件简单的试验来学习Microsoft Orleans。

我试图实现这样的想法:如果可以模拟一个Minecraft风格的世界,使用Orleans管理世界的每个单元。

这就是全部。

没有雄心勃勃的MMO计划,也没有浩瀚的设计文件。我只是尝试了解Orleans的actor/grain如何工作。以便通过让世界中方块出现来实现这一点。

然后它工作了。

然后我添加了玩家。

然后我添加了道具箱。

然后我添加了服务器有权颁布状态。

然后我添加了过程式世界生成。

然后我添加了水平扩展来测试单个世界能支持多少玩家,答案是……我没有预期的这么多玩家。

然后我意识到,我不意外的在不小心编建 voxel MMO 的后端。

呃。

客户端最初使用的Vite和ThreeJS,这还真的可以,但后来我添加了Blender模型、预设预览器、编辑器工具、纹理工作流程等等一堆鸡汤。

最终我意识到,我花费的时间超过实际开发游戏的时间。我打造了一款非常糟糕的Vite编辑器,它其实想跟Unity一样成为一哥。哈哈。

所以周末,我将客户端迁移到了Godot.NET ,结果就是这样。

在这里,Godot仅仅是一个客户端,它处理用户输入、渲染、UI等功能。不过后端Orleans仍然控制着整个世界、块、道具箱和游戏状态。当你探索的时候,服务器会动态生成块并将它发送给客户端。

截图是非常早期非常粗糙的,但我只是想分享一下,因为我觉得它很酷。

简要的说法:
开始学习Microsoft Orleans,结果发展成一个Voxel Game w MMO规模。