新闻中心

什么app可以赌电竞_推荐英雄联盟比赛压注的网站_微信上英雄联盟s11下注
办公地址:广东省深圳市宝安区沙浦第二工业区鼎丰高新科技园1-3栋

业务:   段先生
电话:13312982596

如何从0开始开发一个简单的手机游戏并可以实现双人或多人联机?

发布时间:发布时间:2022-06-14 02:42:40 来源:推荐英雄联盟比赛压注的网站 作者:微信上英雄联盟s11下注

  功能(如回合制的棋牌类、实时画面的你画我猜等)。MGOBE能够帮开发者省去繁琐的服务器、网络通信细节,开发者只需注重游戏逻辑的实现。

  目前网上的相关实战教程较少,腾讯云官方文档虽然提供了详实的接口细节,但文档的组织方式不利于新上手的开发者快速理解使用MGOBE。本文使用对战引擎实现了最简单的1v1随机匹配机制,通过案例实战,能够帮助开发者更好地理解其实现原理并应用于自己的游戏中。

  开始操作之前,您需要有一个已经创建好的游戏项目(本文采用的开发工具是Cocos Creator,其他游戏引擎或微信原生开发工具也适用),并且已开启对战引擎服务(本文是在Cocos Creator内的第三方服务面板一键开启)。

  基于对战引擎的联机匹配机制如上图。在整个流程中,开发者需要做的主要包括两方面:为服务器设置匹配规则(即开房条件),和向服务器发起匹配。

  1. 登录腾讯云MGOBE控制台,选择左侧菜单【匹配管理】【匹配规则集】,单击【新建规则集】。

  2. 填写规则集名称,选定一个类型的匹配规则,将自动生成一个JSON模板。

  在这里可以看到联机对战引擎支持1v1和多v多、对称匹配和非对称匹配的多种类型,这里我们只需实现1v1即可。

  规则集中的timeout字段规定了匹配超时失败的时长,这里我设为60(单位为秒)。当发生超时后,游戏可以退出匹配页面,由玩家决定是否再次搜索对手;当然,对战引擎也提供了机器人填充!我们可以在下一步中设置是否启用机器人填充,关于机器人的更多内容可以参考文档。

  3. 规则集内容设置完成后,单击【验证规则集】,验证成功后,出现提示“规则集验证通过”。

  1. 选择左侧菜单【匹配管理】【在线匹配】。进入在线匹配页面,单击【新建匹配】。填写匹配名称,选择匹配规则集和是否开启机器人。

  3. 单击【确定】。新建匹配后,在【在线匹配】页面,就会生成相应的匹配 code。该code之后需要填入到代码中。

  完成匹配规则设计和配置后,就可以实现两个客户端程序进行匹配了。本部分代码整理改编自文档。

  然后,我们可以为一个“开始匹配”按钮绑定点击事件,使之被点击后触发开始匹配的函数:

  在等待匹配时,还可以添加一个“取消匹配”的按钮,用于玩家突然想取消匹配的情况:

  开始调试:打开两个模拟窗口,两边相继点击“匹配按钮”,等待一段时间就可以看到两边的控制台都打印“匹配成功”的消息了!一同打印的还有room.roomInfo,即匹配的房间对象信息,展开可以查阅房间id、玩家信息、房主等信息。

  以上仅仅实现了两个玩家进行匹配、进入同一房间的场景,这一功能由MGOBE系统代为完成。但是匹配成功后,在玩家之间一定是需要同步游戏数据,甚至互相发送文字消息的。这些功能需要我们的小游戏有一个专门的服务端逻辑,即实时服务器,从而可以自定义如何响应玩家的动作、如何转发玩家的消息。

  实时服务器的最简要求和示例代码在状态同步页面已给出。创建实时服务器以及更加强大的模板代码可以通过以下两种方式之一完成:

  1. 使用Cocos在MGOBE面板直接启用(此为后文采用的服务器代码模板);

  2. 或者在腾讯云后台自行开启,其中也给出了具有齐全的事件监听的代码模板。

  编写客户端代码。在startMatch()的指定位置添加以下代码,使其在成功匹配后向服务器发送消息。

  服务端中的onRecFromClient()是接收并处理来自客户端的消息的函数,我们对其作下列修改,使其向所有房内玩家广播一条消息,告知收到一条来自某玩家的消息:

  最后,当服务端把回复消息发往客户端时,客户端也需要有一个接收消息的监听函数才能收到。在客户端初始化Listener部分的代码中的指定位置添加这个监听函数:

  这样一来,消息在客户端和服务器之间便可以双向传递了。再次启动两个窗口查看运行效果。

  双方点击匹配按钮后,等待匹配完成。此时每个客户端的console中应该会收到至少三条消息:一条是消息发送成功的回调消息对象,表示发送的消息成功送达服务器;其余两条一样的,则是服务器分别收到两个客户端消息后广播的回复。

  服务器所有监听函数的参数都是一个ActionArgs结构,我们可以从中读取所需的数据(如sender,actionData,SDK)。ActionArgs会在第二篇中更详细地讲解,您也可以查阅官方文档中的GameServer对象和ActionArgs 类型。

  凭借以上已讲解的内容,我们已经可以实现“房间消息”的功能了!例如,玩家A向服务器发送一条消息”hello”,服务器收到后向另一个玩家B转发该消息,玩家B的客户端程序收到服务器的消息后再将文本显示在屏幕上。

  至此,我们已经成功搭建了一个房间,并实现了1v1匹配的基本环境,还实现了两个客户端在房间内的消息通信。在下一篇中,我们将基于已实现的匹配房间和消息通信框架,正式实现状态同步框架下的游戏逻辑。

上一篇:手机游戏简单开发..
下一篇:小游戏源码开发技术复杂需要掌握哪些技术..