A5交易快速 安全 高效
18年+专注服务
20万笔+交易
500万+站长创业者
500万+新媒体
交易加群
本站微信群
呼叫客服QQ800027588
A5交易手机版
返回顶部
文章资讯企业服务增值电信
如何快速开发一个小游戏?

一、如何快速开发一个小游戏?

如何快速开发一款火爆的小游戏?“火爆”是一个偏运营的词,在小游戏上线120天《微信开发者》公众号有一篇推文,其中有几个数字或许可以用来描述“火爆”这个词。截止微信小游戏正式允许第三方开发者发布已有22天,对外发布的小游戏达300多款,注册用户总规模过亿的游戏有数款,安卓月流水过千万的也有数款。

该文还提到与火爆相关的两个姿势。一是社交匹配度,在小游戏这样一个去中心化的大背景下,让游戏内容和微信社交相结合是一个很重要的点,同时开发者也需要在利用社交互动提升用户体验和群聊分享造成用户骚扰之间选择一个平衡点,过犹不及。第二是操作简便度,说的是游戏易上手操作简单。这是我们根据游戏成为爆款后观察得出的结论,并不是说具备这两个特性就一定能开发出一款火爆的游戏,并且新的爆款游戏也不一定符合这些特点,仅供参考。

今天介绍的内容更倾向于技术方面,所以“火爆”就从标题里面去掉了,并且也不会介绍具体的游戏逻辑如何开发,而是更偏向于如何利用好微信的开放能力开发一款小游戏。

什么是“小游戏”?小游戏是什么?

首先为大家介绍一下小游戏是什么。从普通用户的视角看,小游戏是小程序的一个子类目,可在微信内被便捷的获取和传播,即点即玩,具备出色的用户体验。小游戏是小程序,普通用户分不清也无需分清。

小游戏Runtime

如果放大小游戏的Runtime可以看到很多的细节,这是一个典型的分层架构:

最上层蓝色部分,是游戏代码,分为游戏逻辑,游戏引擎、weapp-adapter三部分。大部分游戏开发会用到一些引擎的工具、工作流,以及利用引擎封装的高层API去实现游戏逻辑。其次是weapp-adapter,因为小游戏的底层一方面不是webview,可以简单看成是webview经过精简、优化过后的平台;另一方面核心能力的实现上却参考了webview。所以这里如果有一个适配器,把小游戏的底层API——wx API适配到一个接近webview的接口,对上层引擎、已存在的游戏接入微信小游戏平台则会更加容易,这个就是weapp-adapter的作用。其中只有游戏逻辑是必要的。

可以看到,在架构上小游戏和小程序是有差别的,小游戏没有页面概念的,wxss/wxml不再存在。其次,底层实现也不是webview,小游戏和webview的关系只能说是渲染相关的核心能力可以通过weapp-adapter的简单适配保持接口一致,但同时很多webview上存在的功能并没有对等的实现,比如小游戏就没有DOM/BOM的概念,也没有全局的document/window对象。

小游戏的入口为game js文件,语言为Javascript,但有一些限制,比如禁止执行动态代码,因此eval、new Function等能力是不支持的。配置为game.json,可以配置横竖屏、接口超时等参数。js里面可以组合wx API的能力来实现游戏逻辑, 非代码类的资源应该尽量放到cdn,减少整个代码包打包后的大小,以加快用户首次进入时的速度,微信对首包的大小目前限制为4MB。

Webview Adapter

下面来说一下Webview Adapter,它的初衷是为了让游戏开发者更好地熟悉我们的平台,所以我们的平台在能力上会尽可能地与webview做一些适配,其实这个适配也是很简单的一层。比如说我们在浏览器里面使用image对象创建一个图片,而在小游戏里是通过wx.createimage来创建的,在代码中需要做一个简单的适配。

以此类推,常见的Canvas、document对象都是在Adapter中通过一个简单的适配实现的,大家可以研究链接中的代码。之后官方不会继续维护这个Adapter,我们会更专注于底层能力的建设。

小游戏能力概览

下图是小游戏能力的概览,小游戏能力的迭代比较快,部分能力还没有来得及罗列出来。比如最近刚发布的游戏圈、健康系统防沉迷相关的一些接口。

我们先看一下基础能力,在渲染这部分WebGL1.0和Canvas 2D都是支持的,这里的Canvas更接近于浏览器里面的标准。同时,这里提到的可控帧率的概念,如果小游戏在后台运行的话,可以尽量将帧率降低。

