营运型手游开发、测试、正式的三阶段开发架构

2023-05-16

在手机游戏的畅销排行榜上,可以看到大多数的游戏都是营运型的游戏。所谓的营运型游戏,指的是游戏的开发并不是上架后就结束,而是需要持续的配合游戏营运的需求,进行游戏的更新、内容调整以及后续内容的开发。这样的游戏虽然相对来说获利较佳,不过对于游戏开发团队来说人力的需求相对也比较高。
 


或许是因为排行榜看起来营运型的游戏获利比较佳,因此有部份的中小型团队为了追求获利也投入营运型游戏的开发。之前银狐去协助某个独立开发团队的时候,它们在做的也是一款营运型的游戏。这之后银狐又陆陆续续接触到一些中小团队,也看到它们正在开发营运型的游戏。

不过,或许是因为这些团队并没有做过营运型的游戏,也或许是他们把做营运型游戏的这档事想得太简单,所以银狐在听了他们对于游戏版本的管控以及更新的作法后,不禁要为他们的未来担心。银狐曾经担任过线上游戏(注:网络游戏)制作人很长的一段时间,当时负责的专案也在线上跑了非常长的时间,因此对于游戏版本的管控以及更新的流程有相当程度的了解。因此今天就利用这篇文章,来说明一下我们当初是怎么做版本管控以及更新的。

当初在银狐问到要怎么做更新的时候,某个团队给了银狐一个很让人惊吓的回答:

“就把开发站的东西全部倒到正式站。”

银狐当时为了避免误会,还接着再问到了在游戏开始营运后,下一次的更新会怎么做,该团队的成员则是再一次重覆的说:

“就再把开发站的东西全部倒到正式站就好。”

听到这里,银狐确认了该团队的确是把开发营运型游戏的这档事想得太简单。而他们对于游戏版本的管控以及更新,更是完全没有思考过这样做会碰到什么样的问题。如果真的照他们这样的方式去搞营运型游戏,那么可以预见很快的游戏就会出大包。

那么,当银狐在担任线上游戏制作人的时候,我们是怎么做的呢。首先,我们的专案会有三组机器,这三组机器分别是:

开发站(Develop)
测试站(Test)
正式站(Official)

这三组机器,故名思义可以知道它分别是用来用开发、测试以及正式对玩家开放使用的机器。如果游戏是多个伺服器的架构,那么可能就会有正式站一、正式站二等等一连串族繁不及备载的名称。

看到这里,也许有人会说,这个主机的架构不过就是多了一层测试站而已,看不出来多这一层有什么好处。当然,如果只是将机器分成这三层并没有什么稀奇,重点是有了这三层的架构之后,接下来的版本管控以及更新的流程才是最重要的。

以营运型游戏的开发状况来说,通常会有许多不同进度的项目同时在开发中。换句话说,在游戏还没正式上线之前,在开发站上就会同时有第一版(以下称为1.0版)、后续的更新内容(以下称为1.1版)等等的项目同时存在开发站上。因此当游戏准备要正式上线时,那些1.1版的内容因为尚未开发完成所以不应该放到测试站与正式站。

就假设今天开发小组的版本管控与开发工作切割得很干净,是真的把1.0版的游戏内容都开发完成,将它们发布到测试站与正式站再进入下个阶段好了,那么这个阶段还可以采用把开发站的内容全部倒到测试站与正式站。但就算1.0版的时候可以这样做,等到游戏正式上线后,之后的1.1、1.2等等的版本,就无法再用这么简单的方式来进行更新。

营运型游戏为了持续提供游戏内容,因此当1.0版上线后,开发小组会立刻进行下个版本内容的开发,此时三台机器上的版本就会变成这样:

开发站:1.0 + 许多未来要更新的开发项目
测试站:1.0
正式站:1.0

因此每当一个预计要在1.1版开放的项目开发完成后,负责的程式人员必须将需要更新的项目做成Patch(以下称之为Patch 1.1-1),然后将它放到测试站上。这个Patch 1.1-1依据项目的不同,有时会包含伺服器端、客户端以及资料,有时则只有其中的一个或两个部份。

而这个Patch放到测试站后,相关的人员就会在测试站上行测试,确认这个Patch 1.1-1的内容是否能够在测试站上正确的运作。如果有问题,那么就会在开发站上进行修正,然后重新制作Patch 1.1-1再将它放到测试站上再做确认,一直到Patch 1.1-1在测试站上运作无误,才算完成这个项目的测试。

