During the build, all resources are processed and copied to runtime resource base directory (aka. RRBD),
RRBD is <project-root>/utils/build/game-resources.
The application requests resources at http://localhost:8080/static/20201201201314/<resource-path>.
RRBD is <s3-bucket>/<build-timestamp>, e.g. <s3-bucket>/20201201201314.
The application requests resources at https://cdn.bytelegend.com/20201201201314/<resource-path>.
RRBD
├── js/
│ |── game-page.js
│ |── game-JavaIsland.js
│ |── game-JavaIslandNewbieVillageBar.js
|
├── lib/
│ └── bootstrap
|
├── css/
│ └── common.css
│
├── map/
│ ├── JavaIsland/
│ │ ├── map.json
│ │ ├── tileset.png
│ │
│ │
│ └── JavaIslandNewbieVillageBar/
│
├── i18n/
| |__ common
| │ |__ en.json
| | |__ zh_hans.json
| |
| |__ JavaIsland
| |__ en.json
| |__ zh_hans.json
|
|
├── img/
│ ├── icon/
│ ├── animation/
│ └── player/
│
├── audio/
This includes:
- All files under
<project-root>/resourcesdirectories are copied unchanged. In other words,<project-root>/resourcesonly contains raw resources which don't need to be processed, e.g. audios, js libraries. - Game maps in
<project-root>/tiledare linked and processed, then copied toRRBD/map. clientmodules are compiled by Kotlin/JS and copied toRRBD/js, one js file per module.- I18n resources in
<project-root>/i18nare processed and copied toRRBD/i18n.