Git Product home page Git Product logo

multiplayer-puzzle-game's People

Contributors

calum avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

multiplayer-puzzle-game's Issues

Create Multiplayer screen

The multiplayer screen should display the following options:

Join game
Create game

When Join game is clicked, a user input for a game id is required. When create game is clicked, a game id is created and displayed to the user and the user is taken into a game lobby

Create game lobby

The game lobby should display the following options to the host:

Start game
Select puzzle
Close lobby

Also there should be a text area to display the connected clients

Single Player:

At the end of the game, let a player submit their time to the leader board.

Users can upload a .png file

A user should be able to select an option to upload a file and they can then select a .png file to upload. This then allows a user to create a puzzle with that file.

Not sure how to implement this at the time of writing

Create home screen

The game's home screen should display the following options:

Single player
Multiplayer
Options

Create game layout

Game should be laid out as follows:
Most of the screen will show a Puzzle Board which is ultimately where the puzzle pieces are placed. There will be a row along the bottom for puzzle pieces.

Around 4 or 5 puzzle pieces can be shown at a time along the bottom row. Players can drag a piece from the bottom onto the puzzle board. When a piece is in the correct position it is locked down.

This issue only refers to the game layout being displayed.

Module to create puzzle pieces from an image

This module should have a function which takes an image location and cuts it up into a puzzle object.

The puzzle object still needs to be better defined but could be an array of JSON objects which have the following properties: x_pos, y_pos, id, nextTo(an array of ids), pathToAsset

example usage:

var puzzleBuilder = require('puzzleBuilder')

puzzleBuilder.build('./assets/niceImage.png', './assets/puzzles/niceImagePieces/')

For a 16*16 puzzle, each puzzle piece will have a file name indicating it's position, i.e. 0213.png indicates that piece is the 2nd along and 13th down.

Further down the line, clients should be able to upload .png files to the server.

Users should be able to set their username

Usernames need not be unique. Each client will be given a generated unique UUID when they connect to the server (when that is implemented) so usernames can be duplicated.

Server/Client: Server and client should use websockets

Websockets should be used to communicate with groups of players simultaneously.

When a player enters the multiplayer state and creates a game, other players should be able to join that game. This means that the players all become part of a websocket group which all messages are broadcast out to.

The server should broadcast out the time at which other players finish the puzzle along with a percentage of how close other players are to finishing.

Tile Snap - feature

Tiles move well but would be good if when re-positioning tiles they would snap into place. Currently tiles are hard to position, leaving white space.

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.