在多媒体部分,小游戏还不能像小程序一样实现实时的音频视频流,这是我们在后续要进一步支持的。网络IO的部分与小程序也是类似的,我们也提供了一些UI的组件,比如说拉起键盘,模态对话框等。

小游戏的社交开放能力现在已经对外了。其中最重要的一个能力是在开放域将微信的好友关系开放出去,给开发者使用,考虑到对用户隐私的保护会有一些设计上的限制。

因为小游戏去中心化的特点,分享这一部分也是非常重要的,开发者要考虑如何将这个能力利用起来。在代码方面,因为首包限制是4MB,但部分小游戏的代码量可能比较大。我们最近也在规划一个分包的能力,允许异步加载代码并执行,但这个代码是一定要经过我们审核的。

如何开发一款小游戏?

那么如何开发一款小游戏?因为我本人也只是开发过一些简单的游戏,并不是专业进行游戏开发,所以接下来我会更多地介绍一下如何利用微信的能力来开发小游戏。

选择小游戏引擎

微信跟引擎商也有比较密切的合作,一般现在的游戏引擎都会支持发布到多个平台,对微信小游戏这个新平台而言,已经有一部分引擎做了适配,比如Cocos Creator、Egret Engine以及LayAir Engine。适配的主要工作,类似之前提到的weapp-adapter,把wx API的能力,和引擎衔接起来。

比如引擎一般会把小游戏平台和webview平台对标,适配过程就是把wx API对应到webview的能力,同时把只存在于webview能力的依赖去除,比如不再依赖BOM、DOM。已适配的引擎都有相应的文章介绍如何把游戏发布到微信小游戏平台。

设备/环境适配

小游戏会有API提供获取屏幕的宽高、设备像素比等能力。小游戏开发完成后,在开发者工具也可以发起真机测试的请求,微信提供了不同设备的测试集群,帮助开发者提前去发现问题。基础库提供的wx API本身是一个不断迭代更新的过程,对于使用了新能力的小游戏,需要做低版本兼容。

微信登录

小游戏的登录过程,跟小程序是类似的。需要用户自己去定义登录状态。appsecret/session_key代表的是小游戏开发者和微信平台之间的一种信任约定,比如支付、上报托管数据,平台方需要验证access_token(只有appsecret才能换得到),和用户相关的还要验证session_key的签名,才能保证请求来自于小游戏开发者/用户,而不是恶意的第三方和随意捏造的用户。

access_token是一种应用态的access_token,和用户无关,需要保证全局维护一份,应该有一个中控的模块去保证access_token有效,同时在有效期内直接使用本地cache的access_token,而不是每次使用都去生成新的access_token,否则可能遇到调用频率限制的错误而影响服务。切记appsecret/session_key不要放到前端代码中去,否则可能会被坏人利用损坏小游戏开发者/用户的权益。

缓存

缓存类型包括数据缓存和文件缓存两类。数据缓存即key-value存储,适合结构化类型的小数据存储,上限为10MB。文件缓存提供了一个完整的文件系统API,包括目录/文件的增删改读,适合针对经常使用的网络资源做本地缓存,上限是50MB。

和浏览器不同的是,微信只提供了基本的存储管理能力,并不对存储什么,和存储满时删除什么做一些操作。开发者自行灵活定义缓存以及淘汰策略,比如对经常访问的资源存储到文件系统以及在文件存储满时,清理一些最近不常访问的文件。

开放数据域

开放数据域是一个封闭、独立的 JavaScript 作用域,和执行游戏逻辑的环境——称为“主域”隔离。其目的是在保证用户隐私的前提下开放用户数据给第三方,提升小游戏的整体用户体验。以下为物理视图,主域的入口为game.js,开放数据域则是一个独立的目录,其入口文件为index.js。

主域和开放数据域的通信受到严格的管制,基本原则是只进不“出”。

•只进:允许外部的数据进入开放数据域,即主域可以随时postMessage到开放域,以及开放域引用主域准备好的本地资源

•不“出”:不允许开放数据域的数据被上传到第三方服务器去。因为开放数据域里面,index.js是可以直接访问到用户敏感数据的,比如同玩好友数据。当然最终开放数据域需要index.js在综合各种数据后把数据以图形图像的方式渲染到sharedCanvas上,在主语sharedCanvas允许draw到主域的上屏Canvas上,最终用户会在显示屏上看到game.js画出来的好友排行榜、群排行榜或好友超越等社交互动信息。