在1.1版预计要更新的项目中,可能会有好几项,因此还会有Patch 1.1-2、Patch 1.1-3等等的更新内容。假设1.1版预计有三项新功能,那么在完成了1.1版的开发工作后,这时三台机器上的版本就会变成这样:

开发站:1.0 + 许多未来要更新的开发项目
测试站:1.0 + Patch 1.1-1、Patch 1.1-2、Patch 1.1-3
正式站:1.0

等到要开放1.1版的那一天,工程师就将测试站上的Patch 1.1-1、Patch 1.1-2、Patch 1.1-3这三个部份放到正式站上。由于测试站和正式站的基础都是1.0版,然后Patch 1.1-1、Patch 1.1-2、Patch 1.1-3这三项在测试站上都已经经过了测试,二手游戏拍卖只要测试的过程够仔细,那么在正式站上原则上不会出现问题。然后在完成这个动作之后,就可以将测试站上的版本打包起来正式称它为1.1版,接着就以这样的流程持续的开发下去。

说到这里,或许又会有人说,为什么要用这么麻烦的方式。简单的说,这样的开发流程,就是要确保放到正式站的项目是正确的。如果我们采用那个全部倒过去的方法,那么那些还没有要开放或是还没有开发完成的项目就会跑到正式站,可能会造成一些问题。而且这样的方式,开发人员对于更新项目内的各项物件有更好的掌握,也更清楚它们之间的关连,未来如果出了状况时要找问题也会知道从何找起,是比较安全的开发模式。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

营运型手游开发、测试、正式的三阶段开发架构 的相关文章

  • 环形缓冲区(ringbuffer)

    环形缓冲区 xff08 ringbuffer xff09 环形缓冲区是嵌入式系统中十分重要的一种数据结构 xff0c 比如在串口处理中 xff0c 串口中断接收数据直接往环形缓冲区丢数据 xff0c 而应用可以从环形缓冲区取数据进行处理 x
  • 大屏可视化数据面板分格渐变进度条、数字翻牌器及其刷新动效实现

    数据可视化大屏是当前可视化领域的一项热门应用 xff0c 通常可以分为信息展示类 数据分析类及监控预警类 这类应用的视觉设计通常效果炫酷 xff0c 动效丰富 xff0c 有时候一些页面布局和动画实现会对前端人员有一定的挑战性 xff0c
  • Fiddler系列教程1:初识Http协议抓包工具

    1 Fiddler简介 Fiddler是用一款使用C 编写的http协议调试代理工具 它支持众多的http调试任务 xff0c 能够记录并检查所有你的电脑和互联网之间的http通讯 xff0c 可以设置断点 xff0c 查看所有的 进出 F
  • http 认证 basic 和 digest

    HTTP协议 RFC2616 的两种认证机制 Basic和Digest SIP类似Http协议 其认证模式也一样 Http协议 xff08 RFC 2616 xff09 规定可以采用Basic模式和摘要模式 xff08 Digest sch
  • 优秀的C/C++框架和库整理,值得收藏

    1 ACE 庞大 复杂 xff0c 适合大型项目 开源 免费 xff0c 不依赖第三方库 xff0c 支持跨平台 http www cs wustl edu schmidt ACE html 2 Asio Asio基于Boost开发的异步I
  • linux socket select(tcp)

    1 概述 xff1a 该demo主要实现了linux下通过select tcp 方式的socket并发通讯 xff0c 相关接口介绍可以参考 lt lt UNIX环境高级编程 gt gt 2 场景 服务端 一 lt 多 客户端 xff1a
  • 对于char*、char[]和string的转换

    1 char char 可以直接转为string 直接赋值 2 string转为char c str 会返回一个指向c字符串类型的指针 xff0c 所以 const char ch 61 str c str 也可以用str data C 4
  • 十分详细的数码管电子时钟(基于51单片机)

    数码管由于内部由多段LED灯构成 xff0c 也被称为多段式LED数码管 从数码管里面包含的LED个数来分 xff0c 可以分为七段式 八段式 十四段式等 七段式数码管 xff1a 八段式数码管 xff08 比七段式右下角多了一个小点 xf
  • 如何用Unity3D实现游戏中的角色换装?

    换装系统是游戏中较为常见的功能 xff0c 我们给它一个专业词avatar xff0c 可以做到装备与人物分离 xff0c 实现自由换装效果 我们可以将头部 身体 手 脚 武器独立建模 贴图 xff0c 利用avatar来动态换装 xff0
  • stm32学习(3)——NVIC中断优先级分组

    相信大多数铁汁在学习stm32的时候都了解过51单片机的基本内容 xff0c 对于51单片机来说 xff0c 中断就那么几个 xff1a 外部中断0定时器 计数器0中断外部中断1定时器 计数器1中断串口中断 它们在51单片机中的优先级也是按
  • STM32F407系统时钟配置不准确导致串口发送数据乱码、定时器定时不准问题

    前言 在用原子的F407探索者开发板时 xff0c 由于是用的野火的工程模板 xff0c 导致了一些串口发送乱码 定时器定时不准的问题 如果你也有类似的问题 xff0c 这个或许可以帮到你 原因 SYSCLK 系统时钟来源有三个方面 xff
  • 巡线PID算法

    相信很多电子专业的同学都做过循迹小车这个小玩意儿 xff0c 而在我们刚刚接触巡线的时候都是用的两个循迹模块 xff08 如下图 xff09 左边的模块检测到黑线了就说明我车子的方向偏右了就需要往左转 xff0c 同理 xff0c 右边检测
  • MSP432(Keil5)——9.ADC驱动

    本次例程驱动了板载的ADC来读取一个模拟的角度传感器 xff0c 大家可以在ADC读取中断里面换成其他的计算 xff0c 具体引脚见程序代码 adc c span class token macro property span class
  • C语言宏函数妙用——1

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • union和struct的区别

    union只配置一个空间来放置共用体中内存最大的数据 xff0c 而结构体则给其中每个变量内存空间 union常用来压缩数据空间 xff0c 其中两个变量不能同时使用时用union
  • 二极管基础知识

  • Java学习之多线程复制文件

    1 一个线程复制一个文件 import java io FileInputStream import java io FileOutputStream import java io IOException public class MyTh
  • 对于HTTP请求头及响应头的详解

    对于HTTP协议的请求头的详解 标签 xff1a CSDN博文 http协议由两部分组成 xff1a 请求和响应 当你在浏览器中输入一个URL时 xff0c 浏览器将按照你的请求创建并且发送请求 xff0c 该请求包含的所输入的URL以及一
  • 手把手教你实现Unity网络同步

    现如今 xff0c 网络同步的技术在各种游戏里被广泛应用和发展 xff0c 那么 xff0c 如何在Unity中搭建网络模块 xff1f 如何使服务器和客户端之间通信 xff1f 如何做到网络同步 xff1f 本文作者烂笔头 27将从自身经
  • Java个人学习笔记07多线程和网络编程

    Java 多线程编程 Java 给多线程编程提供了内置的支持 一条线程指的是进程中一个单一顺序的控制流 xff0c 一个进程中可以并发多个线程 xff0c 每条线程并行执行不同的任务 创建线程 Java 提供了三种创建线程的方法 xff1a

