精易论坛

标题: 即时战略游戏联机对战功能如何实现? [打印本页]

作者: fmaliang    时间: 2024-10-28 14:59
标题: 即时战略游戏联机对战功能如何实现?
我写的那个即时战略+模拟经营的游戏,我想加入联机对战功能,不知道这个功能一般是如何实现的。

作者: 憨憨问号    时间: 2024-10-28 14:59
【原创】自制局域网联机对战游戏例程
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14838664
(出处: 精易论坛)

作者: 憨憨问号    时间: 2024-10-28 15:21
服务器端和客户Duan相互传数据,参考植物大战僵尸联机版就行

补充内容 (2024-10-28 15:26):
例如:
客户DuanA在【1,1】处创建一个炮台
创建后传递信息给客户DuanB
客户DuanB接受到信息
于是执行“A在【1,1】处创建一个炮台”这一命令

补充内容 (2024-10-28 15:27):
用pvz来举例就是:
A在第一格种植了豌豆射手
B接受到消息后,系统自动执行【在第一格种植豌豆射手】

补充内容 (2024-10-28 15:28):
B在第九格放置了普通僵尸
A接受到消息后,系统自动执行【在第九格放置普通僵尸】

补充内容 (2024-10-28 15:28):
完事nei网穿透或者放服务器上做中转什么的,这属于是最简单的联机了
作者: 努力的小菜鸟    时间: 2024-10-28 18:54
需要即时通讯
作者: fmaliang    时间: 2024-10-29 10:46
憨憨问号 发表于 2024-10-28 15:21
服务器端和客户Duan相互传数据,参考植物大战僵尸联机版就行

补充内容 (2024-10-28 15:26):

看了你的帖子,太基础了,和我要的功能还相差有点远。
比如像红警、星际、帝国时代那样的多机联机,
一般是有一台电脑做主机,其它电脑加入,那网络通信不可能每台电脑都给其它电脑发数据。
还有就是用tcp还是udp,通信失败、数据包传输失败等等,
如果是一台电脑做主机,那是不是所有数据通过这台主机中转,那服务器是不是要有一个服务端线程,这个线程如何工作?客户Duan如何通信,需要传输哪些数据?
这些都很麻烦,我想找一个现成成功的游戏参考,避免盲人摸象。
作者: 憨憨问号    时间: 2024-10-29 11:13
fmaliang 发表于 2024-10-29 10:46
看了你的帖子,太基础了,和我要的功能还相差有点远。
比如像红警、星际、帝国时代那样的多机联机,
一般 ...

用服务器组件和客户Duan组件
服务器组件放云端做中转
(至于这个传输的方法你自己去网上找教程学,服务器,云端,nei网穿透什么的,不可能把什么都嚼碎喂给你)
玩家A选择开房间,主端接受到信息,开一个房间
玩家之间的行为通过主端进行传输
例如玩家A采取指令:攻击玩家B
主端接收到玩家数据后,分别再把数据传给所有人
此时玩家B,玩家C,玩家D都会收到“玩家B被玩家A攻击”的指令
剩下的东西就都是基础了,我那个帖子就是完整的逻辑流程,你只需要完善就能直接套,逻辑都那样
至于你说的需要一个成功的游戏作为参考,那我只能说你应该去定制区问问,问答区是不可能有人丢你个成品源码让你参考的
很多开源的联机都不是易写的,去定制区找人帮你写一个来的最快




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4