calum / multiplayer-puzzle-game Goto Github PK
View Code? Open in Web Editor NEWFast paced multiplayer jigsaw built with Phaser.io
Fast paced multiplayer jigsaw built with Phaser.io
The player can then click a players name to use the weapon on that player
Create a group which other players can join.
This group will be a websocket broadcasting group which will broadcast around each players time.
Users should be able to move pieces with their mouse or via touch on a mobile device.
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
There will be public lobbies running continuously which accept any players
The single player screen should show the following options:
Quick start
Pick a puzzle
Create puzzle
There shall be a row along the bottom of the screen which always has four puzzle pieces. Users much move a piece out of the bottom row to get a new piece to see.
Kind of like a stream of puzzle pieces at the bottom.
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
In the single player state, the top 3 times achieved should be displayed in order.
A test puzzle should be created and users should be able to drag pieces from the bottom row to the Puzzle Board.
Pieces should lock to neighboring pieces when they are close enough to each other.
At the end of the game, let a player submit their time to the leader board.
This way the server can keep track of each user when implementing the websocket functionality.
Players earn 1 point for connecting pieces and 2 points for locking pieces into their final position.
A timer should be visible to the user which will time how long they take to solve the puzzle.
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
The game's home screen should display the following options:
Single player
Multiplayer
Options
This gives the player help on how to solve the puzzle
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.
The player should also be able to select the number of pieces for that puzzle
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.
Reshuffle: Places all the non grouped pieces back into the selection area and reshuffles them
...
clients can join a group when they click to join a multiplayer game. The server should maintain a list of connected players in each group.
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.
Under each puzzle, show the top three times.
Instead of requiring keyboard input, let the menu items be clickable in all states
Use a secret key generated from https://letsencrypt.org/
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html
Use a database to store all the players top three times for each puzzle.
At the moment, the colours can make the puzzle hard to see
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.
*state
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.