Giter VIP home page Giter VIP logo

heartstonevr's People

Contributors

abraverm avatar yodem avatar

Watchers

 avatar

heartstonevr's Issues

Realtime Leapmtion Display

In order to enable realtime view of the hands, we need to use PeerJS

PeerJS is a library which enable peer to peer communication, and we will use it to send Json of the leapmotion for every leapmotion frame.

every login player will receive an id, which will be used when the player would join a game, and will send the leapmotion data directly to its rival id.

PeerJS Documentation - click here
Plus, we will need to run our own peerjs server. For further details read here

Question - where will the peerjs client will be?

Login and registration system

In order to create characters and players system we will be needed an authenticating login/registration system.

Login -

The system will check whether the input is correct according to the database and return an alert if it isnt correct and procced to the game menu if correct.

Register -

The system will check whether the input exists in the DB or not.
If it is, cancel the registration and pop up an alert. If it isnt, add it to the DB.

Official Website

One of the most important things as I see it, it is an official website.

  • We need to create a welcoming website which has a description, a login\register option, about us information, links to GitHub.

After the welcome page, a player would login. Therefore we need to add a menu with the options:

  • view current games
  • create a game
  • add a friend
  • profile(according to database)
  • rules
  • anything else you think is necessary.

Very Important!

The website needs to be interactive and well designed

Card Generator

Heartstone is a card game. Therefore it has cards.

We need to use this json file to generate cards.

Furthermore, we need to add material to the cards.

A card has two sides:

  • one side is similar to all cards, it has the heartstone logo cover.
  • the second side has its properties and characteristics. You can see some examples at the internet.

I recommend to use blender as the generate tool, its open-source and has friendly API.

DataBase

Like most game, this game also needs database.

The database will include:

  • username
  • password
  • wins
  • losts
  • money
  • anything else you think is relevant.
    I think MongoDB will do the work, however you may suggest other things.

BabylonJS

  1. make a suitable scene for card battle, with detailed background and 3d models.
  2. whenever you pick a card or an action we want an animation like attacking, placing card etc...
  3. meanwhile, the hand is just simple lines connected between every joint. We want it to be 3d model of a hand with skeleton.
  4. the location of the hands needs to match the hand's location, and not a global location.

Leapmotion

We need gestures to communicate with the world. Gestures such as:

  1. select card
  2. attack
  3. open menu(Sao gesture)
  4. watch my hand

Event Handling Server

The node will provide Id for the peer to peer connection, authenticate login, handle events and will be connected to the database.

One of the node server's roles is to handle events

which means, we need to create two functions which send and recieve events.

  • The sending function will receive event type and user id, and will send a json including this data.
    This function needs to be on the client side.
  • The receiving function needs to be on the server side.
    This function needs to send to the player with the received id, the received event.

Type of events(JSON type) -

  • playCard - include the card which has been played and its cost(mana).
  • attack - include the attacking card and target.
  • heroPower - include the hero power and the targer and its cost(mana).
  • drawCard - the enemy just see a card being drawn, and the player see which card. it means that we send the card which was drawn and the player who has drawn it, and react according to it.
  • destroy - include the card which destroyed and the destroyer.
  • death - include the died hero.

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.