EricEisaman / cs1-space

CS1 Game Engine tech demo.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CS1 Game Engine

version 0.7.22


Mission

🍎 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 students and teachers with an accompanying introductory level curriculum covering computer programming, computer networks, and application asset design.


Getting Started Video

Video Overview


Introductory Presentation

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQUJYDleE4LBILr-2V57v_kPAD5TY-X6hnA94fJWl8drADMHHDtMB9BnDUtw7v1N6JmVS1NK_dTYc71/embed?start=false&loop=false&delayms=60000" frameborder="0" width="480" height="285" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe> ____

Tech Demo

🍎 Log into the tech demo with username: computer or science and password: 1234.

🍎 Keyboard Interface:

  • Movement: WASD or Arrow Keys
  • Chat Mode:
    • Toggle On/Off: =
    • Submit: Enter
    • New Line: Down Arrow
  • VRUI Toggle On/Off: Backquote Key

Overview

🍎 Based upon A-Frame version 0.9.

🍎 Using navigation mesh based pathfinding.

🍎 Enables easy use of shaders created with Shader Frog.

  • Include the desired shader json file in your build by importing in shader-frog.js
  • Declaratively implement the shader-frog component in your HTML.

🍎 JS, CSS, and JSON bundling, minification, and uglifying with Rollup.

🍎 Installable as a Progressive Web App (PWA).

🍎 Stats visualization 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.

🍎 grabbable items can be launched with the launchable component.

🍎 BGM System (named exports)

  • via SoundCloud
    • bgmlite: simple no UI, no server interaction
    • bgm: includes UI and interactive multiplayer interaction (TODO)

🍎 Player Component

  • instantiated for all players
  • avatars and animation clips can be changed dynamically

🍎 Particles Component

🍎 Cloud Component

  • vertex animation
  • custom color

🍎 NPC Component

🍎 Dotrow Component

  • Makes it easy to add rows of collectibles.
  • Intended to be developer's first look in to editing component source code.

🍎 Database

🍎 IoT Component

  • Illustrates basic IoT device integration.

CS1 Global Object Namespace

🍎 CS1.scene

🍎 CS1.myPlayer

🍎 CS1.otherPlayers

🍎 CS1.utils

  • uuid()
  • isEqual(a,b)
  • toColor(number)
  • randomFromArray(array)

🍎 CS1.cam

🍎 CS1.collectibles

🍎 CS1.grabbables

🍎 CS1.stats

🍎 CS1.say

🍎 CS1.sounds

🍎 CS1.shaderfrog 🐸

  • provides easy access to shaders to manipulate uniforms.

🍎 CS1.npc

🍎 CS1.game

🍎 CS1.db

  • set({key:'value'} , callbackFunction)
  • get('key' , callbackFunction)

Issues

🍎 Please post any issues to GitHub.

About

CS1 Game Engine tech demo.

License:MIT License


Languages

Language:JavaScript 90.5%Language:HTML 4.8%Language:CSS 4.7%