`
metaphy
  • 浏览: 338683 次
  • 性别: Icon_minigender_1
  • 来自: 大西洋底
社区版块
存档分类
最新评论

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

阅读更多
Java适合做网络开发,但大多是做HTTP类型的;就局域网通信来说,一般用什么技术/方式比较好?
打算做一个简单的Swing/AWT这样的Java2D棋牌类游戏,支持局域网联机就可以。考虑了几种方法:
1.WEB service/J2EE,这个基本是Http方式了,不适合
2.RMI,这个似乎也是Server-Client这样的调用方式,Server提供服务供Client调用
3.Socket;只是知道一个名,具体应该怎么做不太清楚,但我感觉这样可行。
分享到:
评论
16 楼 neora 2008-03-28  
fins 写道
搜一些相关的电子书来学习吧 我以前有很多这类的书 现在没在身边
明天给你列个单子  本本经典

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

以前看过一些游戏的分析介绍, 据说暗黑还有cs都是基于udp的---不知道那个分析的人说的对不对 呵呵


cs完全基于udp的。
15 楼 centgo 2008-03-21  
nio提高服务器性能,保证数据的完整性。

ps:发现这里有相同想法的人真不少。最近我也准备写java的2D棋牌游戏。
14 楼 pufan 2008-03-20  
try jxta
13 楼 fire314159 2008-03-19  
I have made one software like 飞鸽 using UDP in java. It is easy to implement.

"Java2D的通信,说白了就是如何通知双方在各自的JPanel上画东西的,如何维护同一的数据 "

a software like vnc in swing is also one of my thoughts. I have made one, but bad in performance.
12 楼 lick 2008-03-19  
莫非我还处于程序员的初级阶段?
你们说的,我都没想过
11 楼 mathgl 2008-03-18  
游戏一般都用udp的吧。对于数据的完整性没有很高的要求。
10 楼 metaphy 2008-03-18  
fins 写道
搜一些相关的电子书来学习吧 我以前有很多这类的书 现在没在身边
明天给你列个单子  本本经典

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

以前看过一些游戏的分析介绍, 据说暗黑还有cs都是基于udp的---不知道那个分析的人说的对不对 呵呵

Java网络协议方面的开发没怎么接触,所以有老虎吃刺猬的感觉;
Java2D的通信,说白了就是如何通知双方在各自的JPanel上画东西的,如何维护同一的数据
9 楼 fins 2008-03-18  
搜一些相关的电子书来学习吧 我以前有很多这类的书 现在没在身边
明天给你列个单子  本本经典

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

以前看过一些游戏的分析介绍, 据说暗黑还有cs都是基于udp的---不知道那个分析的人说的对不对 呵呵
8 楼 metaphy 2008-03-17  
Nighthaven 写道
在google上随便搜了一下,第一页里找到这个
http://www.pudn.com/downloads40/sourcecode/game/detail140425.html
你去下载了试试吧。

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

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

7 楼 myreligion 2008-03-17  
组播群发,简单易用。

或者就是TCP,保障传输质量,省心省事。
6 楼 Nighthaven 2008-03-17  
在google上随便搜了一下,第一页里找到这个
http://www.pudn.com/downloads40/sourcecode/game/detail140425.html
你去下载了试试吧。

想要更多就自己仔细搜一下吧,毕竟是你自己的任务么~~~
5 楼 metaphy 2008-03-17  
引用
ps:其实有n多现成的用swing写得棋牌类游戏的源代码在网上,再写一遍真的没啥成就感。

兄台能否给几个链接学习一下?
4 楼 Nighthaven 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出来。
3 楼 Kaede 2008-03-17  
每个人都可以建主 就像传统的 即时战略游戏那样
2 楼 Kaede 2008-03-17  
这个游戏 最好采用C/S C用Swing吧,支持一下SUN的技术,并且L&F可以使你随时更换主题
:) 恩!采用UDP,广播方式

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

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

可以 做一个Server 维护客户端的信息,呵呵 可能太传统了点
1 楼 Nighthaven 2008-03-16  
局域网联机考虑用udp协议的socket,可以参照一下飞鸽java版的源代码,其实编码量也很小。好处是任何人都可以是主机。
rmi编程起来自然是要简单一些(比较容易oo),棋牌类游戏对性能的要求也小,但是如果玩到一半主机掉了,就麻烦了。
如果对底层不感兴趣的使用jgn。
project darkstar据说也有用于小规模联机游戏的api,我没用过,听说而已。
http的我也没试过,不过坛子里这么多java ee高手

ps:其实有n多现成的用swing写得棋牌类游戏的源代码在网上,再写一遍真的没啥成就感。

相关推荐

Global site tag (gtag.js) - Google Analytics