• Stars
    star
    143
  • Rank 257,007 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Konterball is a single or 2-player virtual reality game, built for the web as a Google VR Chrome Experiment.

Konterball Logo


Konterball Demo

Try it here

Introduction

Konterball is a VR Chrome Experiment made by WILD. It's a ping pong game which can be played in one player mode or with a friend in realtime over the web. It was developed in order to showcase the latest Chrome browser which natively supports WebVR. You can play Konterball with a regular laptop, smartphone, Google Cardboard or Daydream, HTC Vive or Oculus Rift.

This repo contains the static frontend for the game. In multiplayer mode, it connects to a deepstream.io websocket server which is used to relay the communication messages two clients.

We use three.js for the graphics part, cannon.js as a physics engine, gsap and bodymovin for animations and howler.js for audio. This project also relies on the webvr polyfill to support browsers that don't natively support WebVR and webvr-ui for VR mode management.

Development

If you want to build this project, you first have to buy the used fonts (or use different ones). The fonts are available here and here. Place them into src/fonts with the names AntiqueOlive, Futura and FuturaItalic with the extensions .eot, .ttf, .woff, .woff2 and .json (you can convert them to json here).

  • Run npm install or yarn
  • Run gulp

Depending on whether you want to host a local deepstream server too:

  • Run node deepstream.js
  • Update availableServers in src/javascripts/communication.js, add localhost

Production

  • Run gulp production
  • Run node deepstream.js
  • Server should now be available at port 8081, or whatever port you set in the PORT environment var.

Support

As of 9/11/2018, the WebVR API is no longer supported so some features may not work as intended.