Code Monkey home page Code Monkey logo

vrpacman's Introduction

Live

**This project is live!

Table of Contents

  1. VR Pacman
  2. Overview
  3. Controls
  4. Supported browsers
  5. Development
    1. Overview
    2. Authentication
    3. Libraries
    4. Goals&Accomplishments
  6. Team

VR_Pac-Man

gif of playing vrpacman

Bringing the timeless arcade game, PacMan, to a Virtual Reality platform where users experience an immersive first person challenge reminiscent of the original PacMan.

Overview

VR Pacman is a virtual reality spin on the classic 1980s Pac-man game by Namco. In VR Pacman, you become the Pac-man in this first-person maze traversing game. Users can compete in ranked games or play in custom private games with their friends. They can also design or purchase their own virtual reality mazes and share them to the world. This game is meant for both mobile (virtual reality) and Desktop (360 degree camera).

Controls

Collect as many pellets as possible while avoiding the ghost coming after you.

  • Turn Your VR Headset - for mobile VR
  • Mouse Click and Drag - for desktop

Supported_Browsers

Browser Supported Tested Versions
Google Chrome Yes 23.0; 24.0
Firefox Yes 17.0; 18.02
Safari Yes* 5.1.7
IE Yes* 10.0
_*Game sound is currently (and sadly) not working under IE & Safari browsers!_

Development

DevOverview

VR PacMan is built with a React frontend served throught the express js backend using MYSQL database. Authentication is provided using passport based sessions. The webvr game is built using Babylonjs rendering engine, Cannon js is used to simulate physics within the game.

Authentication

Authentication is provided using a session approach. When the user signs up, their details are passed via https in the authorization header. The password is then hashed using bcrypt and stored in the backend and a verification email is sent to the user with a signed token. When the user verifies the account by clicking on the emailed link, the account is activated by verifying the jwt token. When the user logsin, the username and password are sent to the backend via https in the auth header. The password is hashed using bcrypt, verified, and a new session is created for the user with the session id stored in the cookie.

Libraries

VR PacMan uses the following libraries:

  • React - A Javascript library for building user interfaces.
  • BabylonJS - An amazing Javascript/HTML5 Game engine.
  • jQuery - The Write Less, Do More, JavaScript Library.
  • Blender - Open Source 3D creation. Free to use for any purpose, forever.
  • Express - Fast, unopinionated, minimalist web framework for Node.js
  • MySQL - The world's most popular open source database.
  • NodeJS - Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
  • Cannon.js - A physics engine, written in JavaScript.
  • Socket.IO - Enables real-time bidirectional event-based communication.
  • Passport.js - Passport is authentication middleware for Node.js.
  • Passport-local - Passport local is a strategy for local authenitcation
  • Passport-facebook - Passport facebook is a strategy for facebook authentication
  • Passport-google-oauth2 - Passportgoogle is a strategy for google authentication

Goals&Accomplishments

  • Build virtual reality environment (walls, pellets, ghosts, etc)
  • Apply physics and gravity via Cannon.js
  • AI, ghost path rendering and logic
  • Build custom meshes
  • mulitplayer
  • Handle collisions between meshes
  • attach camera and lighting
  • build mazes in javascript and render to 3d environment
  • authentication and use profiles with facebook and email
  • custom maze builder and editor
  • scoring platform
  • multifloor maze design

Team

  • Development Team Members: Don Nguyen, Humaid Khan, Wells Tsai,

vrpacman's People

Contributors

humaidk2 avatar nguyendkim avatar wellstsai avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.