mondlich
Master's thesis on the topic "Development of VFX-components library for web-games"
https://github.com/user-attachments/assets/2f695f0e-a9a6-4e57-9101-600cca9800d7
Getting started
yarn add mondlich
or
npm install mondlich
Basic usage
1. Create canvas for rendering
const canvas: HTMLCanvasElement = document.createElement('canvas');
const { gl, canvas } = createWebGLCanvas({
...DEFAULT_CANVAS_SIZE,
containerId: 'app',
});
configureRenderingContext({
gl,
...DEFAULT_CANVAS_SIZE,
});
2. Initialize particle manager and load textures for effects
const manager = new ParticleEffectsManager();
await manager.textureManager.loadTextureLibrary();
const engine = new MondlichEngine(canvas);
/*
For engines whose adapters are not represented in the library, you may implement your own adapters
(See EngineAdapter interface)
*/
const adapter = new MondlichAdapter(engine);
manager.setAdapter(adapter);
3. Prepare camera state
// 3. Prepare camera state
engine.camera.moveEye([0, -550, -20]);
engine.camera.moveLookAt([0, -1100, -500]);
4. Create effects
const fire = manager.createFire({
particlesCount: 20000,
spawnFramespan: 1,
});
5. (Optional) Enable WebWorker execution context for effect computations
manager.setWorkerEnabled(fire, true);
6. Enable effects and launch game loop
fire.start();
const loop = async () => {
await manager.update();
userInput.update();
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
manager.render();
requestAnimationFrame(loop);
};
loop();