Skip to content
This repository has been archived by the owner on Jan 19, 2024. It is now read-only.

Latest commit

 

History

History
258 lines (199 loc) · 9.22 KB

CONTRIBUTING.md

File metadata and controls

258 lines (199 loc) · 9.22 KB

Contributing

We would ❤️ for you to contribute to this Awesome Dino Thunder Project and help make it better! We want contributing to this repo to be fun, enjoyable, and educational for anyone and everyone. All contributions are welcome, including issues, doc improvements as well as updates and tweaks.

How to Start?

If you are worried or don’t know where to start, check out our next section explaining what kind of help we could use and where can you get involved. You can reach out with questions to Bishwajeet Parhi (@biswa_20p) on Twitter. You can also submit an issue, and a maintainer can guide you!

Code of Conduct

Help us keep Dino Thunder Project open and inclusive. Please read and follow our Code of Conduct.

Submit a Pull Request 🚀

Branch naming convention is as following

TYPE-ISSUE_ID-DESCRIPTION

example:

doc-548-submit-a-pull-request-section-to-contribution-guide

When TYPE can be:

  • feat - is a new feature
  • doc - documentation only changes
  • cicd - changes related to CI/CD system
  • fix - a bug fix
  • refactor - code change that neither fixes a bug nor adds a feature

All PRs must include a commit message with the changes description!

For the initial start, fork the project and use git clone command to download the repository to your computer. A standard procedure for working on an issue would be to:

  1. git pull, before creating a new branch, pull the changes from upstream. Your master needs to be up to date.
git pull
  1. Create new branch from master like: doc-548-submit-a-pull-request-section-to-contribution-guide
git checkout -b [name_of_your_new_branch]
  1. Work - commit - repeat ( be sure to be in your branch )

  2. Push changes to GitHub

git push origin [name_of_your_new_branch]
  1. Submit your changes for review If you go to your repository on GitHub, you'll see a Compare & pull request button. Click on that button.
  2. Start a Pull Request Now submit the pull request and click on Create pull request.
  3. Get a code review approval/reject
  4. After approval, merge your PR
  5. GitHub will automatically delete the branch after the merge is done. (they can still be restored).

Setup From Source

To set up a working development environment, fork the project git repository and ensure you have a C++ Compiler and GNU Make installed. Details about it is given in the readme file.

git clone git@github.com:[YOUR_FORK_HERE]/Dinasaur-Game-CPP.git

cd dinothunder

code .

Code Autocompletion

To get proper autocompletion for all the different functions and classes in the codebase, you'll need to install the recommended C/C++ extensions.

Get Started

After finishing the installation process, you can start writing and editing code.

File Structure

