Skip to content

Jovial-Jaguars/VR_Pac-Man

Repository files navigation

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,

About

First Person Virtual Reality version of the popular arcade game Pacman

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages