我是靠谱客的博主 专一小蝴蝶,最近开发中收集的这篇文章主要介绍如何写一个简单的局域网游戏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天拜读了马士兵TankWar的网络大战

他自己说这个非常土。所以学习学习原理啦。

看看怎么写一个基础的网络版的游戏,当然不能和大型游戏的服务器相比。。简单的局域网游戏应该怎么开发?主要看看他怎么拉开框架的吧!


TankClient

NetClient

TankServer


TankClient 是个单机版的游戏

调用NetClient(这个名字不好)

链接TankServer


服务器和客户端都有TCPUDP链接

先开始TCP链接


服务端用个篮子保留客户端的相关的信息,哪些相关信息?

1.IPUDP端口号


这些信息怎么服务端怎么知道的?

1.用之前建立TCP的链接读出来,所以说客户端TCP要发送UDP端口号到服务端


需要一个UUID或者GUID用来区别每个Client,怎么办?

1.可以用服务器静态变量分配,然后TCP传回给客户端,每个Client接受保存,要考虑“银行问题”;


解决以上问题TCP的链接任务就结束了




客户端知道有新的坦克链接服务端,并且在自己的客户端绘制出来?

1.首先要发送自己的UDP消息到服务器

2.服务器要有个UDP线程不停的接受消息

3.服务器要转发UDP消息到所有的客户端

4.客户端要解析服务端转发过来的消息

因为都是接口类型,所以要下行转换的时候要判断类型



怎么发送或者解析?

给个socket让消息自己去发送或者解析吧!


如何封装这些UDP消息?

写一个接口或者协议

1.消息自己知道怎么发送自己

2.消息自己知道怎么解析自己

3.消息的类型


有哪些消息?

新坦克的消息

坦克移动的消息

子弹的消息



怎么解决消息同步的问题?同步线程

每隔一段时间,发送同步消息?简言之,每隔一段时间发送自己的状态



今天看到1.9.8版本还有的明天再说啦~~



最后

以上就是专一小蝴蝶为你收集整理的如何写一个简单的局域网游戏的全部内容,希望文章能够帮你解决如何写一个简单的局域网游戏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部