在开发数据域中的数据,开发者没法把数据拿出去和游戏数据做关联,所以如果需要在开放域下展示的游戏数据,比如分数,开发者需要将该数据通过上报接口把游戏数据托管到平台。这样就可以在开发数据域里面就取到相关数据,其应用场景有好友排行、群排行榜、超越好友提示等。

分享

包括自定义分享和系统菜单分享,可以分享到群聊、单聊。也可以把分享上下文与特定的群关联,实现一些群PK、群排行榜的场景。分享是一把双刃剑,需要谨慎使用,一方面避免过度骚扰用户/群聊,另一方面增强社交互动提供好的游戏体验,需要找到一个合适的平衡点。

支付

小游戏在安卓下支持虚拟支付,它的方式目前只有一种:即货币托管的方式。主要分为2个流程:

1.充值:RMB -> 游戏币,这里开发者只需要拉起支付的流程,平台负责把用户RMB兑换成对应的游戏币,存储到用户对应的游戏帐号上

2.使用游戏币购买道具:开发者可以扣除对应的游戏币,给用户发放游戏内道具,扣除游戏币的过程需要有一定的事务机制,去保证在网络异常的情况下交易正常。扣除游戏币的接口支持根据订单id去重,意味着网络超时等情况下,开发者可用同样的订单id去重试扣除,直至返回明确的响应。

以下为简单时序图,部分角色针对开发者无需关心的部分做了相应简化处理:

性能

小游戏常见的性能问题,一般是内存造成的。如果内存占用太多会被微信客户端主动关闭,因此开发者在用户游戏过程中要及时释放不再使用的内存(js代码去除引用,或主动调用对应资源的释放接口,如果有的话),特别是Canvas和Image类大型对象,同时可以主动调用wx.triggerGC触发底层回收对应资源。

对于和游戏逻辑相对独立的工作,可以考虑在worker中去实现,小游戏提供了独立的worker线程执行js逻辑的能力。

版本更新机制

小游戏启动的过程分为冷启动和热启动。冷启动是指内存中无该小游戏的运行实例的情况下,启动小游戏的过程;热启动是指小游戏的运行实例在内存中还存在,只是暂时切换到了后台,这时用户再次触发小游戏回到前台的过程。

小游戏会在冷启动时检查小游戏的版本,如有新版本,在下载回本地后,下一次冷启动即可使用最新版。当然,我们也提供了API可以供开发者决策在有版本可用时,是否需要强制更新。

运维

特别提醒,小游戏有完善的后端监控,可以通过“运维中心”开启,比如脚本错误监控。脚本错误主要由运行过程中未捕获的异常触发,需要重点关注。该类异常,可能会导致用户小游戏前端的js逻辑暂停执行。

同时,平台也提供了完善的数据分析服务,可以通过“小游戏数据助手”进行数据分析。

二、如何开发一个app?

首先,制作一款APP,必须要有相关的idea(主意),也就是说,第一步是APP的idea(主意)形成。

其次,就是通过那些idea来进行APP的主要功能设计以及大概界面构思和设计。

App的开发是一个不断推敲的过程。

首先,如果要做一款app,必须要前期进行沟通,初步表明此款app要实现的效果,属于哪个类型的app。在功能和实现价值基本敲定的情况下,开始进入项目评估阶段。这个时候产品经理会根据之前商定的功能进行价格和工期的评估,确立一个初步的项目排期。在系列的前期工作得到客户认可的情况下,签订合同正式开始项目。项目开始各个部门就开始项目的碰头会议,设计部门开始设计UI(产品界面)和UE(用户体验),针对产品开展创意设计,形成初步的效果图,经过首次客户的确认。

在根据交流的具体结果进行二次修改,最终与客户确认高保真视觉图,开始进入研发阶段。

经过工程师的一段时间研发,产品基本成型,正式开始测试。测试合格,确认没有bug后与客户进行沟通,开始验收。由客户进行测试,提出修改意见。

客户验收合格满意后,开发者会将app交付客户,客户根据APP预估的访问量、用户数量等来进行服务器的选择,服务器可以自己购买管理,也可以购买后托管,也可以直接租赁。服务器的好坏也直接影响APP用户体验的好坏。

选定好服务器以后APP就可以正式上线。

