项目开发模式

普通小游戏开发模式下,微信开发者工具提供模拟器来模拟真机运行状态,开发者开发的脚本运行在miniprogramRoot配置的文件夹下面。在接入了小游戏性能优化方案工具后,提供了可视化的开发/编辑/调试游戏能力的功能,但是开发者并不直接在miniprogramRoot下面开发脚本以及编辑资源。

游戏的开发流程分为了:

  1. 设计与开发游戏资源。使用方案工具导入编辑预览游戏资源,编辑器开发代码。
  2. 快速运行与调试。在方案工具上点击播放后,可以快速运行调试游戏逻辑。
  3. 构建打包。构建后,退出方案工具,在模拟器中加载打包后的内容,可以调试运行在真机的运行效果。

开发流程

项目结构图

项目结构

设计与开发游戏资源:assets

开发者直接理解的游戏资源在assets目录下面进行开发与存放。有的资源开发者可以直接开发,比如typescript代码。有的可以使用可视化工具进行编辑。比如场景,预制体等内容。在使用方案工具的时候,会将这些资源快速编译成方案工具能理解的格式,比如typescript编成javascript,hlsl编成glsl。这些资源会存放在miniprogramRoot对应文件夹(比如模版项目中的minigame)下的__temp文件夹内。

快速运行与调试:minigame/__temp

在minigame/__temp目录下,在方案工具内,可以预览编辑场景,粒子特效等,甚至可以快速运行调试,加载的资源就是__temp下面的资源。__temp下面的资源会在模拟器运行时,以及打包上传时被忽略。

构建打包:minigame/assets

在方案工具的打包构建流程中,为了提升真机运行效率,我们会对资源进行处理。比如压缩纹理,合并资源,自动分包等工作。最后生成在miniprogramRoot对应文件夹(比如模版项目中的minigame)下的assets文件夹内。模拟器会理解构建出来的内容来运行,并且在预览/上传的时候被发布到真机。

目录定义

assets/

本地的资源文件,包括了场景,模型,代码等。

  1. resourceDirs engine.ide.json里面配置的,放可动态加载的资源的文件夹。
  2. node_modules npm包。里面自带的小游戏性能优化方案的d.ts。会被开发者import engine的时候所使用,进行代码提示。开发者也可以添加自己希望使用的npm包。都会通过小程序的编译最后都会自动打包到发布目录下。
  3. package.json npm包对应的package.json文件。

minigame/

指定小程序源码的目录(需为相对路径),可以在项目根目录使用 project.config.json 文件对项目进行配置小游戏的miniprgramRoot配置。

  1. minigame/__temp/ - 临时资源目录,用于存储编译后的资源。开发者可以不理解,最后打包上传的时候会忽略这个文件。

  2. minigame/assets/ - 发布目录。IDEBuildIn与IDEPack目录中都是打包后的资源文件。IDEBuildIn准备上传到代码包中。IDEPack准备上传到远程地址。register.json中写入了每个包的地址。可以手动改,也可以在构建时通过GUI设置前缀。

  3. minigame/assets/game.js - 构建生成的启动文件js。require了这个文件以后就会启动入口主场景。

  4. minigame/game.js - 开发者定义的小游戏入口文件。在这个文件里面require('assets/game.js')

  5. minigame/game.json - 小游戏根目录下的 game.json 文件用来对小游戏进行全局配置,决定相关界面渲染和属性设置等。相较于普通小游戏配置,里面会多一个配置engine:true。

typings/

小程序官方api的d.ts。用于typescript开发。 会被开发者的ide所使用,进行代码提示。

project.config.json

项目配置文件,相较于普通小游戏配置,里面会多一个配置engine:true。

tsconfig.json

用于typescript开发,vscode等编辑器识别的配置,编译代码的配置。

engine.ide.json

记录优化方案工具打开时所需要的一些配置信息。