小游戏开发指南及过程中的难点问题

news2024/12/23 13:59:52

如果仅仅针对个人开发者来讲,要独立开发一款大型游戏几乎无可能,更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。

所以这里主要论述小游戏开发的情况,也就是小程序游戏,首先从小游戏的开发流程来看:主要分为游戏策划、UI设计、音效制作、代码编程和测试上线几个大的流程,中间也会穿插关卡设计、规则设计、人物设计等环节,可以看到其实小程序开发是一个工程量较大的项目。

但从整个流程和其中的环节来看,小游戏开发需要开发人员具备以下几点能力:

  1. 有一定的编程基础,例如 JavaScript、TypeScript
  2. 至少熟悉一种游戏开发引擎,比如 Cocos、Unity等
  3. 对游戏机制、游戏系统有一定的理解
  4. 有一定的 UI 界面审美
  5. 能够开脑洞、有创意能力

一、基本的理论

1、小游戏的内核是什么?

小游戏是小程序的一个类目,所以关键是需要掌握小程序技术,小游戏是微信开放给小程序的更多的能力,让小程序开发者有了开发游戏的能力。小游戏没有WXSS、WXML、多页面等内容,但加了一些渲染、文件系统以及后台多线程的功能。

微信小游戏只支持 JavaScript,当然可以编译为 JS 的 TypeScript 以及 CoffeeScript 都可以作为开发语言使用。

其次是小游戏所支持的游戏库 API,主要包含 HTML5 的 Canvas 2D API 和 WebGL 1.0 API,使用任何一种 API 都可以完成游戏最重要的渲染功能,不过不能够混用,除此之外,只有 WebGL 渲染模式可以支持 3D 渲染。

2、游戏引擎有什么作用?

游戏引擎是游戏研发的主程序接口,它为开发者提供了各种开发游戏的的工具,即可编辑游戏系统和实时图像系统的核心组件,其目的就在于让开发者可以快速的做出游戏而不必从零开始。

从理论上讲小游戏开发是可以直接使用 Canvas 2D 或 WebGL 的,但是门槛非常高,也非常费时费力的一件事。所以使用小游戏游戏引擎其实是非常明智的选择,引擎封装出的高层接口可以大大降低开发者的开发门槛,缩短项目周期。

目前国内的三家主流引擎 Cocos、Egret、Laya 均已支持小游戏发布,Phaser.js、Three.js 等国外 HTML5 引擎虽然并没有支持直接发布,经过一些定制也是可以成功运行在小游戏环境中。
在这里插入图片描述

3、插件对小游戏的玩法有什么帮助?

微信小游戏还提供了丰富的微信内部插件供开发者调用,使用这些接口可以完成用户登录、转发、排行榜等常规可以进行裂变的社交功能。也可以用到例如地图、表单等插件,丰富小游戏的能力,以最简单的办法让小游戏的玩法和效果持续得到强化。

二、上手开发小游戏

如果你有了比较好的想法和较成熟的游戏机制,并能够完成UI界面图的实现,就可以着手开始小程序游戏的开发了。

在这里我仅做初略方法的介绍,因为微信开放平台已经有非常细致的介绍了,细致到完全可以一步一步跟着进行操作:详情可以查阅

step 1 :注册一个小游戏账号

需要到微信开放平台完成小游戏账号的注册。

step 2:安装并启动开发者工具

在这里插入图片描述

包括最上方的工具栏,包含最重要的编译、预览和配置详情;左边是模拟器窗口用来展示游戏运行效果;右上方是代码编辑器,可以查看项目中的文件列表,编辑文本文件;下方是调试器窗口。

step 3:微信小游戏配置和入口文件

在微信小游戏项目中,project.config.json 和 game.json 配置文件是大家首先需要添加的,其中 project.config.json 可以定义你的小游戏 appid、游戏名、配置等。而 game.json 主要用于指定游戏朝向和网络超时时间。

step 4:编译和预览

微信开发者工具会自动监听脚本和配置的变动,发生变动时会自动更新,你也可以通过顶部的编译按钮触发重新编译。当你需要在手机上预览小游戏的效果时,需要点击预览按钮来生成二维码,扫码即可进入小游戏。

三、开发过程中的难点

小游戏开发和 H5 版游戏开发区别并不大,但是小游戏支持的库较少,并且大部分 H5 版开发所使用的到的库是不支持的。另外就是 H5 版游戏的实现方式选择性更多,比如跳一跳原版是使用 createjs 开发,而小游戏版并不能支持所有的引擎,只能通过上面的几个引擎改造适配。

