好的,我已经做了大约6个月的个人项目。我从一个新手编写器开始,只学习了Matlab和Java中的一些其他随机项目,试图从头开始制作游戏。
我在编程方面有一些教育背景(我已完成一些CS任务),当我被投入时,我倾向于理解事物。
我在使用Unity制作的游戏中遇到的当前问题是,我不确定在将其作为多人游戏提供时需要做些什么。
基本上游戏就像Supercell的Clash Royale,但我自己的版本。 Clash Royale对于那些不知道的人来说,是一个玩家与玩家的游戏,其中2个人连接有类似的"评级"。他们基本上使用奖杯来确定一名球员获得了多少输赢,并试图通过他们的奖杯来匹配球员。
目前,我正在逐步完成这一步。我的第一步是让2个人连接到游戏并看到两个玩家都在。在此之后我想添加一个角色,而对立的角色基本上应该让他们的屏幕翻转180度(这可以在Clash Royale中看到)。我目前的问题在于选择和理解如何使多人游戏工作。
我知道Unity支持客户端服务器,客户端作为主机,客户端服务器支持专用服务器。使用Unity内置Matchmaking的问题在于,只有20个CCU(并发用户)可以免费播放。然后价格从那里开始增加,我不确定我制作的游戏会有多受欢迎,因为这是我的第一场比赛。我想免费做到这一点并找到一个长期的解决方案,所以我以后没有重新编码。
我认为专用服务器可能对这样的项目来说太过分了,所以我认为这种方法可能不值得为这个游戏带来麻烦。
我相信在没有CCU用完的情况下,可以让2个用户在团结游戏中连接。然而,对于不同的网络而言,我不了解这一点。我认为这样做的唯一方法是通过端口转发,但我不确定手机游戏是否仍然如此。我也不确定这是不道德的。我对此事的看法是,人们几乎可以在任何地方玩电话游戏,毫无疑问。例如,使用机场玩Wi-Fi游戏并不是什么大问题。但那些允许玩家彼此连接的手机游戏是否使用端口转发或其他一种相互连接的方式?
如果端口转发是标准的并且不是什么大问题,那么我想我将继续学习如何编码端口转发,以便玩家可以互相自动加入。如果有不同/更好/更道德的方式,那么我宁愿研究如何做到这一点。
如果我需要澄清这个问题,请告诉我。 谢谢。
修改 收到一些评论后,听起来好像我需要一个公共服务器,以便用户可以访问该服务器。我的下一个问题是什么是最便宜的方法。我相信我可以使用备用电脑来运行服务器,但这是获得免费服务的最佳方式。服务器? (在技术上仍然需要为备用计算机上的维护/操作付费)。
我的理解是有几种方法来托管服务器,这些方式各不相同。我目前正在考虑的方式,如果可能的话,是Unity内置的网络,亚马逊网络服务,作为服务器的个人网站,或者我在家中托管服务器的计算机。