随机推荐

  • 同步/异步与阻塞/非阻塞的区别(转)(中软国际Fourth day)

    转自于 http www cppblog com converse archive 2009 05 13 82879 html 首先来解释同步和异步的概念 这两个概念与消息的通知机制有关 举个例子 比如我去银行办理业务 可能选择排队等候 也
  • python subprocess模块设置环境变量,加载动态库

    众所周知 xff0c 利用python的subprocess pOpen 可以执行应用程序 不过今天碰到一个问题 xff1a 应用程序需要调用动态库 xff0c 而且动态库和应用程序在同一目录下 不过python的运行目录不是应用程序所在目
  • 智能家居 WiFi&BLE 双模模组 WiFi蓝牙遥控器同时控制W800

    由于文档较长文档只展示部分资料需要了解详细资料 链接 https pan baidu com s 1cpmtH7fC7D RGBh09UbhIQ 提取码 pnu4 一 W800 Wi Fi 蓝牙双模SoC 芯片简介 2 二 W800 CDS
  • Qt Creator使用CMake配置第三方库

    语法 include directories 添加第三方库头文件路径 这里的 include directories 直接向括号里加入第三方库的头文件路径即可 span class token function include direct
  • QtGlobal中常见的一些函数和宏

    lt QtGlobal gt 头文件包含了 Qt 类库的一些全局定义 xff0c 包括基本数据类型 函数和宏 xff0c 一般的 Qt 类的头文件都会包含该文件 xff0c 所以不用显式包含这个头文件也可以使用其中的定义 全局变量定义 为了
  • 传感器之激光雷达简介与使用

    激光雷达是现今机器人尤其是无人车领域及最重要 最关键也是最常见的传感器之一 xff0c 是机器人感知外界的一种重要手段 概念 激光雷达 LiDAR xff0c 英文全称为 Light Detection And Ranging xff0c
  • sci_loopback_int的例程(中断程序)

    例程代码如下 xff1a include 34 DSP28x Project h 34 Device Headerfile and Examples Include File define CPU FREQ 40E6 Default 61
  • python中使用subprocess.Popen中的返回值总结:

    usr bin python coding UTF 8 import sys import subprocess import traceback author by zhangheng timestamp 2018 06 08 gennl
  • SPI工作模式

    1 SPI总线条数 MISO xff1a 主设备输入 从设备输出引脚 该引脚在从模式下发送数据 xff0c 在主模式下接收数据 MOSI xff1a 主设备输出 从设备输入引脚 该引脚在主模式下发送数据 xff0c 在从模式下接收数据 SC
  • 游戏常用算法:四种迷宫生成算法

    简介 所谓迷宫生成算法 xff0c 就是用以生成随机的迷宫的算法 迷宫生成算法是处于这样一个场景 xff1a 一个row行 xff0c col列的网格地图 xff0c 一开始默认所有网格四周的墙是封闭的 要求在网格地图边缘 xff0c 也就
  • OPEN alliance工作小组

    Open Alliance TC 8小组 TC 8 xff1a 汽车以太网ECU测试规范 TC 8分配了汽车以太网ECU测试规范 它根据这些共享要求定义了适用于汽车以太网网络中所有ECU的规范 TC8定义了测试流程和支持建立能够执行ECU测
  • 测试PCB线路的阻抗的方法

    1 TDR测试 TDR是利用短脉冲信号发送到测试信号线上 xff0c 当信号到达另一端或者遇到不匹配点的时候就会发生反射回来 通过测量反射信号的时间和特征来判断线路的阻抗和不匹配点的位置 TDR测试需要专业的测试设备 xff0c 如时域反射
  • 开关电源的特性阻抗

    一 开关电源的特性阻抗好坏可以用以下几个量化指标来评估 xff1a 1 交流阻抗 xff08 AC Impedance xff09 xff1a 交流阻抗是指开关电源在交流信号下的电阻 电感和电容等电学特性 交流阻抗的好坏直接影响开关电源的驱
  • 学网络比不可少的网络协议分析神器-wireshark

    Wireshark是一款网络协议分析器 xff0c 可以用于捕获和分析网络数据包 xff0c 以便深入了解网络通信的细节和性能 xff0c 同时也可以用于网络安全分析和故障排除 Wireshark的主要功能包括 xff1a 1 捕获网络数据
  • C语言return的用法详解,C语言函数返回值详解

    C语言return的用法详解 xff0c C语言函数返回值详解 函数的返回值是指函数被调用之后 xff0c 执行函数体中的代码所得到的结果 xff0c 这个结果通过 return 语句返回 return 语句的一般形式为 xff1a spa
  • 网络编程——多线程编程

    文章目录 目的内容源代码及结果 1 Linux下的线程同步 1 1 编程使用互斥量实现线程同步 xff1b 1 2 编程使用信号量实现线程同步 xff0c 要求实现以下功能 xff1a 线程A从用户输入得到值后存入全局变量num xff0c
  • ARM-MPU内存保护单元详解

    ARM MPU 详解 简介 MPU Memory Protection Unit 内存保护单元 本文主要讲 armv7 m 架构 架构下的 MPU 在 armv7 m 架构下 xff0c Cortex M3 和 Cortex M4 处理器对
  • 玩转doxygen 之RT-THREAD

    玩转doxygen 之RT THREAD 文章目标 经常会看到小伙伴们遇到怎么写函数注释头疼 xff0c 以及如何生成漂亮的代码注释文档头疼 据我了解 xff0c 目前C语言中的代码注释规则有且只有一种比较常用 xff0c 就是doxyge
  • STM32如何将文件放到内部flash里面

    STM32如何将文件放到内部flash里面 背景介绍 上一篇讲到如何将STM32的FLASH改成文件系统 xff1a 如何不用外设在STM32片上FLASH做一个文件系统 https club rt thread org ask artic
  • 营运型手游开发、测试、正式的三阶段开发架构

    在手机游戏的畅销排行榜上 xff0c 可以看到大多数的游戏都是营运型的游戏 所谓的营运型游戏 xff0c 指的是游戏的开发并不是上架后就结束 xff0c 而是需要持续的配合游戏营运的需求 xff0c 进行游戏的更新 内容调整以及后续内容的开