此外整个开发过程中比较典型的困难环节还包括 SDK 能力挖掘、调试、资源管理、第三方库的移植。

1、开放的各种 SDK 接口能力挖掘

小游戏提供的接口能力包括到用户登录接口、转发接口、支付系统、网络接口、文件系统等一些列的接口,这些接口可以极大的丰富小游戏的可玩性,但是如何去发挥他的潜在价值是值得开发者们深入研究的。例如通过转发接口引导用户分析小游戏到聊天窗口引导好友联机;通过游戏的转发邀请获得额外的奖励等等。

2、小游戏的调试

调试是游戏开发的必经阶段,一个好的调试环境和调试工具也会大大提升开发效率。同事能够提高页面加载速度,减少游戏运行中的卡顿,使动画看起来更流畅,游戏的流畅程度及画面直接影响了用户体验。

尽管开发者工具比较好用,但是我们必须面对它的一大问题,它的模拟器运行环境和微信小游戏的真机运行环境可能并不完全相同。也就是说,有可能出现真机环境中的 bug 在模拟器环境中无法重现的问题。

3、资源的管理

小游戏环境和浏览器环境的另一大差异就是资源管理了,小游戏中会首先下载你提交的完整游戏包,再运行 game.js 来启动游戏。所谓完整游戏包,也就是开发者在微信开发者工具中所导入的资源,不管你是否需要这些资源,在玩家打开你的小游戏时,都会被完整下载。所以我们会尽可能减小自己的小游戏包体,将可以按需加载的资源,放在远程服务器上,用脚本进行加载。

4、第三方库的移植

目前部分第三方库已经发现有很多不兼容小游戏环境了,这里可以分享一个判断原则,如果是纯 JS 库,那么是没问题的,但是如果第三方库使用到了 DOM API,多半是无法支持。

最后的话

当然通篇主要研究的内容是微信小游戏,目前还有字节小游戏、百度小游戏、阿里小游戏、FinClip小程序游戏等。当我们开发了微信小程序后,我们也可以适配其他的小游戏平台,让自己的小游戏能够触达最广阔的用户群体,实现最大的价值。

其中 FinClip 小程序游戏还有个需要特别强调的点,只要开发小程序后适配 FinClip 平台,并在第三方 App 中集成 FinClip SDK 即可实现在第三方 App 中运行小游戏,第三方 App 可以是自己的,也可以是外部其他厂商的。这样一来小游戏的价值也能更加广阔,也不限于几大主流平台中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatGPT:12.12 之后更新的 chatGPT 的本地部署和接口调用,解决 response 403 (无法连接openai服务器)问题

文章目录问题源代码改动Session token 的获取cf_clearance 的获取user-agent 的获取将 config.json.sample 内容修改并移动位置附注:环境配置python > 3.7特别提示playwright & cf_clearancerevChatGPT 版本httpxOpenAIAuth删除 import 中的错误后记问题 因…

