Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/swift502/sketchbook
3D playground built on three.js and cannon.js.
https://github.com/swift502/sketchbook
3d cannonjs game-engine sketchbook threejs typescript
Last synced: 3 months ago
JSON representation
3D playground built on three.js and cannon.js.
- Host: GitHub
- URL: https://github.com/swift502/sketchbook
- Owner: swift502
- License: mit
- Archived: true
- Created: 2018-03-08T21:11:09.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-12T18:09:40.000Z (about 1 year ago)
- Last Synced: 2024-04-14T07:59:57.636Z (9 months ago)
- Topics: 3d, cannonjs, game-engine, sketchbook, threejs, typescript
- Language: TypeScript
- Homepage: https://jblaha.art/sketchbook/latest
- Size: 131 MB
- Stars: 1,355
- Watchers: 56
- Forks: 346
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![badge](https://img.shields.io/npm/v/sketchbook?style=flat-square)](https://www.npmjs.com/package/sketchbook)
# Final update (20. Feb 2023)
As I have no more interest in developing this project, it comes to a conclusion. In order to remain honest about the true state of the project, I am archiving this repository.
- If you wish to modify Sketchbook feel free to fork it.
- To see if someone is currently maintaining a fork, check out the [Network Graph](https://github.com/swift502/Sketchbook/network).
- The [NPM package](https://www.npmjs.com/package/sketchbook) name is available, and I'll give it away to anyone who asks for it. The package has never worked properly.# 📒 Sketchbook
Simple web based game engine built on [three.js](https://github.com/mrdoob/three.js) and [cannon.js](https://github.com/schteppe/cannon.js) focused on third-person character controls and related gameplay mechanics.
Mostly a playground for exploring how conventional third person gameplay mechanics found in modern games work and recreating them in a general way.
## Features
* World
* Three.js scene
* Cannon.js physics
* Variable timescale
* Frame skipping
* FXAA anti-aliasing
* Characters
* Third-person camera
* Raycast character controller with capsule collisions
* General state system
* Character AI
* Vehicles
* Cars
* Airplanes
* HelicoptersAll planned features can be found in the [GitHub Projects](https://github.com/swift502/Sketchbook/projects).
## Usage
You can define your own scenes in Blender, and then read them with Sketchbook. Sketchbook needs to run on a local server such as [http-server](https://www.npmjs.com/package/http-server) or [webpack-dev-server](https://github.com/webpack/webpack-dev-server) to be able to load external assets.
1. Import:
```html
```
2. Load a glb scene defined in Blender:
```javascript
const world = new Sketchbook.World('scene.glb');
```## Contributing
1. Get the LTS version of [Node.js](https://nodejs.org/en/) 16
2. [Fork this repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)
3. Run `npm install`
4. Run `npm run dev`
5. Make changes and test them out at http://localhost:8080
6. Commit and [make a pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)!## Credits
Big thank you to each of the following github users for contributing to Sketchbook:
- [aleqsunder](https://github.com/aleqsunder)
- [barhatsor](https://github.com/barhatsor)
- [danshuri](https://github.com/danshuri)