From 682a4c2f3ac1a9d514a6ae9779af16eb649fefb9 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 7 Sep 2020 17:12:38 +0100 Subject: [PATCH] adding rules and some instructions --- subjects/bomberman-dom/README.md | 51 ++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/subjects/bomberman-dom/README.md b/subjects/bomberman-dom/README.md index a1be7397..472ee804 100644 --- a/subjects/bomberman-dom/README.md +++ b/subjects/bomberman-dom/README.md @@ -1,15 +1,56 @@ ## bomberman-dom -You certainly know bomberman right? Good good. You will make it. Relax, is not that hard, it is only a multiplayer version of it. Ah and forgot to mention that you will need to do it using the framework you created a while ago. Let me explain. +You certainly know [bomberman](https://en.wikipedia.org/wiki/Bomberman) right? Good good. You will make it. Relax, is not that hard, it is only a multiplayer version of it. Ah and forgot to mention that you will need to do it using the framework you created a while ago. Let me explain. ### Objectives -For this project you have to create a [bomberman](https://en.wikipedia.org/wiki/Bomberman) alike game, where multiple players can join in a same room and battle until one of them is the last man standing. +For this project you have to create a bomberman alike game, where multiple players can join in and battle until one of them is the last man standing. ### Instructions -When the user opens the game, he/she should be presented to a page where he/she should enter a nickname to differentiate users. After selecting a nickname the user should be presented to a waiting page with a player counter that ends at 4. Once a user joins a room, the player counter will increment by 1. As soon as there are 4 players in the room, the game starts. +In the beginning there was 4 players, and only one came out alive. Each player will have to start in the different corners of the map and only one will be victorious. -#### Beginning of the game +You will have to follow more a less the same principles has the [make-your-game](https://public.01-edu.org/subjects/make-your-game/) project. But we will refresh some of the concepts you will have to respect and deal with. -In the beginning there was 4 players, and only one came out alive. Each player will have to start in the different corners of the map. +1. [**Performance**](https://public.01-edu.org/subjects/good-practices/), is one of the most important aspects while developing a game, so lets respect it.\ + Just like make-your-game you will have to respect the policy of: + +- Running the game at least at **60fps** at all time +- No frame drops +- Proper use of [**`requestAnimationFrame`**](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) +- Measuring performance to know if your code is fast + +You must not use canvas neither [Web-GL](https://get.webgl.org/) or other framework, for this project you will use the framework you did on the [mini-framework](https://public.01-edu.org/subjects/mini-framework/) project. + +When the user opens the game, he/she should be presented to a page where he/she should enter a **nickname** to differentiate users. After selecting a nickname the user should be presented to a waiting page with a **player counter** that ends at 4. Once a user joins, the +player counter will increment by 1. As soon as there are 4 players, the game starts. + +#### Game Mechanics + +1. Players + + 1. NÂș of players: 2 - 4 + 2. Each player must have 3 lives. Then you are out!! + +2. The map should be fixed so that every player sees the whole map. + + 1. The maps should be generated randomly. There will be two types of blocks, the ones that can be destroyed and the the ones that can not. + +3. Power ups (each power up must appear randomly after a block is destroyed): + + 1. Bombs: Increases the amount of bombs dropped at a time by 1; + 2. Flames: Increases explosion range from the bomb in four directions by 1 square; + 3. Speed: Increases movement speed; + 4. Bomb Push: Ability to throw a bomb after it has been placed. + +This project will help you learn about: + +- [`requestAnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) +- [Event loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop) +- FPS +- [Jank/stutter animation](https://murtada.nl/blog/going-jank-free-achieving-60-fps-smooth-websites) +- webSockets +- Synchronization +- Developer Tools + - [Firefox](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools) + - [Chrome](https://developers.google.com/web/tools/chrome-devtools)