diff --git a/CREDITS.md b/CREDITS.md deleted file mode 100644 index c0375bd38edac..0000000000000 --- a/CREDITS.md +++ /dev/null @@ -1,38 +0,0 @@ -# Bevy Credits - -## Adapted Code - -* hecs -* legion_transform -* wgpu-rs examples -* yaks: ArchetypeSet, borrowed some ideas from their scheduler implementation - -## Inspiration - -* game engines: amethyst, coffee -* ecs: legion, shipyard, yaks - -## Assets - -* Generic RPG Pack (CC0 license) by [Bakudas](https://twitter.com/bakudas) and [Gabe Fern](https://twitter.com/_Gabrielfer) -* Environment maps (`.hdr` files) from [HDRIHaven](https://hdrihaven.com) (CC0 license) -* Alien from [Kenney's Space Kit](https://www.kenney.nl/assets/space-kit) (CC0 1.0 Universal) -* Cake from [Kenney's Food Kit](https://www.kenney.nl/assets/food-kit) (CC0 1.0 Universal) -* Ground tile from [Kenney's Tower Defense Kit](https://www.kenney.nl/assets/tower-defense-kit) (CC0 1.0 Universal) -* Game icons from [Kenney's Game Icons](https://www.kenney.nl/assets/game-icons) (CC0 1.0 Universal) -* Space ships from [Kenney's Simple Space Kit](https://www.kenney.nl/assets/simple-space) (CC0 1.0 Universal) -* UI borders from [Kenney's Fantasy UI Borders Kit](https://kenney.nl/assets/fantasy-ui-borders) (CC0 1.0 Universal) -* glTF animated fox from [glTF Sample Models][fox] - * Low poly fox [by PixelMannen] (CC0 1.0 Universal) - * Rigging and animation [by @tomkranis on Sketchfab] ([CC-BY 4.0]) -* FiraMono by The Mozilla Foundation and Telefonica S.A (SIL Open Font License, Version 1.1: assets/fonts/FiraMono-LICENSE) -* Barycentric from [mk_bary_gltf](https://github.com/komadori/mk_bary_gltf) (MIT OR Apache-2.0) -* `MorphStressTest.gltf`, [MorphStressTest] ([CC-BY 4.0] by Analytical Graphics, Inc, Model and textures by Ed Mackey) -* Mysterious acoustic guitar music sample from [florianreichelt](https://freesound.org/people/florianreichelt/sounds/412429/) (CC0 license) -* Epic orchestra music sample, modified to loop, from [Migfus20](https://freesound.org/people/Migfus20/sounds/560449/) ([CC BY 4.0 DEED](https://creativecommons.org/licenses/by/4.0/)) - -[MorphStressTest]: https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/MorphStressTest -[fox]: https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/Fox -[by PixelMannen]: https://opengameart.org/content/fox-and-shiba -[by @tomkranis on Sketchfab]: https://sketchfab.com/models/371dea88d7e04a76af5763f2a36866bc -[CC-BY 4.0]: https://creativecommons.org/licenses/by/4.0/ diff --git a/LICENSE-APACHE b/LICENSE-APACHE deleted file mode 100644 index d9a10c0d8e868..0000000000000 --- a/LICENSE-APACHE +++ /dev/null @@ -1,176 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md index e7d4c44a105ac..93a569c357fd3 100644 --- a/README.md +++ b/README.md @@ -1,131 +1,17 @@ -# [![Bevy](https://bevy.org/assets/bevy_logo_light_dark_and_dimmed.svg)](https://bevy.org) +# 🚀 Basilisk Engine -[![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)](https://github.com/bevyengine/bevy#license) -[![Crates.io](https://img.shields.io/crates/v/bevy.svg)](https://crates.io/crates/bevy) -[![Downloads](https://img.shields.io/crates/d/bevy.svg)](https://crates.io/crates/bevy) -[![Docs](https://docs.rs/bevy/badge.svg)](https://docs.rs/bevy/latest/bevy/) -[![Discord](https://img.shields.io/discord/691052431525675048.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/bevy) +**The Next-Gen, High-Performance 3D Game Engine for Python.** Built on top of the ultra-fast **Bevy Engine (Rust)** and designed for **Python 3.13+**. -## What is Bevy? + Why Basilisk Engine? -Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever! +For years, Python game development has been stuck in the 2010s, bottlenecked by the GIL and outdated rendering pipelines. **Basilisk Engine** breaks this limit by bringing the absolute power of Rust's modern rendering and ECS architecture into the hands of Python developers—wrapped in a beautiful, pure Object-Oriented Programming (OOP) API. -## WARNING +Thanks to **Python 3.13+ Free-Threading (No GIL)** and a blazing-fast **Rust backend via PyO3**, you can finally build modern, multi-threaded 3D games using the language you love. -Bevy is still in the early stages of development. Important features are missing. Documentation is sparse. A new version of Bevy containing breaking changes to the API is released [approximately once every 3 months](https://bevy.org/news/bevy-0-6/#the-train-release-schedule). We provide [migration guides](https://bevy.org/learn/migration-guides/), but we can't guarantee migrations will always be easy. Use only if you are willing to work in this environment. +Key Features -**MSRV:** Bevy relies heavily on improvements in the Rust language and compiler. -As a result, the Minimum Supported Rust Version (MSRV) is generally close to "the latest stable release" of Rust. - -## Design Goals - -* **Capable**: Offer a complete 2D and 3D feature set -* **Simple**: Easy for newbies to pick up, but infinitely flexible for power users -* **Data Focused**: Data-oriented architecture using the Entity Component System paradigm -* **Modular**: Use only what you need. Replace what you don't like -* **Fast**: App logic should run quickly, and when possible, in parallel -* **Productive**: Changes should compile quickly ... waiting isn't fun - -## About - -* **[Features](https://bevy.org):** A quick overview of Bevy's features. -* **[News](https://bevy.org/news/)**: A development blog that covers our progress, plans and shiny new features. - -## Docs - -* **[Quick Start Guide](https://bevy.org/learn/quick-start/introduction):** Bevy's official Quick Start Guide. The best place to start learning Bevy. -* **[Bevy Rust API Docs](https://docs.rs/bevy):** Bevy's Rust API docs, which are automatically generated from the doc comments in this repo. -* **[Official Examples](https://github.com/bevyengine/bevy/tree/latest/examples):** Bevy's dedicated, runnable examples, which are great for digging into specific concepts. -* **[Community-Made Learning Resources](https://bevy.org/assets/#learning)**: More tutorials, documentation, and examples made by the Bevy community. - -## Community - -Before contributing or participating in discussions with the community, you should familiarize yourself with our [**Code of Conduct**](./CODE_OF_CONDUCT.md). - -* **[Discord](https://discord.gg/bevy):** Bevy's official discord server. -* **[Reddit](https://reddit.com/r/bevy):** Bevy's official subreddit. -* **[GitHub Discussions](https://github.com/bevyengine/bevy/discussions):** The best place for questions about Bevy, answered right here! -* **[Bevy Assets](https://bevy.org/assets/):** A collection of awesome Bevy projects, tools, plugins and learning materials. - -### Contributing - -If you'd like to help build Bevy, check out the **[Contributor's Guide](https://bevy.org/learn/contribute/introduction)**. -For simple problems, feel free to [open an issue](https://github.com/bevyengine/bevy/issues) or -[PR](https://github.com/bevyengine/bevy/pulls) and tackle it yourself! - -For more complex architecture decisions and experimental mad science, please open an [RFC](https://github.com/bevyengine/rfcs) (Request For Comments) so we can brainstorm together effectively! - -## Getting Started - -We recommend checking out the [Quick Start Guide](https://bevy.org/learn/quick-start/introduction) for a brief introduction. - -Follow the [Setup guide](https://bevy.org/learn/quick-start/getting-started/setup) to ensure your development environment is set up correctly. -Once set up, you can quickly try out the [examples](https://github.com/bevyengine/bevy/tree/latest/examples) by cloning this repo and running the following commands: - -```sh -# Switch to the correct version (latest release, default is main development branch) -git checkout latest -# Runs the "breakout" example -cargo run --example breakout -``` - -To draw a window with standard functionality enabled, use: - -```rust -use bevy::prelude::*; - -fn main() { - App::new() - .add_plugins(DefaultPlugins) - .run(); -} -``` - -### Fast Compiles - -Bevy can be built just fine using default configuration on stable Rust. However for really fast iterative compiles, you should enable the "fast compiles" setup by [following the instructions here](https://bevy.org/learn/quick-start/getting-started/setup). - -## [Bevy Cargo Features][cargo_features] - -This [list][cargo_features] outlines the different cargo features supported by Bevy. These allow you to customize the Bevy feature set for your use-case. - -[cargo_features]: docs/cargo_features.md - -## Thanks - -Bevy is the result of the hard work of many people. A huge thanks to all Bevy contributors, the many open source projects that have come before us, the [Rust gamedev ecosystem](https://arewegameyet.rs/), and the many libraries we build on. - -A huge thanks to Bevy's [generous sponsors](https://bevy.org). Bevy will always be free and open source, but it isn't free to make. Please consider [sponsoring our work](https://bevy.org/donate/) if you like what we're building. - - -This project is tested with BrowserStack. - -## License - -Bevy is free, open source and permissively licensed! -Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either: - -* MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) -* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) - -at your option. -This means you can select the license you prefer! -This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are [very good reasons](https://github.com/bevyengine/bevy/issues/2373) to include both. - -Some of the engine's code carries additional copyright notices and license terms due to their external origins. -These are generally BSD-like, but exact details vary by crate: -If the README of a crate contains a 'License' header (or similar), the additional copyright notices and license terms applicable to that crate will be listed. -The above licensing requirement still applies to contributions to those crates, and sections of those crates will carry those license terms. -The [license](https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields) field of each crate will also reflect this. - -The [assets](assets) included in this repository (for our [examples](./examples/README.md)) typically fall under different open licenses. -These will not be included in your game (unless copied in by you), and they are not distributed in the published bevy crates. -See [CREDITS.md](CREDITS.md) for the details of the licenses of those files. - -### Your contributions - -Unless you explicitly state otherwise, -any contribution intentionally submitted for inclusion in the work by you, -as defined in the Apache-2.0 license, -shall be dual licensed as above, -without any additional terms or conditions. +* **🏎️ Rust-Powered Performance:** The core rendering (Vulkan/DirectX12 via wgpu) and physics run at native Rust speed. +* **🐍 Pure OOP Python API:** No need to headache over complex ECS (Entity Component System) concepts. You write intuitive Python objects, and the engine translates them into optimized data under the hood. +* **🧵 True Multi-Threading:** Designed from day one to exploit Python's new free-threading capabilities. Run phy scripts concurrently without performance drops + +-This project is fully Open Source. If you want to help bridge the gap between Rust's extreme performance and Python's legendary development speed, feel free to fork, open issues, or submit Pull Requests!