Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: update and reorganized README.md and CONTRIBUTING.md #160

Merged
merged 4 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Contributing

🚀 **Welcome to the Prowl community! We're thrilled that you're interested in contributing.**

We're not too proud to admit it – we need your help. 🆘

Developing a game engine is a colossal task, and we can't do it alone. We need passionate developers, designers, testers, and documentation enthusiasts, people like you to help make Prowl the best it can be. 💪

## How You Can Contribute

### Code Contributions 💻

Whether you're a seasoned developer or just getting started, your code contributions are invaluable. We have a list of [open issues](https://github.com/michaelsakharov/prowl/issues) that you can tackle, or feel free to propose your own improvements.

### Bug Reports 🐛

Encountered a bug? We want to know! Submit detailed bug reports on our [issue tracker](https://github.com/michaelsakharov/prowl/issues) to help us squash those pesky bugs.

### Feature Requests 💡

Have a fantastic idea for a new feature? Share it with us! Open a [feature request](https://github.com/michaelsakharov/prowl/issues) and let's discuss how we can make Prowl even better.

### Spread the Word 📣

Not a developer? No problem! You can still contribute by spreading the word. Share your experiences with Prowl on social media, blogs, or forums. Let the world know about the exciting things happening here.

## Contributor Recognition 🏆

We're not just asking for contributors; we're asking for partners in this journey. Every small contribution is a step toward realizing Prowl.

All contributors will be acknowledged in our [Acknowledgments/Contributors](//README.md#contributors-) section.

**Thank you for considering contributing to Prowl. Together, let's build something amazing!**
### [<p align="right">Join our Discord server! 🎉</p>](https://discord.gg/BqnJ9Rn4sn)
224 changes: 102 additions & 122 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,83 @@
<img src="https://github.com/Kuvrot/Prowl/assets/23508114/5eef8da7-fb84-42f3-9d18-54b4f2d06551" width="100%">
<img src="https://github.com/Kuvrot/Prowl/assets/23508114/5eef8da7-fb84-42f3-9d18-54b4f2d06551" width="100%" alt="prowl-logo">

![Github top languages](https://img.shields.io/github/languages/top/michaelsakharov/prowl)
[![GitHub version](https://img.shields.io/github/v/release/michaelsakharov/prowl?include_prereleases&style=flat-square)](https://github.com/michaelsakharov/prowl/releases)
[![GitHub license](https://img.shields.io/github/license/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/blob/main/LICENSE.txt)
[![GitHub issues](https://img.shields.io/github/issues/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/issues)
[![GitHub stars](https://img.shields.io/github/stars/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/stargazers)
[![Discord](https://img.shields.io/discord/1151582593519722668?style=flat-square)](https://discord.gg/BqnJ9Rn4sn)
[![GitHub version](https://img.shields.io/github/v/release/michaelsakharov/prowl?include_prereleases&style=flat-square)](https://github.com/michaelsakharov/prowl/releases)
[![GitHub license](https://img.shields.io/github/license/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/blob/main/LICENSE.txt)
[![GitHub issues](https://img.shields.io/github/issues/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/issues)
[![GitHub stars](https://img.shields.io/github/stars/michaelsakharov/prowl?style=flat-square)](https://github.com/michaelsakharov/prowl/stargazers)
[![Discord](https://img.shields.io/discord/1151582593519722668?logo=discord
)](https://discord.gg/BqnJ9Rn4sn)

# <p align="center">🎮 An Open Source Unity-like Engine! 🎮</p>

<a id="readme-top"></a>
<ol>
<li> <a href="#about-the-project">About The Project</a> </li>
<li> <a href="#about-the-project">Features</a> </li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
</ul>
</li>
<li><a href="#roadmap">Roadmap</a></li>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
<li><a href="#license">License</a></li>
<li><a href="#dependencies">Dependencies</a></li>
</ol>

# <p align="center">📝 About The Project 📝</p>
Prowl is an open-source, **MIT-licensed** game engine developed in **pure C# in .NET 8**, (which surprisingly has **no runtime fees** believe it or not! 😮). It aims to provide a seamless transition for developers familiar with Unity by maintaining a similar API while also following KISS and staying as small and customizable as possible.
The goal is a viable open-source Unity alternative, ideally, Unity projects can port over with as little resistance as possible.


### [<p align="center">Join our Discord server! 🎉</p>](https://discord.gg/BqnJ9Rn4sn)

![Screenshot 2024-06-27 172952](https://github.com/michaelsakharov/Prowl/assets/8621606/80df58cc-53ac-4582-b722-1800d6cd4d13) | ![Screenshot 2024-06-27 172106](https://github.com/michaelsakharov/Prowl/assets/8621606/c13e9145-6b35-4ea5-ad66-523a275d0bc9)
:-:|:-:
![image](https://github.com/michaelsakharov/Prowl/assets/8621606/91ab57be-b215-40a8-871b-baf1dfc9ea58) | ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/1cc6bb14-7c41-46e9-a581-c79ba51fc45f)
![image](https://github.com/michaelsakharov/Prowl/assets/8621606/b7fb26e0-568f-4bd7-9282-3e2fd12b38a9) | ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/1b376ae7-8f13-41ea-ba1d-a49f777398ac)
![UntitledFLightModel](https://github.com/michaelsakharov/Prowl/assets/8621606/58a3c640-6ace-4f2f-8de6-e3bf5bbf9865) | ![Untitled](https://github.com/michaelsakharov/Prowl/assets/8621606/5165f2c4-681f-4cf7-8579-1152c971d142)

# <p align="center">✨ Features ✨</p>
<span id="readme-top"></span>

1. [About The Project](#span-aligncenter-about-the-project-)
2. [Features](#span-aligncenter-features-span)
3. [Getting Started](#span-aligncenter-getting-started-span)
* [Prerequisites](#prerequisites)
* [Installation](#installation)
4. [Roadmap](#span-aligncenter-roadmap-span)
5. [Contributing](#span-aligncenter-contributing-span)
6. [Acknowledgments](#span-aligncenter-acknowledgments-span)
* [Prerequisites](#contributors-)
* [Dependencies](#dependencies-)
7. [License](#span-aligncenter-license-span)

# <span align="center">📝 About The Project 📝

Prowl is an open-source, **[MIT-licensed](#span-aligncenter-license-span)** game engine developed in **pure C# in latest .NET**, (which surprisingly has **no runtime fees** believe it or not! 😮).

It aims to provide a seamless transition for developers familiar with _Unity_ by maintaining a similar API while also following KISS and staying as small and customizable as possible. Ideally, _Unity_ projects can port over with as little resistance as possible.

### [<p align="center">Join our Discord server! 🎉</p>](https://discord.gg/BqnJ9Rn4sn)

| ![Screenshot 2024-06-27 172952](https://github.com/michaelsakharov/Prowl/assets/8621606/80df58cc-53ac-4582-b722-1800d6cd4d13) | ![Screenshot 2024-06-27 172106](https://github.com/michaelsakharov/Prowl/assets/8621606/c13e9145-6b35-4ea5-ad66-523a275d0bc9) |
| :-: | :-: |
| ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/91ab57be-b215-40a8-871b-baf1dfc9ea58) | ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/1cc6bb14-7c41-46e9-a581-c79ba51fc45f) |
| ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/b7fb26e0-568f-4bd7-9282-3e2fd12b38a9) | ![image](https://github.com/michaelsakharov/Prowl/assets/8621606/1b376ae7-8f13-41ea-ba1d-a49f777398ac) |
| ![UntitledFLightModel](https://github.com/michaelsakharov/Prowl/assets/8621606/58a3c640-6ace-4f2f-8de6-e3bf5bbf9865) | ![Untitled](https://github.com/michaelsakharov/Prowl/assets/8621606/5165f2c4-681f-4cf7-8579-1152c971d142) |

# <span align="center">✨ Features ✨</span>

- **General:**
- Cross-Platform! Windows, Linux & Mac!
- Unity-like Editor & Scripting API
- C# Scripting
- Gameobject & Component structure
- GameObject & Component structure
- A Powerful Custom UI Library
- Same Library for Ingame and Editor UI
- 3D Drawing in UI used for Gizmo's
- Immediate Mode with retained properties
- Same Library for In-game and Editor UI
- 3D Drawing in UI used for Gizmo's
- Immediate Mode with retained properties
- .NET 8
- Editor with support for Editor Scripts and Custom Editors
- Physics ([Bepu Physics 2](https://github.com/bepu/bepuphysics2))
- Colliders: Box, Sphere, Capsule, Cylinder, ~~Mesh Collider~~ - Needs to be re-implemented
- Triggers
- Raycasts and Sweeps
- Non-Kinematic Character Controller (Just a fancy rigidbody)
- Supports Moving Platforms
- A ton of physical constraints (All of Bepu's constraints)
- Colliders: Box, Sphere, Capsule, Cylinder, ~~Mesh Collider~~ - Needs to be re-implemented
- Triggers
- Raycasts and Sweeps
- Non-Kinematic Character Controller (Just a fancy rigidbody)
- Supports Moving Platforms
- A ton of physical constraints (All of Bepu's constraints)
- Unity-like Coroutines
- Playtest directly in Editor
- ScriptableObjects
- Projects & Project Settings
- Unity-like Serializer to create In-Memory Graphs
- Graph -> Custom Text Format
- Graph -> Binary
- Graph -> Custom Text Format
- Graph -> Binary
- Fully 64-bit using Doubles
- Large World Coordinates Support
- ~~Camera Relative Rendering~~ - Needs to be Reimplemented
- Camera Relative Rendering
- Scene System
- Modular Audio Backend
- OpenAL
- Currently only supports .wav files
- OpenAL
- Currently only supports .wav files
- Prefabs
- Build System - Build to Standalone Application
- Packed Asset files
- Less than 15mb builds - currently working on removing 10mb, Almost done!
- Only exports used assets
- Supports Windows, Mac & Linux
- Packed Asset files
- Less than 15mb builds - currently working on removing 10mb, Almost done!
- Only exports used assets
- Supports Windows, Mac & Linux
- Navmesh and AI Agents (Recast & Detour)

- **Graphics Rendering:**
Expand Down Expand Up @@ -115,109 +113,78 @@ The goal is a viable open-source Unity alternative, ideally, Unity projects can
- Supports many major file formats via ImageMagick, Assimp, etc
- Sub-Assets, Assets stored inside other assets
- Dependency Tracking
### [<p align="right">Join our Discord server! 🎉</p>](https://discord.gg/BqnJ9Rn4sn)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

# <p align="center">🚀 Getting Started 🚀</p>
# <span align="center">🚀 Getting Started 🚀</span>

Getting Prowl up and running is super easy!

**Note: There are no official releases yet so you need to download this repository to use Prowl!**
## Releases

> **Note**: There are no official releases yet so you need to download this repository to use Prowl!

## Build from source

### Prerequisites

* [Visual Studio Version 17.8.0+](https://visualstudio.microsoft.com/vs/preview/) - Required to support .NET 8
* [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)

### Installation

1. Clone the repo
2. Open `.sln` file with [Visual Studio Version 17.8.0+](https://visualstudio.microsoft.com/vs/preview/)
3. That's it! 😄 🎉
<p align="right">(<a href="#readme-top">back to top</a>)</p>
2. Open `.sln` with your editor ([Visual Studio Version 17.8.0+](https://visualstudio.microsoft.com/vs/preview/), VSCode, Rider, etc.)
3. run `UpdateSubmodules.bat` (on Windows) or `UpdateSubmodules.sh` (on Linux)
4. That's it! 😄 🎉
<p align="right">(<a href="#readme-top">back to top</a>)</p>

# <p align="center">🗺️ Roadmap 🗺️</p>
# <span align="center">🗺️ Roadmap 🗺️</span>

### Engine

- 🛠️ Cross Platform
- ✔️ Windows
- ✔️ MacOS
- ✔️ Linux
- ❌ Andriod
- ❌ iOS
- ❌ Web
- ✔️ Windows
- ✔️ MacOS
- ✔️ Linux
- ❌ Android
- ❌ iOS
- ❌ Web
- ✔️ UI Engine
- ❌ VR Support
- ✔️ Navmesh and AI Agents
- 🛠️ Networking Solution

### Rendering

- ❌ SSAO, Screen-Space Decals, etc.
- ❌ Realtime GI
- ❌ Lightmaps and Light Probes
- ❌ Cascaded shadow mapping
- ❌ Particle System
- ❌ Terrain Engine
- ❌ [Particle System](https://github.com/ProwlEngine/Prowl/issues/37)
- ❌ [Terrain Engine](https://github.com/ProwlEngine/Prowl/issues/38)

### Editor

- 🛠️ Package Manager (Packages partially implemented)
- ❌ Animation Tools
- 🛠️ Visual Scripting
- ❌ Material Node Editor
- ❌ 2D Support

The complete list is in our [board](https://github.com/orgs/ProwlEngine/projects/1). Also, see the [open issues](https://github.com/michaelsakharov/prowl/issues) for a full list of proposed features and known issues.

See the [open issues](https://github.com/michaelsakharov/prowl/issues) for a full list of proposed features (and known issues).
<p align="right">(<a href="#readme-top">back to top</a>)</p>

# <p align="center">🤝 Contributing 🤝</p>

🚀 **Welcome to the Prowl community! We're thrilled that you're interested in contributing.**

We're not too proud to admit it – we need your help. 🆘

Developing a game engine is a colossal task, and we can't do it alone. We need passionate developers, designers, testers, and documentation enthusiasts, people like you to help make Prowl the best it can be. 💪

## How You Can Contribute

### Code Contributions 💻

Whether you're a seasoned developer or just getting started, your code contributions are invaluable. We have a list of [open issues](https://github.com/michaelsakharov/prowl/issues) that you can tackle, or feel free to propose your own improvements.

### Bug Reports 🐛
# <span align="center">🤝 Contributing 🤝</span>

Encountered a bug? We want to know! Submit detailed bug reports on our [issue tracker](https://github.com/michaelsakharov/prowl/issues) to help us squash those pesky bugs.
Check our [Contributing guide](//CONTRIBUTING.md) to see how to be part of this team.

### Feature Requests 💡

Have a fantastic idea for a new feature? Share it with us! Open a [feature request](https://github.com/michaelsakharov/prowl/issues) and let's discuss how we can make Prowl even better.

<!--Need a Documentation Site, Probably Hugo?-->
<!--
### Documentation 📚

Documentation is crucial, and we could use your help to make ours more comprehensive and user-friendly. Contribute to the [docs](linktodocshere) and help fellow developers get the most out of Prowl.
-->

### Spread the Word 📣

Not a developer? No problem! You can still contribute by spreading the word. Share your experiences with Prowl on social media, blogs, or forums. Let the world know about the exciting things happening here.

## Contributor Recognition 🏆

We're not just asking for contributors; we're asking for partners in this journey. Every small contribution is a step toward realizing Prowl.

All contributors will be acknowledged in our [Acknowledgments](#acknowledgments) section.

**Thank you for considering contributing to Prowl. Together, let's build something amazing!**
### [<p align="right">Join our Discord server! 🎉</p>](https://discord.gg/BqnJ9Rn4sn)
<p align="right">(<a href="#readme-top">back to top</a>)</p>

# <p align="center">🙏 Acknowledgments 🙏</p>
# <span align="center">🙏 Acknowledgments 🙏</span>

- Hat tip to the creators of [Raylib](https://github.com/raysan5/raylib), While we are no longer based upon it, it has shaved off hours of development time getting the engine to a usable state.
- Some ideas/code have been taken from the amazing 2D Engine [Duality](https://github.com/AdamsLair/duality).
<p align="right">(<a href="#readme-top">back to top</a>)</p>

## Contributors 🌟

Expand All @@ -230,21 +197,34 @@ All contributors will be acknowledged in our [Acknowledgments](#acknowledgments)
- [JaggerJo](https://github.com/JaggerJo)
- [Jihad Khawaja](https://github.com/jihadkhawaja)
- [Jasper Honkasalo](https://github.com/japsuu)
- [Trevias Xk (treviasxk)](https://github.com/treviasxk)

# License 📜
- [Kai Angulo (k0t)](https://github.com/sinnwrig)
- [Bruno Massa](https://github.com/brmassa)

Distributed under the MIT License. See `LICENSE.txt` for more information.
<p align="right">(<a href="#readme-top">back to top</a>)</p>

# Dependencies 📦
## Dependencies 📦

### Runtime

- [Prowl.DotRecast](https://github.com/ProwlEngine/Prowl.DotRecast)
- [Prowl.Veldrid](https://github.com/ProwlEngine/Prowl.Veldrid)
- [Silk.NET](https://github.com/dotnet/Silk.NET)
- [Bepu Physics](https://github.com/bepu/bepuphysics2)

### Editor

- [Assimp](https://github.com/assimp/assimp) via [Assimp.NET](https://bitbucket.org/Starnick/assimpnet)
- [ImageMagick](http://www.imagemagick.org/) via [Magick.NET](https://github.com/dlemstra/Magick.NET)

<p align="right">(<a href="#readme-top">back to top</a>)</p>

# <span align="center">📜 License 📜</span>

Distributed under the MIT License. See [LICENSE](//LICENSE) for more information.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

---

### [Join our Discord server! 🎉](https://discord.gg/BqnJ9Rn4sn)
[![Discord](https://img.shields.io/discord/1151582593519722668?logo=discord
)](https://discord.gg/BqnJ9Rn4sn)

Loading