关于这个问题,可以引用腾讯云技术社区的文章《邹伟:如何开发一款小游戏》来回答这个问题。
原作者邹伟,腾讯高级工程师。 现主要负责微信游戏业务后台系统的架构设计和研发管理。
下面主要选取了关于引擎选型、设备/环境适配、微信登录、缓存、开放数据域、分享、支付、性能、版本更新机制、运维等10个部分的文章向您介绍相关知识的小游戏开发。 更多详情请阅读原文。
从发展角度来看,小游戏是基于/+微信社交开放能力的新平台。 该框架分为三层,是典型的分层架构。 微信中有小游戏可以运行小游戏,操作系统本身可能涉及不同类型的设备。
如果你放大小游戏,你可以看到很多细节。 首先是游戏逻辑,也就是独立于平台的游戏逻辑的开发。 第二部分是游戏引擎,大部分会用到一些引擎工作流程以及各个系统封装的一些高层API。 第三部分是小游戏的框架是一个参考框架,但实际上它的底层不是,而是一个精简优化的平台。 小游戏只有一些与核心相关的渲染API。 这里的目的是让小游戏的能力适应更接近的环境,以便更高级别的游戏或者引擎本身能够更快地融入到平台中。
接下来我主要给大家介绍一下如何利用微信的能力来开发小游戏,主要分为以下10个部分。
1.选择小游戏引擎
首先,开发游戏时,必须选择引擎。 我们与发动机厂商也有比较密切的合作。 开发小游戏所用的引擎一定要适合。 例如,在底层,引擎可能一开始只支持原生游戏,必须对微信小游戏进行一些适配,依靠浏览器的独特能力。 、、这三个引擎已经支持小游戏的开发,网上也有相应的文章介绍如何发布到微信小游戏平台。
2.设备/环境适应
关于设备管理的适配,小游戏将会有API提供获取屏幕宽高、设备像素比等的能力。小游戏开发完成后,您还可以发起一个小游戏。请求在开发者工具中进行真机测试。 微信针对不同设备提供了测试集群,帮助开发者提前发现问题。 基础库本身提供的wx API是一个不断迭代更新的过程。 对于使用新能力的小游戏,需要实现低版本兼容。 例如,如果检测到不支持新API的较低版本被允许损害服务用户。 同时,如果某个低版本的用户比例较小,可以考虑直接在管理后台配置小游戏所需的基础库的最低版本。 当然,这也意味着,当这群用户接触到这款小游戏时,微信客户端会弹出A提示,要求用户更新到新版本的微信才可以使用这款小游戏。 如果他们不更新,他们可能会失去这个用户。
3.微信登录
小游戏的登录流程与小程序类似,需要用户自定义登录状态。 / 代表小游戏开发商与微信平台之间的信任协议,例如支付、托管数据上报等。 平台需要验证用户相关的签名,以确保请求来自小游戏开发商。 或用户。 它是应用程序状态,与用户无关。 它需要确保全局维护。 应该有一个中央控制模块来保证有效性。 同时本地的在有效期内可以直接使用,不用每次使用都生成新的。 否则,您可能会遇到呼叫频率限制错误,影响服务。 切记/不要放在前端代码中,否则可能会被恶意利用,损害小游戏开发者或用户的权益。
4、缓存
缓存类型包括数据缓存和文件缓存。 数据缓存为键存储,适合结构化小数据存储,上限为10MB。 文件缓存提供了完整的文件系统API,包括目录/文件的添加、删除、修改和读取。 适用于频繁使用的网络资源的本地缓存,上限为50MB。
与浏览器不同,微信只提供基本的存储管理能力,不会对存储满时存储什么、删除什么进行任何操作。 开发者可以灵活地自行定义缓存和淘汰策略,例如将经常访问的资源存储在文件系统中,并在文件存储满时清除一些最近不经常访问的文件。
5. 开放数据域
我们来谈谈开发数据域,这意味着向小游戏开放用户数据,同时保护用户隐私。 这是一个封闭的、独立的范围。 开放数据域是一个独立的目录,入口文件为.js。 目前的限制是只支持2D渲染模式,数据只能进不能出。 例如,一个排行榜必须是给用户看的。
我们简单看一下它的实现。 左侧是主域。 用户拿到这些数据后,实现排行榜其实也是一样的。 不同的是数据不能取出来,数据不能分析。 主域中有一个。 微信中的上屏是与屏幕关联的。 后者是离线的。 您可以根据需要使用离线的。 数据一旦打开,里面的数据就无法在上屏取出,下次也无法取出,保证了数据的安全。
因为我们的数据是在开发数据域,用户没有办法开发。 因此,开发者在开发过程中需要将所需的数据托管给我们,并与用户关联起来。 这样就可以在开发数据域中获取相关数据。 其应用场景包括好友排名、群组排名、超越好友提示等。当用户打字时,重复用户的所有操作,并且在屏幕上和屏幕外都获取用户的所有输入,并且不会公开数据穿透。