客户端在 Unity (2D) 中提供多人游戏

问题描述

我知道这个问题可能看起来有点......嗯......很大或离题,但请理解我:我是一个 12 岁的年轻程序员,努力做到最好。

我想在 Unity 中制作多人游戏,但服务器是主机的设备 ( 如果您听起来很熟悉,是的,它的灵感来自 8 人的 minecraft 多人游戏)。

所以,我希望有人托管游戏(就像有人打开游戏并且他/她的设备成为服务器)。我该怎么做?

P.S.:游戏将是 2D 的,并且实际上是轻量级的(最多 2 名玩家),因此不会消耗大量资源。

P.S. 2:我希望游戏有一个独特的代码或其他玩家加入的东西。

P.S. 3:我会用C#写游戏。

先谢谢你! ;-)

解决方法

这是一个很酷的项目,祝你取得成功。 有很多方法可以满足您的要求。

例如,托管服务器的人可以将一些代码共享给其他玩家(解密时包含要连接的 IP 地址),或直接共享 IP 地址。例如 MTI3LjAuMC4xOjIwMDAK 是 127.0.0.1:2000 的 base64 编码,仅使用以下代码行


//Encode in base 64
public static string Base64Encode(string plainText) {
  var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
  return System.Convert.ToBase64String(plainTextBytes);
}

更高级的情况是,您有两台服务器,一个供玩家通知他正在托管一个服务器,并且该服务器将被列出,并且他的朋友可以从主服务器看到该服务器,而主服务器只是列出并检查谁可以访问哪些服务器例如,基于朋友列表。

等等......

如果是一个简单的项目,我可能会选择选项 1。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...