具体的我们可以看下这个APP开发标准流程信息图:

在上线这个步骤中,首先要在前期预留时间。

苹果的APP store审核一个应用需要一周左右时间,所以如果是计划上规定上线时间的项目,开发测试一定要提前半个月完成,以给上线审核预留时间。

安卓各市场一般审核较快,普遍在3天左右即可。

安卓市场众多,选取哪些平台上线比较好呢。如果此APP不牵扯到独家合作的话,那建议上线国内主流的平台,如安卓市场、安智市场、豌豆荚、应用汇和机锋市场等等。一些不出名的市场会从大型市场上抓取部分应用,所以发布不必涵盖所有市场。

第二部分:上线所需资料与注意事项

一、申请成为开发者

1. 公司开发者上传营业执照扫描件(已年检)

2. 个人开发者上传个人有效身份证的正反两面扫描件

3. 所有上传证明材料必须真实有效;

4. 开发者提供的联系人,联系电话将作为手机应用市场与开发者联系的渠道,需真实有效

二、上传软件资料注意事项

1.软件名称、文字介绍及截图不能违反国家相关规则;

2.软件介绍里有网址的,必须与软件开发者或者内容相关,不得有其他无关内容

3.软件图标、截图必须来源于上传软件且内容清晰,与当前版本对应

三、app发布流程中需注意:

1.确保软件能正常安装、使用、卸载,保证良好的用户体验

2.不得抄袭,如有侵权行为则不会通过审核、已经上线软件将立即下架

3.不违反国家相关规则;

4.如软件有收费内容,必须给用户以明确的提示

5.如软件含有内置SDK(软件开发工具包),须不含违反国家相关法律的信息;

四、手机app框架和原型需求图生成

1.制作app需求,和客户沟通确认app

2.管理平台开户

3.双版本app框架输出

4.App内容架构组织

五、App ui设计及制作

1.手机app界面设计——app素材收集与加工

2.手机app图标设计——app内容制作上传

3.客户确认

六、手机App程序测试调优

1.App内容测试

2.App性能测试

3.App功能测试

4.App视觉测试

七、手机App应用上线发布

1、App store发布

2、主流安卓市场发布

3、App下载页(web/wap)发布

4、二维码生成

5.App应用手册

总的来说:简洁舒适的界面+新颖吸引的内容+良好的服务器+定时更新升级=好的用户体验。

三、我想开发一个4399小游戏,如何开发?

首先你得懂游戏语言,编程你都得学会,然后用引擎做游戏,自己选择,还要有模型,这就涉及到用美工技术方面

想要做一个好点的游戏,一个人几乎不可能,毕竟地图人物模型都得自己做,极其耗费时间,而且要学很多东西(在大学里有专业),不是那么简单的事

如果你真的无聊,可以做做小游戏,FLASH还是很简单的,一个月就能学会使用,虽然看起来不怎么样,但毕竟是自己做的嘛。。

四、如何快速开发一个APP?

方法/步骤1:

使用他们的服务首先就是要注册账号了,注册之后需要邮箱激活一下。

方法/步骤2:

注册成功之后我们先登陆网站看下里面的内容。左边的大按钮是创建我们的应用了。右上角就是一些控制台,文档等内容。

方法/步骤3:

那我们就先创建一个应用吧,点击创建应用,弹出对话框,我们选择Native,即创建客户端软件。输入一些基本信息点击创建。

方法/步骤4:

这样我们就看到了这个app的一些操作预览。我们可以点击左侧进行一些基本设置,如端设置,模块的添加等操作。

方法/步骤8:

我们可以看到这个目录结构,原来都是写html页面,确实主要是h5开发的,通过调用封装的js,以及添加模块等进行开发。

方法/步骤9:

等我们开发完后,我们可以手机连接电脑进行真机测试。

方法/步骤10:

开发完毕后,我们可以登陆网站进行云编译了,两个版本的App就这样生成了。是不是快多了,其他具体开发大家就到官网上去查看吧,有比较详细的开发文档的。

方法/步骤5:

好吧,设置完之后怎么开发呢,我们到首页,导航上找到开发,看到一个客户端下载,这个就是他的开发工具了,我们下载下来,和安装普通开发工具一样。

方法/步骤6:

安装后我们点击打开,出现登陆框,用我们刚注册的账号进行登陆。

方法/步骤7:

登陆进去后,我们可以在云端资源库中看到我们刚才新建的项目,其实也就是svn了,当然我们也可以在这里新建项目的。

