@directivegames/asset-pack-example
v0.0.6
Published
A template repository for creating reusable asset packs for the [Genesys](https://github.com/directivegames/genesys.js) game engine.
Downloads
597
Readme
Genesys Asset Pack Example
A template repository for creating reusable asset packs for the Genesys game engine.
Overview
Asset packs bundle 3D models, textures, sounds, and reusable game components that can be shared across Genesys projects via npm. When installed, assets are automatically copied to your project's packs/ directory.
Project Structure
asset-pack-example/
├── assets/
│ ├── models/ # 3D models (.glb, .gltf)
│ ├── textures/ # Image textures
│ └── sounds/ # Audio files
├── src/
│ └── index.ts # Exported components and classes
├── scripts/
│ └── postinstall.ts # Auto-copies assets on install
└── dist/ # Compiled outputCreating a New Asset Pack
Prerequisites
- Node.js 18+
- pnpm (
npm install -g pnpm)
Setup
Install the Genesys SDK CLI
pnpm add -g @directivegames/genesys.sdkCreate a new pack
genesys-sdk new-asset-pack --name <pack-name>Install dependencies and build
cd <pack-name> pnpm install && pnpm buildInitialize git repository
git init && git add . && git commit -m "initial commit"
Adding Assets
Place your assets in the appropriate subdirectory under
assets/:- Models:
assets/models/(.glb,.gltf) - Textures:
assets/textures/(.png,.jpg,.webp) - Sounds:
assets/sounds/(.mp3,.wav,.ogg)
- Models:
Reference assets in your components using the
@project/packs/<pack-name>prefix:new ENGINE.GLTFMeshComponent({ modelUrl: '@project/packs/<pack-name>/assets/models/your-model.glb', });
Usage in Projects
Install the asset pack in your Genesys project:
pnpm add @directivegames/<pack-name>Assets will be automatically copied to packs/<pack-name>/assets/ in your project.
Publishing to npm
Local Publishing
- Update the version in
package.json - Build and publish:
pnpm build && npm publish
Publishing via GitHub Actions
- Push your repository to GitHub
- Configure npm access for GitHub Actions following the Trusted Publishers documentation
- Use the included
.github/workflows/publish.ymlworkflow
Publishing Under the Directive Games Organization
To publish under the @directivegames scope, update the package name in package.json:
{
"name": "@directivegames/<pack-name>"
}Peer Dependencies
This pack requires the following peer dependencies in the consuming project:
@directivegames/genesys.js^3.1.25three^0.177.0
