All Projects â†’ jojoee â†’ blocker

jojoee / blocker

Licence: MIT license
🎮 (WIP - phase 3) Multiplayer online game using Phaser + WebSocket (Socket.IO)

Programming Languages

javascript
184084 projects - #8 most used programming language
Less
1899 projects
HTML
75241 projects

Projects that are alternatives of or similar to blocker

Phaser Node Kit
Rapid Game Development with PhaserJS and Node for Modern Browsers
Stars: ✭ 39 (-18.75%)
Mutual labels:  phaser, phaserjs
Slither.io Clone
Learn how to make Slither.io with JavaScript and Phaser! This game clones all the core features of Slither.io, including mouse-following controls, snake collisions, food, snake growth, eyes, and more. Progress through each part of the source code with our Slither.io tutorial series.
Stars: ✭ 168 (+250%)
Mutual labels:  phaser, phaserjs
Phaser Kinetic Scrolling Plugin
Kinetic Scrolling plugin for Canvas using Phaser Framework
Stars: ✭ 117 (+143.75%)
Mutual labels:  phaser, phaserjs
Opensc2k
OpenSC2K - An Open Source remake of Sim City 2000 by Maxis
Stars: ✭ 4,753 (+9802.08%)
Mutual labels:  phaser, phaserjs
phaser-particle-editor-plugin
This plugin creates particles based on JSON data generated by Phaser Particle Editor
Stars: ✭ 28 (-41.67%)
Mutual labels:  phaser, phaserjs
Webpack Starter Basic
A simple webpack starter project for your basic modern web development needs.
Stars: ✭ 552 (+1050%)
Mutual labels:  phaser, phaserjs
Ion Phaser
A web component to use Phaser Framework with Angular, React, Vue, etc 🎮
Stars: ✭ 152 (+216.67%)
Mutual labels:  phaser, phaserjs
generator-phaser-browserify
A generator for Phaser using Gulp and Browserify
Stars: ✭ 36 (-25%)
Mutual labels:  phaser, phaserjs
dungeonz
Everything for the game Rogueworld.
Stars: ✭ 88 (+83.33%)
Mutual labels:  phaser, phaserjs
Phaser Ui Tools
Functions for creating a UI in Phaser. Rows, columns, viewports, scrollbars, stuff like that.
Stars: ✭ 187 (+289.58%)
Mutual labels:  phaser, phaserjs
Phaser3 Docs
Phaser 3 Documentation and TypeScript Defs
Stars: ✭ 339 (+606.25%)
Mutual labels:  phaser, phaserjs
ts-phaser-bomb-game
Bomberman clone using websockets and phaser 3
Stars: ✭ 18 (-62.5%)
Mutual labels:  phaser, socket-io
Phaserquest
Reproduction of Mozilla's BrowserQuest using Phaser, socket.io and Node.js
Stars: ✭ 313 (+552.08%)
Mutual labels:  phaser, socket-io
Phaser
Phaser is a fun, free and fast 2D game framework for making HTML5 games for desktop and mobile web browsers, supporting Canvas and WebGL rendering.
Stars: ✭ 30,918 (+64312.5%)
Mutual labels:  phaser, phaserjs
Generator Phaser
A yeoman generator for phaser games
Stars: ✭ 255 (+431.25%)
Mutual labels:  phaser, phaserjs
Phaser Examples
🎮 Game collections made by Phaser
Stars: ✭ 140 (+191.67%)
Mutual labels:  phaser, phaserjs
Cavemen-GGJ2019
A multiplayer survival game developed during Global Game Jam 2019.
Stars: ✭ 21 (-56.25%)
Mutual labels:  phaser, socket-io
phaser-3-palette-swapping-example
Example of using palette swapping on a spritesheet in Phaser 3.
Stars: ✭ 32 (-33.33%)
Mutual labels:  phaser, phaserjs
Phaser State Transition
State transition plugin for Phaser.js
Stars: ✭ 169 (+252.08%)
Mutual labels:  phaser, phaserjs
craft
Phaser Library with utility chainable functions
Stars: ✭ 27 (-43.75%)
Mutual labels:  phaser, phaserjs

Blocker

Build Status

Multiplayer online game using Phaser + WebSocket (Socket.IO).

Control

1. Mouse
- Left: move
- Right: fire

2. Keyboard
- Up: move
- Left / Right: rotate
- Spacebar: fire

Gifshot

Demo

Blocker - Game play 1

Blocker - Debug

Getting Started

  1. Install Node.js
  2. Install Nodemon Bower Gulp: npm install -g nodemon yarn bower pm2
  3. Install dependencies: yarn && bower install
Build client side
- dev: `yarn build.watch`
- prod: `yarn build`
Start server side
- dev: `nodemon app.js --watch app.js`
- prod: `pm2 start app.js`

Note

1. Code guideline & Naming we use
1.1 Base javascript style: [Airbnb](https://github.com/airbnb/javascript)
1.2 Function should return only one type
  e.g.
  - getName: string, '' (default)
  - getRandomInt: number, 0 (default)
  - getPlayers: Array, [] (default)
  - getPlayer: Object, {} (default)

  except getIndex
  e.g.
  - getIndexOfPlayer: number, -1 (default)

2. Naming
- Function / scope variable: `camelCase`  
- Global variable: `UPPERCASE`
- Class: `PascalCase`

3. Creature
- Monster
  - Zombie
  - Machine
  - Bat
- Hero
  - Player / Enemy

4. Socket
- Send to specific client: IO.sockets.connected[socketId].emit(EVENT_NAME, data);
- Send to all clients: IO.emit(EVENT_NAME, data);
- Send to all clients except newly created connection: socket.broadcast.emit(EVENT_NAME, data);

5. Event flow
Anything's related with `life` directly, is need to broadcast first then
take effect from subsequent request. (currently, there are only 2 events
(move / fire) that can execute on client before broadcasting)

6. CommonJs

TODO

  • All game calculation should be calculated on server-side
  • Define structure of sending-object and response-object from server
  • Send player-event to server (not data-object)
  • Check const and let again
  • Make all functions functional
  • Remove all eslint-disable-line
  • Add checkAlive event: the player is already gone, but it's still in the game (cause from network issue)
  • Using MessagePack instead of JSON
  • Respawn delay
  • Redirect all pages to root (cause we only use root page)
  • Update bubble/message graphic, 1
  • Add deploy shell script
  • Day / Night system
  • Implement Shields.io
  • minimap, 1, 2, 3
  • Responsive (support mobile / tablet user)
  • Support screen when resizing
  • HUD
  • Score board (Leader board)
  • Cache
  • Knockback when creature is hitted
  • Add test (TDD) with test-task-runner, 1
  • QA - Analysis / Optimize / Profiling / ETC (e.g. sonarqube)
  • Sound
  • Effect / Screen transition / Screen shake
  • Fix - Creature is damaged and welled in the same time
  • Arrow / Laser is killed when hit stoneGroup
  • Room / Channel (able to create private room), 1, 2, 3
  • Add social meta / share
  • Bot player
  • Tween: player move
  • Hero can collect item in the floor
  • Other class (e.g. Swordsman)
  • Monster path finder, 1, 2, 3
  • Creature sight feature, 1, 2, 3
  • Monster walk - random walk
  • Monster can be fired, welled
  • Talkable monster
  • Tween: monster move

Reference & Tutorial & Plugin & Tool

Multiplayer

  • Introduction to development of multiplayer HTML5 games (with Socket.io) 1, 2

Data structure

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].