论坛首页 Java企业应用论坛

Java游戏,想要做成可局域网联机的那种,请问,底层协议应该用什么?

浏览 10451 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-16   最后修改:2009-08-19
Java适合做网络开发,但大多是做HTTP类型的;就局域网通信来说,一般用什么技术/方式比较好?
打算做一个简单的Swing/AWT这样的Java2D棋牌类游戏,支持局域网联机就可以。考虑了几种方法:
1.WEB service/J2EE,这个基本是Http方式了,不适合
2.RMI,这个似乎也是Server-Client这样的调用方式,Server提供服务供Client调用
3.Socket;只是知道一个名,具体应该怎么做不太清楚,但我感觉这样可行。
   发表时间:2008-03-16  
局域网联机考虑用udp协议的socket,可以参照一下飞鸽java版的源代码,其实编码量也很小。好处是任何人都可以是主机。
rmi编程起来自然是要简单一些(比较容易oo),棋牌类游戏对性能的要求也小,但是如果玩到一半主机掉了,就麻烦了。
如果对底层不感兴趣的使用jgn。
project darkstar据说也有用于小规模联机游戏的api,我没用过,听说而已。
http的我也没试过,不过坛子里这么多java ee高手

ps:其实有n多现成的用swing写得棋牌类游戏的源代码在网上,再写一遍真的没啥成就感。
0 请登录后投票
   发表时间:2008-03-17  
这个游戏 最好采用C/S C用Swing吧,支持一下SUN的技术,并且L&F可以使你随时更换主题
:) 恩!采用UDP,广播方式

不过我总是对UDP不放心,UDP丢包的可能是有的,如果丢包了怎么办呢?

我觉得还是采用TCP的,传输安全放心。

可以 做一个Server 维护客户端的信息,呵呵 可能太传统了点
0 请登录后投票
   发表时间:2008-03-17  
每个人都可以建主 就像传统的 即时战略游戏那样
0 请登录后投票
   发表时间:2008-03-17  
Kaede 写道
这个游戏 最好采用C/S C用Swing吧,支持一下SUN的技术,并且L&F可以使你随时更换主题
:) 恩!采用UDP,广播方式

不过我总是对UDP不放心,UDP丢包的可能是有的,如果丢包了怎么办呢?

我觉得还是采用TCP的,传输安全放心。

可以 做一个Server 维护客户端的信息,呵呵 可能太传统了点

丢包是必然的,棋牌一类的回合制游戏应该是采取重发机制。
Kaede 写道

每个人都可以建主 就像传统的 即时战略游戏那样

如果是即时类的游戏,有些是选择丢包以后就直接跳到最新的状态,游戏里的表现就是人物瞬间移动(wow),有些是选择等待所有的包都到达(可能多次重发),游戏里的表现就是人物在停顿之后突然高速移动一段时间(war3)。

其实用tcp也不错,局域网游戏需要维护的链接很少,tcp编码起来省劲一些。但是如果事先不知道server的ip,还是需要用udp的组播方式先探测ip出来。
0 请登录后投票
   发表时间:2008-03-17  
引用
ps:其实有n多现成的用swing写得棋牌类游戏的源代码在网上,再写一遍真的没啥成就感。

兄台能否给几个链接学习一下?
0 请登录后投票
   发表时间:2008-03-17  
在google上随便搜了一下,第一页里找到这个
http://www.pudn.com/downloads40/sourcecode/game/detail140425.html
你去下载了试试吧。

想要更多就自己仔细搜一下吧,毕竟是你自己的任务么~~~
0 请登录后投票
   发表时间:2008-03-17  
组播群发,简单易用。

或者就是TCP,保障传输质量,省心省事。
0 请登录后投票
   发表时间:2008-03-17  
Nighthaven 写道
在google上随便搜了一下,第一页里找到这个
http://www.pudn.com/downloads40/sourcecode/game/detail140425.html
你去下载了试试吧。

想要更多就自己仔细搜一下吧,毕竟是你自己的任务么~~~

感谢。
不过这个网站上的代码,要想看一眼,先注册,后交钱,实在是很像某些X网站

0 请登录后投票
   发表时间:2008-03-18  
搜一些相关的电子书来学习吧 我以前有很多这类的书 现在没在身边
明天给你列个单子  本本经典

最后补充一下: 我也建议局域网游戏用udp
udp最主要的好处就是快速易用
(看飞鸽的代码是个好主意 呵呵)

以前看过一些游戏的分析介绍, 据说暗黑还有cs都是基于udp的---不知道那个分析的人说的对不对 呵呵
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics