Bomb-IT
Project is a school project in software development.
Project Description
This a recreation of the classic Bomb It game. The main purpose of this project is the to learn various software development techniques.
Game Details
Bomb-IT can be played with or agains other players that can both be computer- and/or human players. To start, the maximum amount of players will be six. The playing field will be a square field to begin with and could perhaps be changed through game settings to change size and shape. The game will have two modes:
- Single player: The game can only be played against computer players.
- Multi-player: The game is hosted and managed by one player and up to five human players can join.
NOTE: multi-player will only be working on a local network.
Players can be devided into teams such as 2vs2, 3vs3 or play free-for-all.
Development
This project is being developed using the Unity game development software together with the written functionality in C# using Visual Studio as IDE.
We will start with making graphical assets in photoshop and the code behind these. For example player movement, object states and basic UI. Later we will add local multiplayer.
Some Initial features
NOTE: Will be added continuously
- Basic player control. Movement with arrow keys and placing bombs with space.
- Bomb Logic. Countdown, range (power). Example for countdown is 5 sek, and the initial radius is 2 blocks.
- Initial Map objects and placement of these. Can include player spawn. Destructable and indestructable.These objects will block player movement and the destructive radius of the bomb. If the destructable objects are inside of the radius of a bomb, then these will be removed from the map. If not destructable then the object remains.
- Items, pickup and powerups. Player will pickup items to improve his or her stats. Ie More powerful bombs (+1 range), faster movement (increase by a factor of 1.1 (10%)) etc. When picked up these shall be removed.
- Basic UI. Choose number of players, size of map and gamemode.
- Random map generator.
Build System
We have not currently choosen a build system for this project. Currently choosing between: mark and ant.
For starters we will just use visual studio as our build system but we will change this.
Requirements
- Unity Hub is needed to run our program you can download Unity Hub from this link: https://store.unity.com/download
- When Unity is installed you also need to install Unity Editor version 2022.2.4f1
- .NET 6 SDK for uses of dotnet or else you have to enter the following command in a terminal
dotnet tool install -g dotnet-format
Compiling and Running
- Clone our repository to desired location on your computer.
- Open the project from Unity Hub
- When project is open, go to: File > Build Settings > Build And Run. Then create a new folder outside the project folder where the build will be created. The folder will now hold a Bomb-IT.exe file used to execute the program.
- The game should now run and a unity window with a playing field and two characters should pop up. You should be able to control one of them with W,A,S,D or arrow keys. You can also push around the other player around the map.
- To exit the game press Alt+F4.
How to generate code coverage information
-
Open the project from Unity Hub
-
When the project is open in the Unity Editor go to: Window > Package Manager. This opens up the Packet Manager in a popup window.
-
In the upper left hand corner of the Package Manager window you will see a plus sign. To the right of this sign, click on the Tab where it says "Packages: ....". This will open a drop down menu. In the drop down menu, select "Unity Registry".
It should now look something like this:
-
Search and find the Code Coverage package and click on install.
-
Close the Package Manager after the installation is done and go to: Window > Analysis > Code Coverage. This will open the Code Cover Manager.
-
Enable Code Coverage by enabling the checkbox ¨Enable Code Coverage"
-
Optional: Change the directory where you want the code coverage Result and Report to go to.
-
Make sure all the items except the "Tests and GameAssembly" item in are unchecked in the Included Assemblies
-
These Reports will be generated when you run the unit tests. To check the code coverage information open up the directory where these are generated and open the index.html file in a web browser.
How to run the unit tests
- Open the project from Unity Hub
- When the project is open go to Window > General > Test Runner. This will open the Test Runner window in which we run all our test in.
- Click on Run all.
- You might be prompted with a popup window asking you to switch to debug mode. If so click "Switch to debug mode".
- Now the test results should be visable and you can see which tests have either passed or failed.
For further statistics open up the index.html file in the directory where the report was generated.
(6. If the above points dont work. Try to do the steps in Compiling and Running)
How to run a linter in our project
- Open a terminal
- Go to the directory where your cloned version of Bomb-IT is
- Insert script
dotnet format Bomb-IT.sln
- Command will fix whitespace, code style, and analyzer issues by default.
Kanban Board
CI
- Right now, we are experiencing problems with unity test runner v.2.1.1. Therefore, all contributors need to make sure to run the tests singlehanded before pushing their changes. We have internally decided that you must declare when doing PRs that test is done before we will approve the PRs.
List of names in Group 5
- Martin Nilsson, Github: MarrisSparrisNilsson
- Felix Stockinger, Github: Stocken99
- Joel Scarinius, Github: JoelScarinius
- Jacob Danielsson, Github: McFluffen
- Matilda Ronder, Github: matildaronder
- Lukas Ydkvist, Github: Lukasydkvist
Declaration
I, Joel Scarinius, declare that I am the sole auther of the content I add to this repository.
I, Matilda Ronder, declare that I am the sole auther of the content I add to this repository.
I, Martin Nilsson, declare that I am the sole auther of the content I add to this repository.
I, Felix Stockinger, declare that I am the sole auther of the content I add to this repository.
I, Lukas Ydkvist, declare that I am the sole auther of the content I add to this repository.
I, Jacob Danielsson, declare that I am the sole auther of the content i add to this repository.