多人服务器对人游戏



我确实是新来的,但我已经阅读了。。自从我开始编程以来。

我还是个新手,在网络方面绝对是个新手。但我会把这份简报保存下来,这样你就可以给出一个决定性的答案。

我有一个网络服务器和一个域名。我想使用websocket来创建一个环境,让两个玩家可以在同一屏幕上同时移动。例如,如果鼠标控制了一个点,两个人连接到一个全球"世界",那么一个人可以实时看到另一个人的点。一个类似的例子是rumpetroll.com。

我不希望得到很多关于如何设计RuneScape这样的游戏的信息(尽管我认为这个想法几乎是一样的)。我只是想深入解释一下如何让这个很酷的小互动继续下去。

任何关于如何编程到套接字的链接都将不胜感激,因为我在互联网上能找到的只是这个概念。没有任何关于机制和每个命令可以做什么的内容。

不管怎样,谢谢大家。

您将需要一个服务器和一个客户端。我假设您了解JavaScript,所以我将提供一个在双方都使用它的示例。

服务器

您将需要nodejs,请按照网站上的说明进行安装。

我将提供使用socket.io的示例,因为您要求使用websocket,但请记住,还有其他解决方案,如Faye,值得一看。

把自己放在一个新的文件夹中,运行npm install socket.io,这将下载服务器所需的代码;然后将此代码粘贴到名为server.js 的文件中

var io = require('socket.io').listen(8000);
io.sockets.on('connection', function (socket) {
  socket.emit('new-connection', { message: 'we have a new user!' });
  socket.on('message-from-client', function (data) {
    console.log(JSON,stringify(data));
  });
});

通过键入node server.js启动服务器,您应该在控制台中看到info - socket.io started

客户

将此代码粘贴到一个名为index.html的文件中,然后用您喜欢的网络浏览器打开它

<script src="http://localhost:8000/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8000');
  socket.on('new-connection', function (data) {
    alert(JSON.stringify(data));
    socket.emit('message-from-client', { message: 'hi' });
  });
</script>

一旦你导航到http://localhost:8000,你就会看到两件事:

  • 向您致意的提醒
  • 启动服务器的控制台中的消息

每次导航到该url时,都会发生这种情况,尝试使用两个不同的浏览器或在匿名/私人浏览窗口中导航到该url。每次您都应该看到警报和消息。

这是基本设置。从这里开始,您可以随心所欲地将事情复杂化,如果您将使用此解决方案,请考虑用JSON传递数据,如我在示例中所示。

从这里到哪里

正如你所看到的,这真的很容易,如果你想显示一个点,它将为所有用户显示,将客户端鼠标移动绑定到一个函数,该函数将向服务器发送位置,并将其广播给所有其他连接的用户(应该是类似socket.broadcast.emit的东西,但我不确定,请查看文档),或者你可以简单地发送一个事件,类似于updated-mouse-position,它将有一个绑定到它的函数来处理图形部分。

希望这能有所帮助,如果你对基本配置有疑问,请随时添加评论。

相关内容

  • 没有找到相关文章

最新更新