# 项目结构
# 设计与开发游戏资源:assets
开发者直接理解的游戏资源在assets目录下面进行开发与存放。有的资源开发者可以直接开发,比如typescript代码。有的可以使用可视化工具进行编辑。比如场景,预制体等内容。在使用小游戏的时候,会将这些资源快速编译成小游戏能理解的格式,比如typescript编成javascript,hlsl编成glsl。这些资源会存放在miniprogramRoot对应文件夹(比如模版项目中的minigame)下的__temp文件夹内。
# 播放态快速运行与调试:minigame/__temp
在minigame/__temp目录下,在小游戏内,可以预览编辑场景,粒子特效等,甚至可以快速运行调试,加载的资源就是__temp下面的资源。__temp下面的资源会在模拟器运行时,以及打包上传时被忽略。
# 构建打包:minigame/assets
在小游戏的打包构建流程中,为了提升真机运行效率,我们会对资源进行处理。比如压缩纹理,合并资源,自动分包等工作。最后生成在miniprogramRoot对应文件夹(比如模版项目中的minigame)下的assets文件夹内。模拟器会理解构建出来的内容来运行,并且在预览/上传的时候被发布到真机。
# 目录定义
# assets/
本地的资源文件,包括了场景,模型,代码等。 同时也有一些特殊文件夹
assets/openDataContext
,是专门用来作为开发开放数据域代码的指定目录。assets/workers
,是专门用来作为多线程Worker代码的指定目录。node_modules npm包
,里面自带的小游戏框架的d.ts。会被开发者import engine的时候所使用,进行代码提示。开发者也可以添加自己希望使用的npm包。都会通过小程序的构建npm能力最后都会自动打包到发布目录下。Editor
,assets目录下任何名字叫做Editor的文件夹都是当作一种用来放置工具插件的特殊目录,里面的内容将不被构建处理。isolateScript
,assets目录下任何名字叫做isolateScript的文件夹的代码都会运行在一个隔离环境,用于开发者可以自定义构建逻辑。
# minigame/
存放构建出来的小游戏真机运行产物的目录,在项目根目录使用 project.config.json 文件中的miniprgramRoot属性来配置。
minigame/__temp/
- 临时资源目录,用于存储编译后的资源,用于编辑播放态使用。开发者可以不理解,最后打包上传的时候会忽略这个文件。minigame/assets/
- 资源目录。IDEBuildIn与IDEPack目录中都是打包后的资源文件。IDEBuildIn将会被上传到主包中。IDEPack被开发者上传到远程服务器。register.json中写入了每个包的地址,可以手动改,也可以在构建时通过配置界面设置前缀。minigame/assets/game.js
- 构建生成的启动文件js。require了这个文件以后就会启动入口场景。minigame/game.js
- 开发者定义的小游戏入口文件。在这个文件里面require('assets/game.js')minigame/game.json
- 小游戏根目录下的 game.json 文件用来对小游戏进行全局配置,决定相关界面渲染和属性设置等。也可以通过Project Setting窗口来配置。
# typings/
小程序官方api的d.ts。用于typescript开发。会被开发者的ide所使用,进行代码提示。
# project.config.json
可以在项目根目录使用 project.config.json 文件对项目进行配置。查看项目配置文件。
# tsconfig.json
用于typescript开发,vscode等编辑器识别的配置,编译代码的配置。
# engine.ide.json
记录小游戏打开时所需要的一些配置信息。