主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
如何快速开发一款热门游戏?“爆款”是一个运营导向的术语。 今天我要跟大家分享的内容可能比较技术性。 也就是说,如何利用微信的开放特性来开发小游戏。 在小游戏的第120天,一些重要的消息公布了,其中包括一些可以用来代表“热门”一词的数字。 微信小游戏于3月3日正式获准由第三方开发者发布,现在部分小游戏的用户量已经超过1亿,Android上也有几款月收入超过1000万的小游戏。 。 想必大家都体验过微信的好处,小游戏的流行。
与流行相关的两个知识:一是开发方法。 首先,你需要利用微信的社交相关性。 社交分享和互动在微信的分布式场景中非常重要,因为传统的流量分发没有主入口。 第二是易用性。 根据游戏爆款后的数据,我们可以得出两个结论。 具备这两个特征并不一定意味着你就能开发出一款受欢迎的游戏。
什么是小游戏?
首先介绍一下什么是小游戏。 小游戏特指微信小游戏。 这是小程序的一个子类别,可以在微信内轻松获取和传播。 。 点击播放。 提供出色的用户体验。 从发展的角度来看,小游戏是一个基于Canvas/WebGL+微信社交开放特性的新平台。 该框架分为三层,是典型的分层架构。 微信有一个小游戏运行时来运行小游戏,操作系统本身可以包含不同类型的设备。
通过放大小游戏的运行时间,您可以看到许多细节。 首先是游戏逻辑,也就是平台无关的游戏逻辑的开发。 第二部分是游戏引擎,大部分使用了一些引擎工作流程以及各个系统封装的一些高层API。 第三部分是weapp。 小游戏框架虽然指的是Webview框架,但它的最底层其实根本不是Webview,而是针对Webview的精简优化的平台。 小游戏只有少数与核心相关的渲染API。 这里的weapp-adaper是为了让较小的游戏功能适应类似Webview的环境,允许更高级别的游戏和引擎本身更快地集成到Webview中。在平台上。
微信的运行时暴露了微信API,所有功能都通过微信API发布。 最底层最基本的功能都是和渲染相关的,即Canvas 2d和WebGL。 其他与微信相关的功能都是独立的,因此小游戏虽然结构与小程序不同,但用户体验上并没有显着差异。 迷你游戏没有页面的概念,它们的实现也不完全是网页视图。 不必要的部分已被删除。
一般来说,小游戏的入口点是game.js。 游戏可以使用一些底层功能来绘制其整个界面。 配置文件game.json主要用于配置小游戏是水平方向还是垂直方向。 Minigame,游戏Gobal的全局对象类似于Web视图窗口对象,支持JavaScript语言。 然而,迷你游戏的一个重要限制是禁止动态执行代码。 开发者必须先提交审核,审核通过后才能发布给普通用户。 另外,小游戏需要相对大量的代码,包括引擎,因此大小限制比小程序大。 初始包大小限制为4M。
我们来谈谈Webview适配器。 其最初的目的是帮助游戏开发者更加熟悉我们的平台,因此我们尽最大努力使我们的平台在功能上适应网页视图。 其实这个适配也是很简单的一层。 例如,浏览器使用图像对象来创建图像,而小游戏则通过 wx.createimage 创建图像。 您需要对代码进行一些简单的调整。 例如,Canvas和Document都是在适配器中实现的。 您可以在链接中了解代码。 虽然有多个优化版本,但官方未来不会继续维护这个适配器,因为我们专注于构建底层功能。 如果每个人都熟悉这个平台,开发游戏就会变得更容易。 例如,Document 对象与迷你游戏框架本身中的常规对象没有什么不同。 这是适配器所做的简单改编。
下图是小游戏能力的概述。 最近的小游戏能力这次迭代比较快,有些功能还没有列出。 比如最近发布的一些游戏圈、健康系统相关的接口还没有列出。 我们先来看看基本功能。 渲染部分同时支持WebGL1.0和Canvas 2D。 这里的Canvas已经接近浏览器标准了。 同时,这里可控帧率的概念是指如果小游戏在后台运行,可以尽可能降低帧率。 在多媒体部分,小游戏还无法像小程序那样实现实时音视频流。 未来我们将进一步支持这一点。 网络IO部分类似于小程序。 它还提供了多个 UI 组件,例如键盘升降器和模式对话框。
小游戏社交开放功能已对外发布。 最重要的功能之一是开放域。 这暴露了微信友情系列供开发者协同使用,但也有一定的局限性。 由于小游戏的去中心化性质,共享这部分也非常重要。 开发人员应该考虑如何利用此功能。 代码方面,初始包限制为4MB,因此一些小游戏的代码大小可能会比较大。 我们最近还计划将异步加载代码的能力分包出去,但这些代码需要我们进行审查。
如何开发一个小游戏?
我有一些简单的游戏,我不是游戏开发专家。 ,接下来我会详细介绍如何利用微信的功能来开发一个小游戏。
选择小游戏引擎
首先,在开发游戏时,您需要选择一个引擎。 我们和引擎厂商的合作也比较密切,开发小游戏所用的引擎一定要合适。 例如,在最底层,引擎最初只支持原生游戏,需要根据浏览器的具体能力对微信小游戏进行一些适配。 三个引擎已经支持小游戏开发:Cocos Creator、Egret 引擎和 LayaAir 引擎。 关于如何发布到微信小游戏平台,网上也有相应的文章。
设备/环境适配
关于设备管理适配,小游戏包括屏幕宽高、设备像素比等。完成游戏开发后,您还可以在开发者工具中发起物理测试请求。 微信针对不同设备提供了测试集群,帮助开发者提前发现问题。 基础库本身提供的wx API是一个不断迭代更新的过程。 对于使用新功能的小型游戏,您需要实现向后兼容性。 例如,如果我们发现不支持新 API 的旧版本可能会损害您的服务用户。 同时,如果您的特定较低版本的用户比例较小,您可以考虑直接在管理后台配置您的小游戏所需的最低版本的基础库。 当然,这也意味着,当该用户群访问这款小游戏时,微信客户端会弹出提示,要求用户更新到较新的微信版本后才能使用这款小游戏。 如果您不更新,您可能会失去该用户。
微信登录
小游戏的登录流程与小程序的登录流程类似,用户需要自定义登录状态。 appsecret/session_key代表小游戏开发者与微信平台之间的信任协议,例如汇报支付、存储数据等。 平台必须验证access_token,如果与用户相关,还必须验证session_key上的签名,以确认该请求来自小游戏开发者或用户。 access_token是应用状态access_token,与用户无关。 必须在全球范围内维护一份副本。 需要一个中央控制模块来保证access_token的有效性。 同时,本地缓存的access_tokens在其生命周期内直接被使用,而不是每次使用时都被访问。 生成新的access_token。 否则,您可能会遇到调用频率限制错误,影响您的服务。 请注意不要在前端代码中包含 appsecret/session_key。 否则可能会被恶意利用,损害小游戏开发者和用户的权益。
缓存
缓存类型包括数据缓存和文件缓存。 数据缓存为key-value存储,适合小型结构化数据存储,上限为10MB。 File Cache提供了完整的文件系统API,包括添加、删除、修改和读取目录/文件。 适合频繁使用的网络资源的本地缓存。 上限为 50MB。
还有与浏览器的区别在于,微信仅提供基本的存储管理功能,无法控制存储满时保存和删除的内容。 开发者可以实现自己的缓存和删除策略,例如可以灵活定义将经常访问的资源存储在文件系统中,以及在文件存储已满时删除一些最近没有访问过的文件。
开放数据域
我们来谈谈数据域开发。 这意味着将用户数据暴露给小游戏,同时保护用户隐私。 这是一个封闭的、独立的 JavaScript 作用域。 开放数据域是一个单独的目录,其入口文件是index.js。 目前的限制是它仅支持 2D 渲染模式,并且数据只能输入,不能退出。 例如,排名列表必须对用户可见。
让我们快速浏览一下它的实现。 主域位于左侧。 一旦用户有了这些数据,排名列表实际上就变成了画布。 不同之处在于 Canvas 无法检索数据并分析数据内容。 主域有一个画布。 在微信中,顶部屏幕的Canvas与屏幕关联,其次是离线Canvas。 可以根据您的需要使用离线画布。 数据一旦打开,就无法调取上屏Canvas中的数据,也无法调取下一个Canvas,保证了数据的安全。
数据属于开发数据域,用户没有办法开发。 因此,开发人员需要托管所需的数据,并在开发过程中将其与用户关联起来。 这样就可以在开发数据区获取相关数据。 其应用场景包括好友排名、群组排名、超出好友提示等。 当用户键入时,会重复用户的所有操作,并且所有用户的输入都会在屏幕上和屏幕外画布中捕获。 开放数据将变得普遍。
分享
当用户在游戏中获得高分时,他们可以与朋友竞争。 自定义传输窗口允许您自定义标题和图像。 但现在有很多小游戏让用户非常厌烦。 他们有很多设置需要在允许您玩游戏之前共享。 这是大家需要思考如何避免影响用户体验的部分,但是我们需要在这里找到合适的平衡点来鼓励小游戏互动。 同时,如果你在这个群聊中分享数据并关联小游戏,就会出现一个小游戏平台。
支付
小游戏支持虚拟支付,但目前仅适用于Android系统。 目前,唯一的选择是存储货币。 它大致可以分为两个过程。 首先,用户用金钱购买游戏币,与游戏服务器无关。 发起支付后,微信客户端异步生成订单供用户确认支付。 平台负责将用户的人民币兑换成相应的游戏币并存储在用户相应的游戏账户中。 二是使用游戏币购买道具。 开发者可以向用户发放游戏内道具减去相应的游戏币。 扣除游戏币的过程需要特定的交易机制,以保证即使在网络异常的情况下交易也能成功。 游戏币扣减接口支持根据订单ID去重。 这意味着如果出现网络超时等情况,开发者可以使用相同的订单ID重试扣款,直到返回明确的响应。
性能
小型游戏中常见的性能问题通常是由内存引起的。 如果占用内存过多,会被微信客户端主动关闭。 因此,开发者在用户游戏过程中必须及时释放未使用的内存,特别是Canvas和Image类中的大对象。 同时可以主动调用wx.triggerGC来触发底层回收。 相应的资源。 对于与游戏逻辑相对独立的工作,可以考虑在worker中实现。 小游戏提供了独立工作线程执行JS逻辑的能力。
版本更新如何进行
小游戏分为热启动和冷启动。 冷启动是指内存中没有正在运行的小游戏实例的情况。 接下来,开始小游戏。 热启动是指小游戏的运行实例仍然存在于内存中,但暂时切换到后台。 此时,用户会触发小游戏并再次返回前台。 当用户单击“开始”时,游戏将在游戏运行时加载。 单击右上角的菜单,按钮将出现在背景中。 如果您在一定时间内重新启动,它将立即恢复并释放内存。
小游戏在冷启动期间检查小游戏版本。 如果有新版本请下载返回本地计算机后,您可以在下次冷启动时使用最新版本。 当然,我们也提供了API,供开发者决定是否强制更新,并在有最新版本时应用。
运维
管理端提供服务的发布、回滚、暂停等功能。 开发人员可以充分利用该平台的功能。 比如后台操作,js可能会报错。 脚本错误主要是由于操作过程中未捕获的异常引起的。 此类异常可能会导致用户的小游戏前端 js 逻辑暂停执行。 同时,平台还提供完善的数据分析服务,您可以使用助手通过小游戏进行数据分析。
推荐:《小程序开发教程》
下载微信应用
微信是一款支持发送语音消息、视频、照片和文字的移动应用. 通讯软件。 微信带来了全新的移动通信体验,您可以单独或群组聊天,还可以根据您的地理位置查找附近的人。 有需要的朋友,请快来保存您的下载体验吧!
这几篇文章你可能也喜欢:
本文由主机参考刊发,转载请注明:如何利用微信小程序开发小游戏?(实用教程)(微信小程序与小游戏开发) https://zhujicankao.com/124130.html
评论前必须登录!
注册