web网页设计期末课程大作业:基于HTML+CSS+JavaScript个人书画作品展示HTML模板(6页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Matlab论文插图绘制模板第69期—带误差棒的折线图(Errorbar)

在之前的文章中,分享了一系列Matlab折线图的绘制模板: 这一次,再来分享一种特殊的折线图:带误差棒的折线图。 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matl…

C语言判断一个整数是不是素数(质数)、求100以内的所有素数、求前50个素数

目录 一.什么是素数(质数 Prime) 二.判断一个整数是不是素数(质数)代码 三.求100以内的所有素数(质数) 四.输出前50个素数(质数) 一.什么是素数(质数 Prime&#xff0…

5、metasploit信息搜集

一、概念 针对目标在开放端口、以及运行的服务进行探测。portscan端口扫描mysql安全测试服务版本确定密码嗅探SNMP探测二、metasploit中信息搜集模块 2.1、use auxiliary/gather/ 与 use auxiliary/scanner/ 2.2、针对SMB版本探测(默认445端口) 也可以探…

vTESTstudio入门到精通 - CANoe工程导入vTESTstudio_02

前面我们已经讲完了如何配置出来一个vTESTstudio工程,并且编译成一个可执行的文件,接下来我们就是要把这块可执行文件导入到CANoe中,通过CANoe工程来执行我们编译的脚本,实现对应功能的测试,今天就是给大家分享如何导入。 二、CANoe工程导入vTESTstudio执行文件 1、创建一…

猿如意中的【blender】工具详情介绍

文章目录一、工具名称二、下载安装渠道2.1 什么是猿如意?2.2 如何下载猿如意?三、工具介绍四、blender介绍4.1 blender简介4.2 背景4.3 主要功能五、软件安装过程5.1 如何在猿如意中下载开发工具blender?5.2 下载blender软件截图5.3 blender安…

基于51单片机的数字电压表设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #define LED_GLOBAL 1 #include "led.h" void ledDelay(uint ms) { uchar delayi; while(--ms) { for(delayi0;delayi<124;delayi); } } void init_led(void) { LEDsegLedCode[0]; L…

四、JavaScript——基本语法

1.注释 <script>/*1.多行注释*///2. 单行注释</script> 2.大小写 JS严格区分大小写 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

Web前端105天-day42-JSCORE

JSCORE02 目录 前言 一、复习 二、函数在对象中触发方式 2.1.call 2.2.apply 2.3.bind 三、引用类型 四、构造函数 五、new 六、原型理念 ​七、原型 八、class 九、严格模式 十、ES6 十一、let与const 总结 前言 JSCORE02学习开始 一、复习 JS引擎具有自动修…

操作系统学习笔记_4 文件;磁盘

文件 有信息的数据集合。 文件包含的信息&#xff1a;文件名、标识符&#xff08;操作系统要看&#xff09;、类型、大小、创建修改时间、所有者、安全信息。 文件管理 文件分为无结构的流式文件和有结构的记录式文件。记录式文件由一条条记录组成。 文件存放在根目录里的…

DFGN-Dynamically Fused Graph Network for Multi-hop Reasoning 论文阅读

文章目录介绍相关工作text-based QA多跳QA推理模型段落选择器构建实体图编码 Query 和 ContextFusion Block 推理Doc2GraphDynamic Graph AttentionUpdate QueryGraph2Doc预测介绍 将 DFGN 模型用于HotpotQA &#xff08;TBQA类型的公开数据集&#xff09; QA任务注重从单一的…

ADI Blackfin DSP处理器-BF533的开发详解46:图像处理专题-Translation (图像平移处理)(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像平移处理&#xff0c;代码运行时&#xff0c;会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

【爬虫实战项目】Python爬取Top100电影榜单数据并保存csv文件(附源码)

前言 今天给大家介绍的是Python爬取Top100电影榜单数据保存csv文件&#xff0c;在这里给需要的小伙伴们代码&#xff0c;并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫&#xff0c;基本的是加请求头&#xff0c;但是这样的纯文本数据爬取的…

(四)springcloud之Nacos注册服务与发现-1

前言&#xff1a;一段时间来忙忙碌碌&#xff0c;回头发现很多技术已经更新了很多&#xff0c;很长一段时间都在忙其他的事情&#xff0c;以至于没有太多关注于微服务更新&#xff0c;今天更新了下版本以便于后期使用&#xff0c;突然发现很多东西已经被删除或直接改变了&#…

TIA博途_序列化指令Serialize的具体使用方法示例

TIA博途_序列化指令Serialize的具体使用方法示例 序列化指令的基本用途: 首先,我们可以查看TIA博途中的帮助文件说明,如下图所示: 简单总结就是: 把复杂的数据或数据类型(例如UDT、STRUCT等)转换成BYTE或CHAR类型的数组,从而方便数据处理,通常在通信数据的处理中可以…

DBCO-PEG-amine,二苯并环辛炔PEG氨基 MV 1K、2K、3.4K、4K、5K、10K

1、试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; DBCO用于无铜点击化学。在没有铜催化剂的情况下&#xff0c;与叠氮化合物的反应非常迅速。这种反应是非常迅速&#xff0c;温和&#xff0c;和生物相容性&#xff0c;NH2和带N…

数据结构---KMP算法

一、KMP算法简介 KMP算法是一个字符串匹配算法&#xff0c;对暴力算法BF的一种优化&#xff0c;使得时间复杂度大量的降低。 基本概念&#xff1a; s[]是字符串&#xff0c;简单来说&#xff0c;就是比较长的字符串。p[]是模式串&#xff0c;简单来说&#xff0c;就是比较短的…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了&#xff0c;现在一直用来控制家里的家电。于…

selenium + python自动化测试环境搭建(有手就行)

selenium 是一个web的自动化测试工具&#xff0c;不少学习功能自动化的同学开始首选selenium &#xff0c;相因为它相比QTP有诸多有点&#xff1a; 免费&#xff0c;也不用再为破解QTP而大伤脑筋 小巧&#xff0c;对于不同的语言它只是一个包而已&#xff0c;而QTP需要下载安装…