# oasis-engine **Repository Path**: yobrave/oasis-engine ## Basic Information - **Project Name**: oasis-engine - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-15 - **Last Updated**: 2022-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ant Graphics Engine ![npm-size](https://img.shields.io/bundlephobia/minzip/oasis-engine) ![npm-download](https://img.shields.io/npm/dm/oasis-engine) [![codecov](https://codecov.io/gh/oasis-engine/engine/branch/main/graph/badge.svg?token=KR2UBKE3OX)](https://codecov.io/gh/oasis-engine/engine) This is a **web-first** and **mobile-first** high-performance real-time development platform. Use **component system design** and pursue ease of use and light weight. Developers can independently use and write Typescript scripts to develop projects using pure code. ## Features - ๐Ÿ–ฅ  **Platform** - Suppport HTML5 and Alipay miniprogram - ๐Ÿ”ฎ  **Graphics** - Advanced 2D + 3D graphics engine - ๐Ÿƒ  **Animation** - Powerful animation system - ๐Ÿ“‘  **Scripts** - Use TypeScript to write logic efficiently ## Usage ```typescript // Create engine by passing in the HTMLCanvasElement id and adjust canvas size. const engine = new WebGLEngine("canvas-id"); engine.canvas.resizeByClientSize(); // Get scene and create root entity. const scene = engine.sceneManager.activeScene; const rootEntity = scene.createRootEntity("Root"); // Create light. const lightEntity = rootEntity.createChild("Light"); const directLight = lightEntity.addComponent(DirectLight); lightEntity.transform.setRotation(-45, -45, 0); directLight.intensity = 0.4; // Create camera. const cameraEntity = rootEntity.createChild("Camera"); cameraEntity.addComponent(Camera); cameraEntity.transform.setPosition(0, 0, 12); // Create sphere. const meshEntity = rootEntity.createChild("Sphere"); const meshRenderer = meshEntity.addComponent(MeshRenderer); const material = new BlinnPhongMaterial(engine); meshRenderer.setMaterial(material); meshRenderer.mesh = PrimitiveMesh.createSphere(engine, 1); // Run engine. engine.run(); ``` ## npm The engine is published on npm with full typing support. To install, use: ```sh npm install oasis-engine ``` This will allow you to import engine entirely using: ```javascript import * as OASIS from "oasis-engine"; ``` or individual classes using: ```javascript import { Engine, Scene, Entity } from "oasis-engine"; ``` ## Contributing Everyone is welcome to join us! Whether you find a bug, have a great feature request or you fancy owning a task from the road map feel free to get in touch. Make sure to read the [Contributing Guide](.github/HOW_TO_CONTRIBUTE.md) / [่ดก็ŒฎๆŒ‡ๅ—](https://github.com/oasis-engine/engine/wiki/%E5%A6%82%E4%BD%95%E4%B8%8E%E6%88%91%E4%BB%AC%E5%85%B1%E5%BB%BA-Oasis-%E5%BC%80%E6%BA%90%E4%BA%92%E5%8A%A8%E5%BC%95%E6%93%8E) before submitting changes. ## Build If you don't already have Node.js and NPM, go install them. Then, in the folder where you have cloned the repository, install the build dependencies using npm: ```sh npm run bootstrap ``` Then, to build the source, using npm: ```sh npm run b:all ``` ## Links - [Official Site](https://oasisengine.cn) - [Examples](https://oasisengine.cn/0.6/examples) - [Documentation](https://oasisengine.cn/0.6/docs/install-cn) - [API References](https://oasisengine.cn/0.6/api/core/index) ## License The engine is released under the [MIT](https://opensource.org/licenses/MIT) license. See LICENSE file.