🍎 Provide the JavaScript community with a fast track to high performance 3D VR multiplayer games installable on phones, tablets, laptops, and desktops as Progressive Web Applications (PWAs). The resultant games are compatible with many popular VR HMD and controller systems such as the Oculus Quest.
🍎 Provide computer science students and teachers with an accompanying introductory level curriculum.
🍎 Log into the tech demo with username: computer or science and password: 1234.
🍎 Remix this project.
🍎 Add an ADMIN_KEY in .env
🍎 For the admin account, login with admin and your ADMIN_KEY.
🍎 Add additional accounts through the client console.
CS1.socket.emit('add-user',{key:[ADMIN_KEY],name:[new username],pw:[new user pw]})
🍎 After changing any src/ files, in the server Tools/Console run:
pnpm run build
refresh
🍎 Based upon A-Frame version 0.9.
🍎 Using navigation mesh based pathfinding.
🍎 Integrated with D3.js for data visualization.
- Make examples. (TODO)
🍎 Enables easy use of shaders created with Shader Frog.
🍎 JS, CSS, and JSON bundling, minification, and uglifying with Rollup.
🍎 Installable as a Progressive Web App (PWA).
🍎 Heads Up Display (HUD) system including:
- RingDial data visualization widget
- Meter data visualization widget
- GUI Widgets (TODO)
🍎 Collectibiles System
- Offline collection
- Online collection
- Collectibles can be set to respawn
🍎 Items can be declared grabbable, therefore movable by players.
- bloom
- glitch
- godrays
- fxaa
- JSON particles bundling
🍎 BGM System
- via SoundCloud (TODO)
🍎 Player Component
- instantiated for all players
- avatars and animation clips can be changed dynamically
🍎 Describe the server and the client.
🍎 Describe HTML, CSS, and JavaScript.
🍎 Describe Node.js.
🍎 Describe a websocket connection.
🍎 Describe persistent data and databases.
🍎 Create an ADMIN_KEY in the .env file.
🍎 Create a custom gameName value in the src/client-config.js file.
🍎 Build the client bundle.js and bundle.css in the server Tools/Console.
pnpm run build
refresh
🍎 Join your game with the admin username and ADMIN_KEY password.
🍎 Add a new user to the game database from the client console.
CS1.socket.emit('add-user', {key:[ADMIN_KEY], name:[new username], pw:[new user's password]})
🍎 Test multiplayer functionality by logging in with two users.
🍎 Describe a Progressive Web Application (PWA).
🍎 Create your own PWA icons at 512x512 and 192x192 pixel resolutions.
🍎 Customize your public/manifest.json file.
🍎 Describe the JSON file format and common use cases.
🍎 Install your PWA on a phone, tablet, or Windows 10 device.
🍎 Please post any issues to GitHub.