帧同步坦克大战开篇

?最近在用腾讯的小游戏联机对战引擎(以下简称MGOBE)改写我之前写的坦克大战。因为时间有限,每天都是下班业余时间去搞,也是第一次写帧同步,因此遇到了很多问题,也因此学到了很多东西。(不了解这个框架的可以看我之前的简单介绍以及我为什么要用这个框架:惊!!!个人游戏开发者的福音来了!

目前主要实现的功能,就是匹配系统和帧同步的平滑移动,自我感觉效果还可以,不过还是有很多需要优化的地方。

因无法上传视频,想看视频效果的可以关注公众号「如若清风」,查找近期文章帧同步一即可看到。

匹配系统:包括小游戏的授权,获取openid等。匹配设置15秒超时,会提示是否重新匹配,或者取消匹配。

帧同步移动:移动的平滑处理,试了很多种方法。试了航位推算预测和平滑处理,不知道是算法不对,还是其他原因,总之不理想,最终用的插值算法。

今天这篇文章,主要先讲解一下,MGOBE框架的前期准备工作,把环境配置好。

  1. 打开产品介绍页 https://cloud.tencent.com/product/mgobe,点击立即使用,进入控制台
  2. 点击左侧【游戏概览】菜单,然后找到添加游戏,填写游戏基本信息。
  3. 点击下一步 ,进入服务开通页面,点击确定,即创建完成。
  4. 创建好之后,显示基本信息。其中游戏id,游戏key和域名是我们以后需要的

好了。今天就了解一下MGOBE框架的基本概况,下一篇,就开始详细讲解匹配系统了。

原文地址:https://www.cnblogs.com/starry-skys/p/11980423.html

时间: 2024-11-08 04:29:41

帧同步坦克大战开篇的相关文章

帧同步坦克大战匹配系统

在介绍匹配系统之前,先说一下项目的整体结构. 项目主要有四个场景: start --> home --> choose --> game start_scene: 是游戏的开始场景,在此场景主要做了微信授权,获取用户的昵称,头像等信息.通过云函数获取用户的openid(不了解云函数的可以参考这篇文章:微信云开发使用教程).然后把用户的信息和用户的openid都放到全局对象Global里边,方便以后使用. home_scene: 授权成功之后,就跳转到此场景. 进入此场景之后,需要初始化M

帧同步坦克大战移动系统

上节讲到了匹配系统,匹配完成之后,我们就需要开始进行帧同步了.但是,需要注意,只有房主才可以调用开始帧同步的方法.因此,需要加一层判断. 然后,房间内的其他玩家需要监听开始帧同步的广播,接收到开始帧同步的消息之后,进入游戏场景. game_scene:游戏主场景.(终于到最关键的逻辑部分了) 首先,进入游戏主场景之后,进行一些玩家的初始化(比如位置,血量,攻击,防御等信息),还有摇杆的初始化. 需要注意的是,玩家的出生位置这一部分逻辑稍微复杂一些.因为,没有服务器逻辑支持,所以只能在客户端想办法

《Java小游戏实现》:坦克大战

<Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个小功能的添加,最后直至完成整个游戏的开发. 第一步:写一个界面 public class TankClient extends JFrame{ public static void main(String[] args) { new TankClient().launchFrame(); } public v

黑马2018年最新kotlin项目实战视频 (手机影音、即时通讯、黑马外卖、坦克大战等)

├─1.kotlin简介和学习方法│ 01_kotlin课程简介_01.mp4│ 02_kotlin学习方法_01.mp4│ 03_kotlin选好教练车_01.mp4│ 03_kotlin选好教练车_02.mp4│ 04_kotlin你好世界_01.mp4│ 05_kotlin变量与输出_01.mp4│ 05_kotlin变量与输出_02.mp4│ ├─10.类,对象和接口(三)│ 38_kotlin面向对象-抽象类和接口_01.mp4│ 38_kotlin面向对象-抽象类和接口_02.mp4

Python3——坦克大战

# coding=utf-8 # Version:python3.6.1 __date__ = '2018/9/20 18:51' __author__ = 'Lgsp_Harold' import pygame, sys, time from random import randint from pygame.locals import * # 坦克大战主窗口 class TankMain(object): width = 600 height = 500 my_tank_missile_li

JAVA课程设计(坦克大战)

2019-01-16 坦克大战游戏背景: 1. 需求分析 1.1环境要求 操作系统:Windows 7(SP1)以上 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 1.2角色设定 用户在系统中扮演的角色,以及可以执行的职责. 玩 家 操纵玩家坦克,与敌方坦克作战,同时保护本基地.敌方坦克随机移动,发射子弹. 1.3设定玩家(玩家一,玩家二,即一个人玩还是两个人玩),我方坦克的方向和子弹由用户控制,所有墙块都可以打碎,但是铁墙是打不碎的,草地不能阻止坦克和子弹的前进,河

坦克大战系列(3.0版)

无论头上是怎样的天空,我准备承受任何风暴.--拜伦 本讲内容:坦克3.0版(面向对象的思想) 要求:画出我方坦克会动并且会发射子弹.画出敌人坦克 一.同一个包下建二个文件分别为:MyTankGame.Members(负责其它成员譬如:制造坦克.子弹等) MyTankGame类 /** * 功能:坦克游戏的3.0版本 * 1:画出坦克 * 2:实现我方坦克移动并且會發子彈,并 画出敌人的坦克 */ package a; import javax.swing.*; import java.awt.*

手游帧同步的研究

网络游戏的同步可以做的很简单,也可以做的很复杂.简单来说就是通过Http或者Socket来跟服务器同步数据.而如果往复杂了说,可以有p2p.帧同步.航位预测等等高级课题可以研究. 因为我们的项目需求----几百个独立单位的实时同步(带pvp的rts),所以研究了下帧同步.不过后来发现它其实有很多问题,所以具体如何还要看其他同事的研究成果.以我个人来说,修改游戏方案反而是最合理的解决方案. 首先从需求上来说,几百个独立单位的作战,本身结果和士兵强弱从策划的角度来看就是不可控制的.玩家更加不可控制.

C++代码训练之坦克大战(2)

这一篇中,我们继续继续进行我们的坦克大战. 位置信息数据结构 在游戏设计过程中,需要记录大量的位置信息,如果仅仅使用(x,y)坐标很容易出错.这一篇中,我们先定义两个简单的数据结构用来保存点和矩形的信息. 在项目中新建Model目录,创建下面四个文件: 代码如下: Point.h #ifndef __POINT_H__ #define __POINT_H__ class Point { public: Point(int x = 0, int y = 0) : m_x(x), m_y(y){};