五、app如何开发?

操作步骤/方法

1自己开发app软件的方法如下:

21.首先自己明确需求,懂代码,熟悉开发流程。

32.APP开发前期需要了解产品定位。

43.确定APP的原型图,包括用户体验设计,APP界面的交互逻辑,以及APP功能点实现的大致状况。

54.精品样稿展示。高质量的样稿的展现效果是为了让企业能够在视觉上看到一个APP的雏形,这也就后期的代码开发方面节省很多的时间和精力。

65.原生代码开发。在UI设计和与样稿展示以后,正式进入APP代码的开发阶段。在这一阶段是实现所有前期展现效果,通过APP代码原生开发。

76.了解APP的系统兼容性。在开发手机APP时,要知道Android和iOS风格.布局和导航都大不相同,这需要匹配创建APP项目的每一个操作系统来满足用户。同时,对苹果app而言,它需要专为操作系统而设计开发的应用。

87.开发手机APP需要不断测试。

98.产品测试上线。APP开发测试上线后,即按照合同规定,将源码,说明文档,操作文档各方面配齐交付给甲方。

109.上线运营推广。成功上线后的APP就可以通过企业自身的运营推广,发展用户数量,让它在行业中脱颖而出。当然如果后期存在BUG,或者更新可以提供后续服务的。在运营推广中不断与时俱进,维护更新,APP才能长存。

六、如何开发网页小游戏?

创建画布 // Create the canvas var canvas = document.createElement("canvas")

; var ctx = canvas.getContext("2d")

; canvas.width = 512; canvas.height = 480; document.body.appendChild(canvas)

; 首先我们需要创建一张画布作为游戏的舞台。这里通过JS代码而不是直接在HTML里写一个

七、如何自己开发一个app软件?

要简单开发APP,可以使用appcan,一门APP这些第三方的APP开发平台;通过第三方的快速开发工具或者平台可以快速的制作属于你的APP;当然了这些简单的都适合入门,如果功能增加还是需要花费不少时间去学习和研究的;

八、qpython如何开发app?

利用python开发app需要用到python的一个模块–kivy,kivy是一个开源的,跨平台的Python开发框架,用于开发使用创新的应用程序。简而言之,这是一个python桌面程序开发框架(类似wxpython等模块),强大的是kivy支持linux、mac、windows、android、ios平台,这也是为什么开发app需要用到这个模块。

虽然kivy是跨平台的,但是想要在不同的平台使用python代码,还需要将python代码打包成对应平台的可执行程序,好在kivy项目下有个打包工具项目–buildozer,这是官方推荐的打包工具,因为相对比较简单,自动化程度高,其他项目比如:python-for-android也能起到类似的作用,这里不展开介绍。

九、如何开发app软件?

整理app开发流程:第一、前期的沟通和评估是为了更好的将项目的整体情况细化,确保app项目能能够在规定期限完成。这是奠定项目基础的重要阶段。如果前期的沟通把所有细节都能确定,后期的开发就会节省很多的时间。

第二、一个完整的app需要一个吸引用户眼球的创意,这就需要开发者在创意策划上有着独到的见解。

第三、高保真的展现效果是为了让企业能够在视觉上看到一个app的雏形,这也就后期的代码开发方面节省很多的时间和精力。

第四、在所有前期的界面沟通后,正式进入代码的开发阶段。在这一阶段是实现所有前期展现效果,通过代码原生开发。

第五、在代码开发完成后,就进入了测试和后期上线的阶段。这是一个循序渐进的过程。在所有bug测试完成,确定没有bug就可以在苹果市场和安卓市场上线。

第六、成功上线后的app就可以通过企业自身的运营让app成功脱颖而出。

十、手机app如何开发?

现在手机用户比电脑端的用户多了很多,其实想要开发APP软件,如果自己没有专业的开发团队的话,则就需要找一些外包APP开公司进行开发了。

版权声明:  本平台发布的内容(图片,视频和文字)以原创,转载和分享网络内容为主.如果涉及侵权请尽快告知,我们将会在第一时间删除.文章观点不代表本网站立场,如需处理请联系客服.
上一篇:  线路保护有哪些保护范围?
下一篇:  个人投毒罪定罪与量刑?
更多#增值电信相关文章
更多#网络文化相关文章
更多#互联网前置相关文章
更多#软著申请登记相关文章