怎么用c++做小游戏
小游戏运行时
2023年是小游戏蓬勃发展的一年,国内小游戏市场规模已经突破了 300 亿大关。
在小游戏平台技术选型方面,微信、抖音、手Q、快手等小游戏平台选择了 Runtime(小游戏运行时)技术架构,而非传统的 H5/Webview。
华为、小米、OPPO、vivo 等手机厂商的快游戏平台也不约而同地选择了 Runtime 作为运行环境。
为什么会如此呢?
Runtime 架构是什么样的呢?
H5/Webview 的痛点是什么呢?
与传统的 H5/Webview 相比,Runtime 又有哪些优势呢?
今天我们就以 Cocos Runtime 为例,通过具体的数据来回答上面的问题。
Cocos Runtime 有哪些优势?
![](https://p0.ssl.img.360kuai.com/t01d7a991e869ccc0a5.jpg)
做一个能运行的 Runtime(小游戏运行时)方案,或许不难;但要想做一个运行性能高、内存占用少、稳定性强、兼容性好、崩溃率低、机型覆盖率广等满足实际大规模商业化运营要求的小游戏运行时方案,则需要大量的项目验证、功能迭代和细节修复。
Cocos Runtime 由引擎和操作系统领域资深专家带队,连续迭代了近 7 年,已对外发布了数十个线上版本。
支撑并服务了数十家各行业头部厂商,运行了上万款产品,数十亿用户安装,是全球唯一一个经过了国内外大厂大规模商用验证的 Runtime 类产品,满足头部大厂极度苛刻的稳定性、兼容性和机型覆盖要求。
长时间的迭代、数十个不同的平台、大量的线上项目验证、海量的用户设备覆盖、持续的问题修复与细节优化,使得 Cocos Runtime 成为了一套高性能、高可用、高安全、可多实例运行的成熟商业化小游戏和互动数字内容运行时 SDK。
凭借其原生系统硬件的利用能力,它可以呈现出更丰富的内容、更快的响应,使整个游戏体验无比接近原生游戏。
基于其诸多优势,Cocos Runtime 已经被广泛运用于社交App/电商App的小游戏平台,手机厂商的快游戏平台,教育、直播、车机、智能硬件 IoT 等需要即点即玩型数字互动内容的诸多领域。
Cocos Runtime 基础特性
- 产品成熟稳定,上万款游戏验证,数十亿用户安装
- 高性能,高兼容性,轻量化,内容支持流式化远程加载,秒级即开
- 商业化方面具备更高安全性
- 内容来源丰富,支持国内外主流 H5 引擎
- 集成快速,仅需几天
- 支持同时运行多个 Runtime 实例
- 支持引擎分离
- 支持 WebGL2.0
- 支持 WebAssembly
- 支持多操作系统,跨 iOS、Android、PC、鸿蒙等平台
Cocos Runtime 技术架构
为了减少开发者的适配成本,市面上几乎所有的 Runtime 在接口和架构设计时几乎都遵循了相似的体系,逐渐形成了一套 Runtime 标准。
我们以 Cocos Runtime 架构为例,来看看主流的小游戏 Runtime 架构的样子。
![](https://p0.ssl.img.360kuai.com/t01dfc1e8c435dfc354.jpg)
从上图中可以看出,小游戏运行时的基本特征为:
- 能够轻松对接所有 H5 引擎
- 拥有一个以引擎技术和操作系统技术相结合的核心组件层
- 拥有跨主流平台的能力
在 Cocos Runtime 实现中,Cocos 引擎团队凭借着深耕了多年的引擎技术和操作系统架构能力,使用 C++ 编写了一套轻量级的系统调用层,并使用 V8 引擎实现了一套游戏运行必需的 JS 相关接口。
这样一来,不仅能够快速对接所有基于 Canvas 渲染的游戏引擎,同时又具备高性能、低功耗的特点。
由于精简的 Runtime 内核无需考虑游戏无关的应用场景,重点关注游戏应用场景的性能和体验优化,并且提供了很多游戏需要的硬件访问接口,因此能够极大地减少系统开销,提升性能。
H5/Webview 痛点
采用 H5/Webview 的小游戏平台架构,会遇到下面几个问题。
- 冷启动速度慢:多个游戏切换时,很难做到无缝衔接
- 内存限制高:是一个黑盒,容易被系统回收造成闪退,无法支撑大型应用
- 设备覆盖低:Webview 需要机型和系统支持,系统占用也较高,导致过旧的硬件设备以及低端设备无法覆盖
- 兼容性低/崩溃率高:不同的设备厂商会采用不一样的浏览器内核,导致很难做到一致的兼容性,崩溃率很高
- 应用过审难:应用商店对 Webview 打包的 App 审核都较为严格,很容易出现上架被拒
- 内容管控风险:对游戏平台来说,开发者在审核后替换内容,切换支付,切换广告等带来的商业风险
Cocos Runtime vs Webview
接下来,我们通过一些实际的数据对比,来呈现 Cocos Runtime 相对于 Webview 的优势。
综合对比
![](https://p0.ssl.img.360kuai.com/t010477be1431be821d.jpg)
测试用例
我们选择了这个大批量渲染骨骼动画的场景作为测试用例。
![](https://p0.ssl.img.360kuai.com/t01cac3aaa1af418827.jpg)
项目地址:https://github.com/cocos/cocos-benchmark
渲染能力
可以看出,即使渲染了 2000 个单位, Cocos Runtime 依然能保证 30 帧。
![](https://p0.ssl.img.360kuai.com/t01fec21c3916566474.jpg)
内存开销
可以看出,随着单位数量的增加,Cocos Runtime 的内存开销的增长幅度是最小的。
![](https://p0.ssl.img.360kuai.com/t01ad6cee42e5a7c5cc.jpg)
从下面的低端机测试数据上,可以看出,在 Cocos Runtime 上运行的游戏,其画面帧数比 H5 版本高 30%,内存占用比 H5 版本低 10%。
![](https://p0.ssl.img.360kuai.com/t01b197214b5537eee5.jpg)
冷启动时间
可以看到,最优的情况下,相比 H5 提升了 50% 以上,平均提升了 16%。
![](https://p0.ssl.img.360kuai.com/t01eb3de0f7c8bbbf5b.jpg)
Cocos Runtime vs Native
有一些开发者,将 Cocos 引擎与原生 App 结合,实现了子游戏方案。这里,也有一个数据对比。
![](https://p0.ssl.img.360kuai.com/t01a18702b15a7e60e4.jpg)
行业趋势
有业内专家预测,2024 年,将会是小游戏赛道继续增长的一年,流行品类将从轻度休闲往中度转移。
届时,已入局的厂商会继续加码,未入局的厂商会争相涌入。
头部厂商和平台都选择了 Runtime 而非 H5/Webview,可以预见,后入场的厂商和平台选择 Runtime 作为小游戏运行环境将是大势所趋。
不仅是国内,海外小游戏市场也将风起云涌,离 TikTok 小游戏和 Youtube Playable 正式开放不会太久,Discord,Instagram 等平台也是虎视眈眈,深耕了多年的 Facebook Instant Game 也有可能顺势加注。
并且,每一个国家都有自己的手机厂商以及头部 App,他们或许也会参考国内小游戏成功的商业模式,发展出具备自己国家特色的小游戏平台。
可以预见,2024 年,将会是小游戏市场再度丰收的一年,
对于有小游戏运行时需要的厂商和平台,欢迎联系 Cocos 官方人员,获得更详细的 Cocos Runtime 相关信息。
联系邮箱:[email protected]
","gnid":"9ef8872420a12bedf","img_data":[{"flag":2,"img":[{"desc":"","height":"440","title":"","url":"https://p0.ssl.img.360kuai.com/t01d7a991e869ccc0a5.jpg","width":"1080"},{"desc":"","height":"478","title":"","url":"https://p0.ssl.img.360kuai.com/t01dfc1e8c435dfc354.jpg","width":"1080"},{"desc":"","height":860,"title":"","url":"https://p0.ssl.img.360kuai.com/t015d8a35b7769f6375.jpg","width":1080},{"desc":"","height":"485","title":"","url":"https://p0.ssl.img.360kuai.com/t01cac3aaa1af418827.jpg","width":"1080"},{"desc":"","height":"598","title":"","url":"https://p0.ssl.img.360kuai.com/t01fec21c3916566474.jpg","width":"1080"},{"desc":"","height":"601","title":"","url":"https://p0.ssl.img.360kuai.com/t01ad6cee42e5a7c5cc.jpg","width":"1080"},{"desc":"","height":"216","title":"","url":"https://p0.ssl.img.360kuai.com/t01b197214b5537eee5.jpg","width":"1080"},{"desc":"","height":"488","title":"","url":"https://p0.ssl.img.360kuai.com/t01eb3de0f7c8bbbf5b.jpg","width":"1080"},{"desc":"","height":"939","title":"","url":"https://p0.ssl.img.360kuai.com/t01a18702b15a7e60e4.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,otherc,fts0,sts0","powerby":"cache","pub_time":1705460580000,"pure":"","rawurl":"http://zm.news.so.com/3122b266697627f842dee198973c3cc5","redirect":0,"rptid":"cb3753eabaf7b2d6","rss_ext":[],"s":"t","src":"游戏茶馆","tag":[{"clk":"kgame_1:操作系统","k":"操作系统","u":""},{"clk":"kgame_1:app","k":"app","u":""},{"clk":"kgame_1:游戏","k":"游戏","u":""}],"title":"Cocos Runtime|构建小游戏平台的技术底座
扶宰阙4909有A,B,C,D,E,F六个状态,A和C,D和F,E和B,F和C分别等价,则全部最大...
仇凯娇13640278469 ______ 用绘图函数 TextOut(CString str)
扶宰阙4909win8.1中VC6.0怎么装VC助手VA - X -
仇凯娇13640278469 ______ 尝试兼容模式打开.具体右键 属性 兼容性 勾上兼容Xp sp3
扶宰阙4909三星GTS5230C游戏免费下载 -
仇凯娇13640278469 ______ 用百度,输入“**游戏破解”(**是手机型号),不加破解也行,大多游戏有中间收费的可能,破解的可以免费玩,电脑进阿Q资源找游戏好,全部免费
扶宰阙4909c/c++是如何破解软件的 -
仇凯娇13640278469 ______ 如果知道软件写的语言最好不过了,对你破解会有很大的促进然后要破解的话,有些软件是会加壳保密的,这个时候就必须脱壳,不过这个脱壳还是不复杂,毕竟是因为这个没有办法你自己来写脱壳,现成的工具就好,记得aspackdie好像就可...
扶宰阙4909VC++ MFC 应用VS2010的课本或者视屏教程下载资源,或者推荐书本关于VC++开发的,最好教程是用VS2010 -
仇凯娇13640278469 ______ VS2010的没有.VC++6.0 的一大堆VC++6.0网上有免安装的兼容win7的
扶宰阙4909该程序要求使用C++语言编写出权限组、权限、角色类,初始化数据,并对它们进行简单的输出.
仇凯娇13640278469 ______ 题目好长啊... http://hi.baidu.com/yanggq/blog/item/b6b7c3131cc01b28dd5401c1.html
扶宰阙4909我现在已经学会了C++编程的基本的语法规则,但是我还是不知道怎么去编写出应用程序. -
仇凯娇13640278469 ______ ........................编程和天赋有多大关系......................路漫漫其修远兮....编程语言只是基础....关键在于修炼内功.....盗用最流行的一句话:程序 = 算法+数据结构.想编写一个应用程序简单,hello world也叫应用程序,想编写出好的应用程序就需要很多...