.
├─ assets # Assets of the game
│  ├─ fonts # Fonts used in the game
│  │  ├─ 8bitOperatorPlus-Bold.ttf
│  │  ├─ 8bitOperatorPlus-Regular.ttf
│  │  ├─ 8bitOperatorPlus8-Bold.ttf
│  │  ├─ 8bitOperatorPlus8-Regular.ttf
│  │  ├─ 8bitOperatorPlusSC-Bold.ttf
│  │  ├─ 8bitOperatorPlusSC-Regular.ttf
│  │  └─ SIL Open Font License.txt
│  ├─ music # Music used in the game
│  │  ├─ game_music.ogg
│  │  └─ mainmenu.ogg
│  ├─ sounds # Sounds used in the game play state
│  │  ├─ game_over.ogg
│  │  └─ jump.wav
│  └─ sprites # Sprites used in the game
│     ├─ background # Background Sprite
│     │  ├─ layers
│     │  │  ├─ parallax-mountain-bg.png
│     │  │  ├─ parallax-mountain-foreground-trees.png  
│     │  │  ├─ parallax-mountain-montain-far.png
│     │  │  ├─ parallax-mountain-mountains.png
│     │  │  ├─ parallax-mountain-trees.png
│     │  │  └─ parallax-mountain.png
│     │  ├─ license.txt
│     │  └─ parallax-mountain.psd
│     ├─ birds # Obstacle Bird Sprite
│     │  ├─ BirdSprite.png
│     │  ├─ BirdSpriteBig.png
│     │  └─ readme.txt
│     ├─ clouds #Clouds 
│     │  ├─ Clouds V2-2.png
│     │  ├─ Clouds V2.aseprite
│     │  └─ Clouds V2.png
│     ├─ Dino # Dino(Main Character)
│     │  ├─ aseprite
│     │  │  ├─ dinoCharacters-display.ase
│     │  │  └─ DinoSprites.ase
│     │  ├─ gifs
│     │  │  ├─ DinoSprites_doux.gif
│     │  │  ├─ DinoSprites_mort.gif
│     │  │  ├─ DinoSprites_tard.gif
│     │  │  └─ DinoSprites_vita.gif
│     │  ├─ misc
│     │  │  └─ shadow_2.png
│     │  ├─ sheets
│     │  │  ├─ DinoSprites - doux.png
│     │  │  ├─ DinoSprites - mort.png
│     │  │  ├─ DinoSprites - vita.png
│     │  │  └─ DinoSprites-tard.png
│     │  └─ credits.txt
│     ├─ floor # Tiles
│     │  └─ Wasteland-Files.png
│     └─ obstacles  #Obstacles
│        ├─ winter_tree_1.png
│        ├─ winter_tree_2.png
│        ├─ winter_tree_3.png
│        ├─ winter_tree_4.png
│        └─ winter_tree_5.png
├─ include # Declaration of all the classes and functions used in the game
│  ├─ asset_manager.hpp
│  ├─ game.hpp
│  ├─ game_over.hpp
│  ├─ game_play.hpp
│  ├─ main_menu.hpp
│  ├─ pause_game.hpp
│  ├─ State.hpp
│  └─ state_manager.hpp
├─ lib # Defination of all the classes and functions used in the game
│  ├─ asset_manager.cpp
│  ├─ game.cpp
│  ├─ game_over.cpp
│  ├─ game_play.cpp
│  ├─ main_menu.cpp
│  ├─ pause_game.cpp
│  └─ state_manager.cpp
├─ screenshots # Screenshots of the game
├─ src # SFML source code (Do not touch this)
│  ├─ include
│  │  └─ SFML
│  │     ├─ Audio
│  │     ├─ Graphics
│  │     ├─ Network
│  │     ├─ System
│  │     ├─ Window
│  │     ├─ Audio.hpp
│  │     ├─ Config.hpp
│  │     ├─ GpuPreference.hpp
│  │     ├─ Graphics.hpp
│  │     ├─ Main.hpp
│  │     ├─ Network.hpp
│  │     ├─ OpenGL.hpp
│  │     ├─ System.hpp
│  │     └─ Window.hpp
│  └─ lib
├─ CODE_OF_CONDUCT.md
├─ CONTRIBUTING.md
├─ LICENSE
├─ main.cpp # main execution of the game
├─ Makefile
├─ openal32.dll # DLL Files
├─ README.md
├─ sfml-audio-2.dll  # DLL Files
├─ sfml-audio-d-2.dll # DLL Files
├─ sfml-graphics-2.dll # DLL Files
├─ sfml-graphics-d-2.dll # DLL Files
├─ sfml-network-2.dll # DLL Files
├─ sfml-network-d-2.dll # DLL Files
├─ sfml-system-2.dll # DLL Files
├─ sfml-system-d-2.dll # DLL Files
├─ sfml-window-2.dll # DLL Files
├─ sfml-window-d-2.dll # DLL Files

Technology Stack

To start helping us to improve the Dino Thunder by submitting code, prior knowledge of Dino Thunder technology stack can help you with getting started.

Dino Thunder is a game made using the SFML library. The SFML library is a cross-platform C++ library that provides a simple interface to 2D and 3D graphics, audio, and network functionality.

Coding Standards

Currently Dino Thunder doesn't use any Coding Standards. If you would like to implement a coding standart. We use standard C/C++ extension to format the code

Introducing New Features

We would 💖 you to contribute to this game, but we would also like to make sure that this game is as great as possible and simple and easy to play.

For us to find the right balance, please open an issue explaining your ideas before introducing a new pull request.

This will allow us to have sufficient discussion about the new feature value and how it can impact this game

This is also important for the maintainers to be able to give technical input and different emphasis regarding the feature design and architecture.

Build

To build a new version of the game, all you need to do is run the make command like this:

make

Other Ways to Help

Pull requests are great, but there are many other areas where you can help on this Project.

Sending Feedbacks & Reporting Bugs

Sending feedback is a great way for us to know how do you liked this game. If you had any issues, bugs, or want to share about your experience, feel free to do so on our GitHub issues page.

Submitting New Ideas

If you think this Game could use a new feature, please open an issue on our GitHub repository, stating as much information as you can think about your new idea and it's implications. We would also use this issue to gather more information, get more feedback from the community, and have a proper discussion about the new feature.

Improving Documentation

Submitting documentation updates, enhancements, designs, or bug fixes. Spelling or grammar fixes will be very much appreciated.

Helping Someone

Since this project is more of a tutorial, you could share this project with your friends and colleagues.