This commit is contained in:
Bram Verhulst
2024-06-09 22:03:29 +02:00
parent d7389411f5
commit 5f1dcd5788
76 changed files with 1532 additions and 385 deletions

178
README.md
View File

@@ -1,59 +1,59 @@
<a name="readme-top"></a>
<!-- GENERAL GAME INFO -->
<br />
<div align="center">
<!-- GENERAL GAME INFO -->
<br />
<div align="center">
<h1 align="center">Motherload</h1>
<h1 align="center">Motherload</h1>
<p align="center">
Gather resources and buy upgrades to dig as far as you can. You have to dig ores and sell them to earn cash which you use to buy fuel, digger upgrades, explosives, and other supplies. You can only sell ore and buy items at the surface. If you run out of fuel, your digger explodes and you die (game over). There are more valuable (and heavier) ores as you go deeper into the mine. There are several types of alien artifacts which are of considerable value and appear randomly throughout the mine (below 950 feet).
<br />
<strong>Original game : </strong>
<a href="https://xgenstudios.fandom.com/wiki/Motherload"><strong>General info »</strong></a>
·
<a href="https://www.youtube.com/watch?v=QCMbRe8ij5g&t=322s&pp=ygUTbW9odGVybG9hZCBnYW1lcGxheQ%3D%3D"><strong>Youtube video »<strong></a>
<br />
<br />
</p>
</div>
<p align="center">
Gather resources and buy upgrades to dig as far as you can. You have to dig ores and sell them to earn cash which you use to buy fuel, digger upgrades, explosives, and other supplies. You can only sell ore and buy items at the surface. If you run out of fuel, your digger explodes and you die (game over). There are more valuable (and heavier) ores as you go deeper into the mine. There are several types of alien artifacts which are of considerable value and appear randomly throughout the mine (below 950 feet).
<br />
<strong>Original game : </strong>
<a href="https://xgenstudios.fandom.com/wiki/Motherload"><strong>General info »</strong></a>
·
<a href="https://www.youtube.com/watch?v=QCMbRe8ij5g&t=322s&pp=ygUTbW9odGVybG9hZCBnYW1lcGxheQ%3D%3D"><strong>Youtube video »<strong></a>
<br />
<br />
</p>
</div>
<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">About The Project</a>
</li>
<li>
<a href="#my-version">My version</a>
</li>
<li>
<a href="#getting-started">Getting Started</a>
</li>
<li><a href="#how-to-play">How To Play</a></li>
<li><a href="#class-structure">Class structure</a></li>
<li><a href="#checklist">Checklist</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ol>
</details>
<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">About The Project</a>
</li>
<li>
<a href="#my-version">My version</a>
</li>
<li>
<a href="#getting-started">Getting Started</a>
</li>
<li><a href="#how-to-play">How To Play</a></li>
<li><a href="#class-structure">Class structure</a></li>
<li><a href="#checklist">Checklist</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ol>
</details>
<!-- ABOUT THE PROJECT -->
<!-- ABOUT THE PROJECT -->
## About The Project
TODO: add screenshot
![screenshot.jpg](Assets%2Fscreenshot.jpg)
Here's why:
TODO: describe why you chose this game
* It's a classic game that I played when I was younger.
* It's a game that I can make in a reasonable amount of time.
*
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## My version
@@ -65,7 +65,7 @@ This section gives a clear and detailed overview of which parts of the original
* Resource Collection
* Random Generated world
* The fuel and sell building
### What I will probably make as well:
* Dying
* Working Lava
@@ -74,10 +74,10 @@ This section gives a clear and detailed overview of which parts of the original
* Main Menu, Options Screen
* Boss fight
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- GETTING STARTED -->
<!-- GETTING STARTED -->
## Getting Started
Detailed instructions on how to run your game project are in this section.
@@ -88,77 +88,93 @@ This is an example of how to list things you need to use the software and how to
### How to run the project
Explain which project (version) must be run.
* any extra steps if required
1. Download the Repo.
2. Open the project in Visual Studio 2022 or Jetbrains Rider.
3. Run the project.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- HOW TO PLAY -->
<!-- HOW TO PLAY -->
## How to play
Use this space to show useful examples of how a game can be played.
Additional screenshots and demos work well in this space.
### Controls
* W A S D
* W A S D
* Mouse For menues
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CLASS STRUCTURE -->
## Class structure
<!-- CLASS STRUCTURE -->
## Class structure
### Object composition
If you applied object composition (optional); explain where and how.
### Object composition
#### Player
The player has a bunch of objects in the Player class, These are
- Animations
- Particles
- SoundEffects
#### WorldLevel
The world level contains all the objects for the "Main" Game. These are
- Player
- GridManager
- Background Music
- MainScreen (Game UI)
- The Sun and Moon
### Inheritance
Explain where you applied inheritance (mandatory).
### Inheritance
Here are a couple examples on how i used Inheritance throughout the project.
### ..
#### Screens
The Screen class is the base class for all the screens in the game. <br>
This Class manages all the GuiElements inside of it. <br>
Also all the subscreens, eg. FuelScreen, SellScreen, even the Main Game ui is a subclass of the Screen type.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
#### GuiElement
The whole Screen system is based on the GuiElement. This class has a Draw and Update Function. <br>
This is because the Screen class calls these for each of the subclasses of a GuiElement. <br>
For Example, the Button class is a subclass of GuiElement. <br>
The Button class has a Draw and Update function that the Screen class calls. The screen does not know what type of <br>
update it's calling, it just knows that it's calling the update function of a GuiElement.
<!-- CHECKLIST -->
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CHECKLIST -->
## Checklist
- [x] Accept / set up github project
- [x] week 01 topics applied
- [ ] const keyword applied proactively (variables, functions,..)
- [ ] static keyword applied proactively (class variables, static functions,..)
- [ ] object composition (optional)
- [x] week 02 topics applied
- [x] week 03 topics applied
- [ ] week 04 topics applied
- [ ] week 05 topics applied
- [ ] week 06 topics applied
- [ ] week 07 topics applied
- [ ] week 08 topics applied
- [ ] week 09 topics applied (optional)
- [ ] week 10 topics applied (optional)
- [x] week 04 topics applied
- [x] week 05 topics applied
- [x] week 06 topics applied
- [x] week 07 topics applied
- [x] week 08 topics applied
- [x] week 09 topics applied (optional)
- [x] week 10 topics applied (optional)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CONTACT -->
<!-- CONTACT -->
## Contact
Bram Verhulst - bram.verhulst@student.howest.be
Project Link: [Here](https://github.com/HowestDAE/dae16-VerhulstBram)
Project Link: [Here](https://github.com/HowestDAE/dae16-VerhulstBram)
Alternative Project Link (Gitea): [Here](https://git.brammie15.dev/brammie15/dae16-VerhulstBram-GameProject)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- ACKNOWLEDGMENTS -->
<!-- ACKNOWLEDGMENTS -->
## Acknowledgments
Use this space to list resources you find helpful and would like to give credit to.
Use this space to list resources you find helpful and would like to give credit to.
* [Example 1: cpp reference on std::vector](https://en.cppreference.com/w/cpp/container/vector)
* ..
* [Dear ImGui for development](https://github.com/ocornut/imgui)
<p align="right">(<a href="#readme-top">back to top</a>)</p>