小弟从没做过游戏,但用过 SOCKET 做过简单的监听和收发数据,最近闲着没事,想试试游戏的制作(不求高难度),只想做个,比如,几个人,登陆游戏后,分别都有个小球(兄弟我不会画画,就画个球代表人)。然后,每个人可以在自己的客户端,控制自己的小球走动、说话、或者其他的动作(比如最简单的攻击)。
我就是想做着玩,但我的思维遇到了一些问题。1、怎么把所有人的数据广播出去。
   每个人都有个小球,所有人的走动,说话,攻击等动作,应该采用什么形式相互沟通,是服务器收集所有人的数据,
   然后广播出去;还是每个人都都主动请求服务器,获取身边(或者整个场景)所有人的数据?2、需要什么样的控件来实现这些功能?
   IdTcpServer? IdUdpServer?这2个控件能否满足设计需求,如果不能,有更好的么?3、效率问题
   大型游戏暂不讨论,就我想实现的这个DEMO,数据交互感觉上都很大(随时随地,时间间隔短)所有用户的数据都在
   交互中。服务器能否受得了……聊天室我倒是能做出来,但游戏的数据交互量仿佛太大.4、数据包的问题
   用DELPHI做服务器端,但客户端我可能用FLASH(AS3里有SOCKET),不同的环境,数据包的设计应该怎么考虑?
基本上,目前我考虑的是这些东西,不知道路过的各位兄弟,能否给个启示,兄弟我不胜感激。因为没有经验,想听听大家的看法……兄弟我是个菜鸟,希望老大们指教批评。

解决方案 »

  1.   

    用快驴的消息服务,很轻松能实现你的功能。支持群发、组播、点对点等。独特的不丢包UDP消息传输!
      

  2.   

    IOCP 完成端口,这个要一定要有!
    线程池呀什么的
    用IdTcpServer、IdUdpServer的话,个人感觉效率、稳定性上都不行
      

  3.   

    IdTcpServer,IdTCPClient1数据通讯的速度非常慢,不知道是我写的代码不行,还是组件本身不行D7+XP3
      

  4.   

    DirectX,這方面資料太多了,你可以買本書研究下,也可以百度下。裡面有專門的網絡遊戲設計介紹。