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

Commit

Permalink
Merge pull request #69 from fusionengine-org/dev
Browse files Browse the repository at this point in the history
V5
  • Loading branch information
dimkauzh authored Jan 23, 2024
2 parents 3c0d8d4 + ea21945 commit 69b5ff7
Show file tree
Hide file tree
Showing 101 changed files with 3,395 additions and 1,304 deletions.
69 changes: 62 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,72 @@
# Contributing
# Contributing rules
We are happy and welcome if you want to contribute to fusion engine. But please consider a few details before continuing:
- Branch: Please when working on your fork, work in the dev branch, because we only will accept commits to the dev branch. It will later be released with the next version of fusion.
- Explain: Please explain why this should be considered and merged. That will make our life easier.
- Test: Please test your code before even opening a new pull request.
- Documentation: Please, if your adding something new, like a feature, please document everything.
- Format: Please, run black for formatting of the code.
1. Branch: Please when working on your fork, work in the dev branch, because we only will accept commits to the dev branch. It will later be released with the next version of fusion.
2. Explain: Please explain why this should be considered and merged. That will make our life easier.
3. Test: Please test your code before even opening a new pull request.
4. Documentation: Please, if your adding something new, like a feature, please document everything.
5. Format: Please, run black for formatting of the code.

## Not following these rules
If we see a pull request that doesn't follow these rules, we will tell you that, and close the pull request.
We allow you to re-open a new pull request, but we expect you to have your code fixed.
So make sure that you followed [the rules](#contributing-rules)

## Some technologies we are using
- PDM: We are using pdm for our main interaction with the library.
- pyproject.toml: Pythons way for setting up a project. A replacement for setup.py
- pygame-ce, pygame_gui and pymunk: We are using all three of these libraries to develop fusion engine.
- pygame-ce: Used for windowing and events
- PyOpenGL: Used for rendering everything
- pillow (PIL): Used for loading images for PyOpenGL
- pymunk: Will be used for physics
- black: We are using black to format code

## How to setup the work environment
If you want to contribute, you got to setup the work environment, so you can develop fusion the right way. First, install PDM using pip:
```bash
pip install --user pdm
```
PDM will manage everything for us, like virtual enviorments, packages and scripts.

Then, fork [the repository](https://github.com/fusionengine-org/fusion-engine) to your profile.

Then, clone your forked github repository:
```bash
git clone https://github.com/_your_username_/fusion-engine.git
cd fusion-engine
```
Then, change the branch to the dev branch to follow rule #1:
```bash
git checkout dev
```

After that we need to run a special PDM command for creating the venv with the dev dependencies:
```bash
pdm install --dev
```
This will create a .venv, with all dependencies needed and will install a editable version of fusion engine. This will have the same effect as `pip install -e .`.

To test if it works properly, run one of the example using PDM:
```bash
pdm run example1
```

If you want to test documentation code, run the mkdocs command for starting a local server with the documentation. Run it with:
```bash
pdm run docs
```

If you want to run some specific files, then just run:
```bash
pdm run your_file.py
```

## Pull Request
If you're ready with your changes, then you must follow a few steps before pull requesting.
First, run black using PDM to format your code:
```bash
pdm run lint
```

Then make sure your pull request code works without erroring and you followed the [contribution rules](#contributing-rules)

After all of this, you can create a pull request and one of our main organisation members will look at it.
42 changes: 15 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<p align="center">
<img src="https://github.com/dimkauzh/fusion-engine/assets/106883655/183ab172-2c3e-49b5-ba31-7c1ad63e564a" alt="logo">
<img src="icon/fusion-banner2.png" alt="logo">
</p>

<p align="center">
Expand All @@ -13,29 +13,22 @@
</p>


Fusion is a game engine for creating graphical applications using the Pygame library and the programming language Python. It provides a simple coding interface for creating windows,
Fusion is a game engine for creating graphical applications using OpenGL and the programming language Python. It provides a simple coding interface for creating windows,
rendering graphics, and handling user input. It is and engine to create games fast and easy!

## 🗜️ Table of Contents

- [Development](#development)
- [Website](https://fusion-engine.tech/)
- [Installation](#installation)
- [Community](#community)
- [Tutorials](<https://docs.fusion-engine.tech/>)
- [Installation](#💾-installation)
- [Community](#👥-community)
- [Documentation](<https://docs.fusion-engine.tech/>)
- [Wiki](<https://docs.fusion-engine.tech/>)
- [Coming features](#coming-features)
- [License](#license)
- [About](#about)

## Website
- [Coming features](#📯-coming-features)
- [License](#🪪-license)
- [About](#🗄️-about)

Our website is at this [link](<https://fusion-engine.tech/>)

## 💾 Installation

### Using PyPi
### ➡️ Using PyPi

To install our package, run this:

Expand All @@ -45,7 +38,7 @@ To install our package, run this:

Our PyPI package is at this [link](<https://pypi.org/project/fusion-engine/>)

### Install from source/devel
### 🪲 Install from source/devel

if you want to install the package from source and get the latest changes then you do it like this:

Expand All @@ -55,18 +48,18 @@ if you want to install the package from source and get the latest changes then y
pip install .
```

### Run example
### 🏃‍♂️ Run example
The examples are located [here](https://github.com/dimkauzh/fusion-engine/tree/main/src/fusionengine/examples)
If you want to run the example, then follow these instructions:

#### Fusion engine v4.2.1 and later
#### 🆕 Fusion engine v4.2.1 and later
First, make sure you have fusion engine installed. Then you can run the first example with the following command:
```bash
python -m fusionengine.examples.example1
```
For other examples, you can modify the command to run the other example. Just change the number of the example.

#### Fusion engine v4.2.0 and earlier
#### 🧓 Fusion engine v4.2.0 and earlier
You will need to clone the Fusion engine repo to run the exampes. To do that run this command:
```bash
git clone https://github.com/dimkauzh/fusion-engine.git
Expand All @@ -85,28 +78,23 @@ For different examples, you change the number to the number of the example file
We have a discord server at this [link](<https://discord.gg/Smg3CK4ZMc>).
Need to contact us? Just #dimkauzh in discord and he will try to react as fast as possible

## Contributing
## 💁‍♂️ Contributing
Our community is just growing, so if you want to help us with the project,
it will be very helpful! We are welcome to all people who want to contribute, but you do need to follow the [contribution rules](CONTRIBUTING.md)
Special thanks to all the contributors, they made the project even better!
And thanks to our community of course!

## Tutorials
## 🥎 Tutorials
Are you exited to start with fusion engine but you dont know where to start? Then maybe its worth looking though one of our tutorials! We tried to make them as simple as possible but still very informative. You can find them [here](<https://docs.fusion-engine.tech/>)


## 📃 Documentation And WIKI

Do you need to figure out how to use a function or just want to know what it does? Then our wiki are perfect for you! But do you want to know if there is a specific function? Then the docs are perfect for you!
See at [our websites docs/wiki section](<https://docs.fusion-engine.tech/>)

## 📯 Coming features

We are working hard to implement very basic and complex stuff so our engine becomes more rigid. To see our changelog and todo list, please go [to our docs](<https://docs.fusion-engine.tech/>)

💡 - If you have more ideas, please tell us them in our [discord server](<https://discord.gg/Smg3CK4ZMc>) or create an issue!

## License
## 🪪 License

See [Licence here](LICENCE.md)

Expand Down
5 changes: 1 addition & 4 deletions docs/changelog/v3.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
---
hide:
- navigation
---


## V3 Todo/Changelog

Expand Down
11 changes: 2 additions & 9 deletions docs/changelog/v4.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
---
hide:
- navigation
---

# Version 4 Todo/Changelog

## V4
Expand Down Expand Up @@ -29,10 +26,6 @@ hide:
- [x] New keys system

## V4.3
- [ ] Physics engine
- [ ] Box2D
- [ ] Static Body
- [ ] Rigid Body
- [ ] Integration with entities
- [ ] Good bug fixes


6 changes: 6 additions & 0 deletions docs/changelog/v5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Version 5 Todo/Changelog

## V5
- [ ] Docs cleanup
- [ ] New color system
- [ ] Optimised font drawing
29 changes: 29 additions & 0 deletions docs/get-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
hide:
- navigation
---


# Getting started with fusion
Welcome to fusion engine. If you're here, that means your interested in fusion. Here is a quick example how to setup fusion engine

## 💻 Setting up

To install it run this:

```bash
pip install fusion-engine
```

Then import:

```python
import fusionengine as fusion
```
And your done!

## Next step
After this, you can head into the section tutorials or wiki, to learn more about fusion engine. Have fun!

- [Tutorials](v5/tutorials/setup.md)
- [Wiki](v5/wiki/window.md)
91 changes: 11 additions & 80 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ hide:
---

<p align="center">
<img src="https://github.com/dimkauzh/fusion-engine/assets/106883655/183ab172-2c3e-49b5-ba31-7c1ad63e564a" alt="logo">
<img src="v5/assets/logo/fusion-banner.png" alt="logo" width="1000" height="800">
</p>

<p align="center">
Expand All @@ -18,88 +18,19 @@ hide:
</p>


Fusion is a game engine for creating graphical applications using the Pygame library and the programming language Python. It provides a simple coding interface for creating windows,
Fusion is a game engine for creating graphical applications using OpenGL and the programming language Python. It provides a simple coding interface for creating windows,
rendering graphics, and handling user input. It is and engine to create games fast and easy!

## Repo
Our Github repo [is here](https://github.com/dimkauzh/fusion-engine)
## 👋 Welcome
Welcome to fusion engine documentation! We have seperated the documentation in two parts: wiki and tutorial.
Wiki is made if you need to know what a function does. And in tutorials we made some tutorials for you to better understand fusion!
To get started, head over to the 'Getting Started' section in the navigation bar. You can also choose the wiki or tutorials section in the navigation bar. Or you can use these links

## 🗜️ Table of Contents
Welcome to fusion engine documentation! We have seperated the documentation in some parts: main, api, wiki and tutorial.
Wiki is made if you need to know what a function does.
Api is made if you need to know if a function exist and what arguments it takes,
and in tutorials we made some tutorials for you to better understand fusion!
## Quick links

## 💻 Setting up
- [Get started](get-started.md)
- [Tutorials](v5/tutorials/setup.md)
- [Wiki](v5/wiki/window.md)
- [Legacy docs](legacy/index.md)

To install it run this:

```bash
pip install fusion-engine
```

Then import:

```python
import fusionengine as fusion
```
And your done!


## Todo list and changelog
- [v4](changelog/v4.md)
- [v3](changelog/v3.md)

### Wiki
- [Setting up](#setting-up)
- [Wiki](v4/wiki/index.md)


### Tutorials
- [Tutorials](v4/tutorials/index.md)

# v3
## About
The wiki, api and tutorials to the old v3 version of fusion, which is not being under development

### Wiki
- [Setting up](#setting-up-v3)
- [Wiki](v3/wiki/index.md)


### Tutorials
- [Tutorials](v3/tutorials/index.md)


## Api
There pages aren't maintained anymore and won't be. Please head over to the Wiki pages, tutorials or examples.
### Api
- [Setting up](#setting-up)
- [API](v4/api/api.md)


### V3 Api
- [Setting up](#setting-up-v3)
- [API](v3/api/api.md)



## 💻 Setting up v3

To install it run this:

```bash
pip install fusion-engine
```

Then import:

```python
import fusionengine as engine
```

And after that you need to create a object of our engine to run functions of it:

```python
main = engine.Main()
```
Loading

0 comments on commit 69b5ff7

Please sign in to comment.