Monstadium开发博客-入门

嘿,其他机器人。 这是我为Monstadium开发的博客的第一部分。 我是谁? 我的名字叫克里斯托弗(Christopher),我是一个已婚的书呆子,他的妻子非常爱他,足以让他学习游戏设计和编程(目的是为了成为我的职业)。 我的老朋友埃里克(Eric)邀请我与他的几个其他同胞蒙斯塔德(Monstadium)一起开始一个宠物项目。 由我们的好朋友韦德(Wade)概念化的怪物召唤游戏。 韦德的兄弟犹大和我们的老友托比(我们的万事通)也在团队中。

自2月以来,我一直在全职工作,以使我们的游戏起步。 最初,我沉迷于Unity的机制,从我以前的一些游戏开发项目中就知道了-诸如玩家的HP伤害/治疗,怪物的状态效果等。很显然,我们想转向我们的多人版本单人游戏,所以我搬出了自己的舒适区。

我开始研究Unity暂时不推荐使用的Unet Unet。 由于这是我第一次尝试使这样的系统正常工作,因此我不得不学习很多有关服务器/主机/客户端关系的知识,这是我不熟悉的。 似乎为Unity创建了很多资产来更好地处理多人游戏,但是,Unity提供的灵活性似乎是无与伦比的,尽管使用HLAPI(高级API)和LLAPI(低级)会产生很多负面的污名-Level API)由Unity提供。

因此,决定涉足Unet,接下来的几天我不知疲倦地度过了(开个玩笑,我对此非常厌倦。)阅读Unet的文档并观看Youtube上的教程。 我从我的导师那里知道Unity / Unet使用服务器权威代码-意味着服务器控制着所有内容。 游戏中的任何玩家或对象都需要在服务器上具有一些参考。 对于我们的特定项目,最多只有2位玩家。 因此,比赛或游戏创建者将是服务器上的主机,这意味着他既充当服务器又充当客户端。 从那时起连接到游戏的任何人都只是一个客户。

我在编程中很快学到的一件事就是几乎看不到你走了多远。 联网脚本确实提高了我的程序员的耐心,我由于缺乏理解而感到沮丧。 有时,当它最困难时,只需坚持并前进即可。 就在我放弃希望并以为自己无能为力时,我偶然发现了Answers.Unity上的一则帖子,该帖子使(大多数)点连接在一起。 突然,我看见了光。

服务器控制着一切,因此播放器发出的任何命令都必须发送到服务器。 因此,我们希望玩家采取的任何行动都需要一种让客户或主持人执行这些行动的方式。 从某些研究看来,采取的任何措施都应通过过滤器。 如果玩家是主持人,它将被直接过滤到ClientRpc函数。 如果它们是客户端,它将首先通过Command函数运行,该函数实际上从THIS播放器向服务器发送一条消息。

举例来说,这就是我们在网络脚本中运行魔术师的咒语的方式。 如果玩家不是主机/服务器,它将运行CmdSpell,然后CmdSpell调用服务器的RpcSpell来告知两个玩家该咒语都消失了。