(C+;+;)游戏服务器,(Flash)客户端 我感兴趣的是把我的第一个在线游戏用Flash作为客户端,并在C++中编写一个后端应用程序,在那里可以保持实际的游戏状态。 在使用SDL、SFML、AlelGo等之前,我做过很多C++游戏,但从来没有想过要使用网络库。我只是对一些有用的方向感兴趣,哪些库最适合于实际服务器没有任何图形显示(或者不需要但可以有图形显示)的游戏服务器。老实说,我认为答案是肯定的,一旦我掌握了套接字的窍门,来回发送数据就会变得轻而易举。。。但先问问也没什么用

(C+;+;)游戏服务器,(Flash)客户端 我感兴趣的是把我的第一个在线游戏用Flash作为客户端,并在C++中编写一个后端应用程序,在那里可以保持实际的游戏状态。 在使用SDL、SFML、AlelGo等之前,我做过很多C++游戏,但从来没有想过要使用网络库。我只是对一些有用的方向感兴趣,哪些库最适合于实际服务器没有任何图形显示(或者不需要但可以有图形显示)的游戏服务器。老实说,我认为答案是肯定的,一旦我掌握了套接字的窍门,来回发送数据就会变得轻而易举。。。但先问问也没什么用,c++,flash,client-server,C++,Flash,Client Server,我在flash或as3方面的经验很少,但我喜欢通过浏览器访问游戏的想法——学习flash显然是一个我必须克服的障碍,但我的主要兴趣还是关于库或资源的任何提示,或通过套接字发送/接收数据的教程,或任何最有效的方法 我读过TCP/UDP之间的争论,所以我不想在这里发动这样的战争;只是一般的有用的建议请-我只是找一些简单的东西来让我起来和运行:-p 作为一个侧面的注释,我选择C++的原因是因为玩家实际上是具有小型虚拟机的机器人,所有的东西都会在服务器上运行,所以玩家数量增加,所以需要模仿每个VM:-P

我在flash或as3方面的经验很少,但我喜欢通过浏览器访问游戏的想法——学习flash显然是一个我必须克服的障碍,但我的主要兴趣还是关于库或资源的任何提示,或通过套接字发送/接收数据的教程,或任何最有效的方法

我读过TCP/UDP之间的争论,所以我不想在这里发动这样的战争;只是一般的有用的建议请-我只是找一些简单的东西来让我起来和运行:-p

作为一个侧面的注释,我选择C++的原因是因为玩家实际上是具有小型虚拟机的机器人,所有的东西都会在服务器上运行,所以玩家数量增加,所以需要模仿每个VM:-P<P/P。 更新:

游戏世界是实时的,但玩家之间的互动并不一定是实时的。游戏的基础是你给小机器人编程,让它们在一个持久的世界里互动,每天/每周都有目标和挑战,以获得积分

我认为缓冲显示数据是可能的,因为玩家不需要实时视觉,因为他们无法直接控制自己的机器人。服务器会为每个连接缓冲10秒左右的数据,然后一次性将其发送出去——这样,当数据在客户端中回放时,服务器会忙于缓冲更多的数据

玩家与服务器之间的一般交互将上传新代码并获取统计数据,还可能有其他一次性命令来移动机器人或将其重置到起始位置。任何远程控制都是通过通信通道完成的,因此会被缓冲区延迟。这很容易被解释为这样一个事实,即持续存在的世界与火星(行星)相似,信号需要一段时间才能来回传递

我曾计划建立一个“实验室”,让你可以设置机器人并在客户端实时测试它们,这与实际的游戏世界无关,因此不需要任何网络——尽管我不喜欢用两种语言编写VM:(


<>我完全适应C++,并且已经有了一些持久世界的工作原型——在网络方面我只是个新手,所以最好先征求意见。

< P>虽然它主要是为C编写的,但是C++仍然是很好的:

它涵盖了所有基础知识,并有一节介绍了Win32所需的更改:)

我似乎还记得Flash需要终止每个数据包上的空字节,所以不是发送(socket,szData,strlen(szData),0);使用send(socket、szData、strlen(szData)+1,0);要发送字符串:)

请使用boost::asio进行网络编程

我不确定您的游戏是否需要实时通信,或者向服务器发出加载、保存和执行游戏的请求是否足够

如果是这样,最好使用某种“中间件”层来处理网络部件。Flash很乐意制作xml文档,并通过HTTP将它们发送到服务器,然后处理收到的xml响应。它有很多很好的内置功能,可以很容易地处理所有这些事情

也许你可以在C++或PHP或java中有一个服务器,这取决于你的平台,它运行在一个Web服务器上,处理请求和响应,并将请求传递给你的C++服务器,这些服务器可以通过消息队列或数据库或本地连接独立运行在服务器上。 PF>在Flash和服务器端,处理网络和通信问题可能更容易,因为C++不是最简单的语言,即使在库中也可以使用。


我不知道这是否满足您对游戏或平台的要求,但我只是建议您在使用Flash的Socket或XMLSocket类时,确保您的服务器上有一个安全策略文件。否则,您将无法打开插座。查看此以了解更多信息