diff --git a/subjects/bomberman-dom/README.md b/subjects/bomberman-dom/README.md index 472ee804..aa8feec1 100644 --- a/subjects/bomberman-dom/README.md +++ b/subjects/bomberman-dom/README.md @@ -10,20 +10,19 @@ For this project you have to create a bomberman alike game, where multiple playe 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. -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. +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 one of the concepts you will have to respect and deal with: -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.\ +- [**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 + - 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. +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. +You will have to make also a chat that enables the different players to talk to each other. As you will have to use [WebSockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API), this chat will be the "Hello World" of the multiplayer feature for the **bomberman-dom**. #### Game Mechanics @@ -34,15 +33,21 @@ player counter will increment by 1. As soon as there are 4 players, the game sta 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. + 1. The maps should be generated with a logical random structure (without blocking the player). There will be two types of blocks, the ones that can be destroyed and the ones that can not. Tip: the optional project [different maps](https://public.01-edu.org/subjects/make-your-game/different-maps) can be useful for this part. + 2. The players should be placed in the corners as their starting positions. -3. Power ups (each power up must appear randomly after a block is destroyed): +3. Power ups (each time a player destroys a block, a random power up may or may not appear): 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; + 2. Flames: Increases explosion range from the bomb in four directions by 1 block; 3. Speed: Increases movement speed; 4. Bomb Push: Ability to throw a bomb after it has been placed. +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. + +If there are more than 2 players in the counter and it does not reach 4 players before 20 seconds, a 10 second timer starts, to players get ready to start the game.\ +If there are 4 players in the counter before 20 seconds, the 10 seconds timer starts and the game starts. + This project will help you learn about: - [`requestAnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame)