自从我上次写开发人员日记以来已经有一段时间了,但是考虑到我现在有更多时间专注于这个项目并且正在研究其中的新内容,为此迟来总比没有好。 当然,在过去的几周里,我一直在这里和那里从事这个项目,所以我很可能会漏掉一些细节。
如果您不能通过帖子的标题来分辨,那么Musical Chairs(名称为TBD)是一个在线项目。 我想尝试使用Unity不太“易于实现的多人游戏”(也称为UNet)制作游戏。 最后,在处理较大的项目时,多人游戏不是,也不应该成为项目的一部分。 有一个框架,对我个人而言,实现多人游戏功能时我的编码方式发生了改变。
第一件事第一
我只是不知道从哪儿开始,我看过教程并阅读了Unity文档,但是他们无法告诉我如何使游戏正常运行 。 坦白地说,我在过去的所有项目中都很难做到这一点,但是技术规范文档是您的圣杯,对于联网而言,这很重要。
与单人游戏或本地多人项目(不包括分屏)不同,“玩家”并不是唯一的玩家。 每个人都需要成为焦点,因此您需要辨别什么是本地控制的,什么是服务器控制的以及如何控制。 通过编写技术规范文档,我不必回溯代码块或系统即可使其适用于多人游戏。
用户界面
对于音乐椅子,我的主要重点是UI,因此是多人游戏。 多人游戏要求用户体验在UX中具有一定的质量和功能,才能提供令人愉悦的在线体验。 不幸的是,在线多人游戏并不是我在uni期间专门学习或专注于的时间,我必须从头开始学习该项目。
这使我一遍又一遍地放下项目,或者只是卡在可能像application.loadLevel("LevelName")
这样简单的事物上,却变成了一个全新的页面,其中包含游戏选项, application.loadLevel("LevelName")
选项等等。 MonoBehaviour中没有的函数,但某些使用NetworkBehaviour的函数,而另一些使用NetworkLobbyBehaviour的函数,这意味着并非MonoBehaviour的所有函数都是可能的。

除非您使用默认的多人游戏GUI,否则在与其他人进行在线匹配时,Unity并不能帮助您建立大厅。 不幸的是,您看不到它是如何完成的,因此您无法重用这些功能,并且UNet文档非常简陋,在撰写本文时,我仍在研究本质上只是多人GUI HUD的内容。 左侧是UNet大厅管理器,它是使用Unity进行多人游戏大厅所需要的一切。 但是,从根本上讲,它给您带来了很多麻烦,使您很难理解到底发生了什么。 在撰写此开发者日记时,我整天都在学习UNet,而Musical Chairs已从UI的重点变成了网络学习的体验。
下一个音乐椅日记
自从写这篇日记以来,我将写我对UX网络的看法是如何演变的(这是UNet的艰苦奋斗),而我将进一步研究如何预先计划如何帮助实际的游戏玩法本身。 与“菜单”不同,我无法确切看到它会如何变化到我的想象,所以我将等到完成为止。