GetNotes Tools
bevyengine/bevy
Tool นี้คืออะไร
Bevy เป็นเอนจินเกมโอเพนซอร์สฟรีที่สร้างด้วย Rust โดยใช้สถาปัตยกรรมที่ขับเคลื่อนด้วยข้อมูล (data-driven) และ Entity Component System (ECS) เหมาะสำหรับนักพัฒนาที่ต้องการสร้างเกม 2D และ 3D ที่มีประสิทธิภาพสูงและปรับแต่งได้ง่าย
ข้อมูลโปรเจกต์
ดาว
47.4K
Forks
4.7K
License
Apache-2.0
อัปเดต GitHub ล่าสุด
29 ก.ค. 2569
เพิ่มใน GetNotes
30 ก.ค. 2569
Repository
bevyengine/bevy
เหมาะกับอาชีพ
Ecosystem
Rust
แปลและเรียบเรียงโดย AI
เนื้อหาฉบับภาษาไทย
ใช้อ่านเพื่อทำความเข้าใจเบื้องต้น โปรดตรวจสอบรายละเอียดสำคัญกับเอกสารต้นฉบับด้านล่าง
Bevy คืออะไร?
Bevy คือเอนจินเกมที่เรียบง่ายและขับเคลื่อนด้วยข้อมูล สร้างด้วย Rust เป็นซอฟต์แวร์ฟรีและโอเพนซอร์สตลอดไป!
คำเตือน
Bevy ยังอยู่ในช่วงเริ่มต้นของการพัฒนา คุณสมบัติที่สำคัญบางอย่างยังขาดหายไป เอกสารประกอบยังมีไม่มากนัก Bevy เวอร์ชันใหม่ที่มีการเปลี่ยนแปลง API ที่ไม่เข้ากันกับเวอร์ชันก่อนหน้าจะถูกปล่อยออกมา ประมาณทุก 3 เดือน เรามี คู่มือการย้ายข้อมูล ให้ แต่เราไม่สามารถรับประกันได้ว่าการย้ายข้อมูลจะง่ายเสมอไป โปรดใช้งานก็ต่อเมื่อคุณยินดีที่จะทำงานในสภาพแวดล้อมเช่นนี้
MSRV: Bevy อาศัยการปรับปรุงในภาษาและคอมไพเลอร์ของ Rust เป็นอย่างมาก ดังนั้น Minimum Supported Rust Version (MSRV) โดยทั่วไปจะใกล้เคียงกับ "เวอร์ชันเสถียรล่าสุด" ของ Rust
เป้าหมายการออกแบบ
- ความสามารถ: นำเสนอชุดคุณสมบัติ 2D และ 3D ที่สมบูรณ์
- ความเรียบง่าย: ง่ายสำหรับมือใหม่ในการเริ่มต้น แต่ยืดหยุ่นไม่จำกัดสำหรับผู้ใช้ขั้นสูง
- เน้นข้อมูล: สถาปัตยกรรมที่เน้นข้อมูลโดยใช้กระบวนทัศน์ Entity Component System
- โมดูลาร์: ใช้เฉพาะสิ่งที่คุณต้องการ เปลี่ยนสิ่งที่คุณไม่ชอบ
- ความเร็ว: ตรรกะของแอปควรทำงานได้อย่างรวดเร็ว และเมื่อเป็นไปได้ ควรทำงานแบบขนาน
- ประสิทธิภาพ: การเปลี่ยนแปลงควรคอมไพล์ได้อย่างรวดเร็ว ... การรอคอยไม่ใช่เรื่องสนุก
เกี่ยวกับ
- คุณสมบัติ: ภาพรวมโดยย่อของคุณสมบัติของ Bevy
- ข่าวสาร: บล็อกการพัฒนาที่ครอบคลุมความคืบหน้า แผนงาน และคุณสมบัติใหม่ที่น่าสนใจของเรา
เอกสารประกอบ
- คู่มือเริ่มต้นใช้งานฉบับย่อ: คู่มือเริ่มต้นใช้งานฉบับย่ออย่างเป็นทางการของ Bevy เป็นจุดเริ่มต้นที่ดีที่สุดในการเรียนรู้ Bevy
- เอกสาร API ของ Bevy Rust: เอกสาร API ของ Bevy Rust ซึ่งสร้างขึ้นโดยอัตโนมัติจาก doc comments ใน repository นี้
- ตัวอย่างอย่างเป็นทางการ: ตัวอย่างที่สามารถรันได้ของ Bevy ซึ่งยอดเยี่ยมสำหรับการเจาะลึกแนวคิดเฉพาะ
- แหล่งข้อมูลการเรียนรู้ที่สร้างโดยชุมชน: บทเรียน เอกสารประกอบ และตัวอย่างเพิ่มเติมที่สร้างโดยชุมชน Bevy
ชุมชน
ก่อนที่จะมีส่วนร่วมหรือเข้าร่วมการสนทนากับชุมชน คุณควรอ่านและทำความเข้าใจ หลักปฏิบัติ ของเรา
- Discord: เซิร์ฟเวอร์ Discord อย่างเป็นทางการของ Bevy
- Reddit: ซับเรดดิตอย่างเป็นทางการของ Bevy
- GitHub Discussions: สถานที่ที่ดีที่สุดสำหรับคำถามเกี่ยวกับ Bevy ซึ่งจะได้รับคำตอบที่นี่!
- Bevy Assets: แหล่งรวมโปรเจกต์ เครื่องมือ ปลั๊กอิน และสื่อการเรียนรู้ที่ยอดเยี่ยมของ Bevy
การมีส่วนร่วม
หากคุณต้องการช่วยสร้าง Bevy โปรดดูที่ คู่มือสำหรับผู้มีส่วนร่วม สำหรับปัญหาที่ไม่ซับซ้อน คุณสามารถ เปิด issue หรือ PR และแก้ไขด้วยตัวเองได้เลย!
สำหรับการตัดสินใจด้านสถาปัตยกรรมที่ซับซ้อนมากขึ้นและการทดลองทางวิทยาศาสตร์ที่บ้าคลั่ง โปรดเปิด GitHub Discussion เพื่อให้เราสามารถระดมสมองร่วมกันได้อย่างมีประสิทธิภาพ!
การเริ่มต้นใช้งาน
เราขอแนะนำให้ดู คู่มือเริ่มต้นใช้งานฉบับย่อ สำหรับบทนำสั้นๆ
ทำตาม คู่มือการตั้งค่า เพื่อให้แน่ใจว่าสภาพแวดล้อมการพัฒนาของคุณได้รับการตั้งค่าอย่างถูกต้อง เมื่อตั้งค่าเสร็จแล้ว คุณสามารถลองใช้ ตัวอย่าง ได้อย่างรวดเร็วโดยการโคลน repository นี้และรันคำสั่งต่อไปนี้:
# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakoutหากต้องการวาดหน้าต่างที่มีฟังก์ชันมาตรฐานเปิดใช้งาน ให้ใช้:
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.run();
}การคอมไพล์ที่รวดเร็ว
Bevy สามารถสร้างได้ดีโดยใช้การกำหนดค่าเริ่มต้นบน Rust เวอร์ชันเสถียร อย่างไรก็ตาม สำหรับการคอมไพล์แบบวนซ้ำที่รวดเร็วอย่างแท้จริง คุณควรเปิดใช้งานการตั้งค่า "fast compiles" โดย ทำตามคำแนะนำที่นี่
คุณสมบัติ Bevy Cargo
รายการ นี้สรุปคุณสมบัติ cargo ต่างๆ ที่ Bevy รองรับ สิ่งเหล่านี้ช่วยให้คุณสามารถปรับแต่งชุดคุณสมบัติของ Bevy สำหรับกรณีการใช้งานของคุณได้
ขอขอบคุณ
Bevy เป็นผลมาจากความพยายามอย่างหนักของหลายคน ขอขอบคุณอย่างยิ่งสำหรับผู้มีส่วนร่วม Bevy ทุกคน โปรเจกต์โอเพนซอร์สมากมายที่มาก่อนเรา ระบบนิเวศการพัฒนาเกมของ Rust และไลบรารีมากมายที่เราสร้างขึ้น
ขอขอบคุณอย่างยิ่งสำหรับ ผู้สนับสนุน ที่ใจดีของ Bevy Bevy จะเป็นซอฟต์แวร์ฟรีและโอเพนซอร์สเสมอไป แต่การสร้างมันไม่ได้ฟรี โปรดพิจารณา สนับสนุนงานของเรา หากคุณชอบสิ่งที่เรากำลังสร้าง
This project is tested with BrowserStack.
ใบอนุญาต
Bevy เป็นซอฟต์แวร์ฟรี โอเพนซอร์ส และได้รับอนุญาตแบบผ่อนปรน! ยกเว้นที่ระบุไว้ (ด้านล่างและ/หรือในไฟล์แต่ละไฟล์) โค้ดทั้งหมดใน repository นี้ได้รับอนุญาตแบบ dual-licensed ภายใต้:
- MIT License (LICENSE-MIT หรือ http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE หรือ http://www.apache.org/licenses/LICENSE-2.0)
ตามที่คุณเลือก ซึ่งหมายความว่าคุณสามารถเลือกใบอนุญาตที่คุณต้องการได้! แนวทางการอนุญาตแบบ dual-licensing นี้เป็นมาตรฐานโดยพฤตินัยในระบบนิเวศของ Rust และมี เหตุผลที่ดีมาก ในการรวมทั้งสองใบอนุญาต
โค้ดบางส่วนของเอนจินมีประกาศลิขสิทธิ์และเงื่อนไขใบอนุญาตเพิ่มเติมเนื่องจากมีที่มาจากภายนอก โดยทั่วไปแล้วสิ่งเหล่านี้จะคล้ายกับ BSD แต่รายละเอียดที่แน่นอนจะแตกต่างกันไปตาม crate: หาก README ของ crate มีส่วนหัว 'License' (หรือคล้ายกัน) ประกาศลิขสิทธิ์และเงื่อนไขใบอนุญาตเพิ่มเติมที่เกี่ยวข้องกับ crate นั้นจะถูกระบุไว้ ข้อกำหนดการอนุญาตข้างต้นยังคงใช้กับการมีส่วนร่วมใน crate เหล่านั้น และส่วนต่างๆ ของ crate เหล่านั้นจะมีเงื่อนไขใบอนุญาตเหล่านั้น ฟิลด์ license ของแต่ละ crate จะสะท้อนสิ่งนี้ด้วย
assets ที่รวมอยู่ใน repository นี้ (สำหรับ ตัวอย่าง ของเรา) โดยทั่วไปจะอยู่ภายใต้ใบอนุญาตโอเพนซอร์สที่แตกต่างกัน สิ่งเหล่านี้จะไม่รวมอยู่ในเกมของคุณ (เว้นแต่คุณจะคัดลอกไป) และไม่ได้เผยแพร่ใน bevy crates ที่ตีพิมพ์ ดู CREDITS.md สำหรับรายละเอียดของใบอนุญาตของไฟล์เหล่านั้น
การมีส่วนร่วมของคุณ
เว้นแต่คุณจะระบุไว้อย่างชัดเจนเป็นอย่างอื่น การมีส่วนร่วมใดๆ ที่คุณส่งโดยเจตนาเพื่อรวมอยู่ในงาน ตามที่กำหนดไว้ในใบอนุญาต Apache-2.0 จะได้รับอนุญาตแบบ dual-licensed ตามที่กล่าวมาข้างต้น โดยไม่มีข้อกำหนดหรือเงื่อนไขเพิ่มเติมใดๆ
เอกสารโปรเจกต์
อ่านเอกสารต้นฉบับ
README วิธีติดตั้ง วิธีใช้งาน และข้อกำหนดจาก repository ต้นฉบับ
What is Bevy?
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
WARNING
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. We provide migration guides, but we can't guarantee migrations will always be easy. Use only if you are willing to work in this environment.
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: A quick overview of Bevy's features.
- News: A development blog that covers our progress, plans and shiny new features.
Docs
- Quick Start Guide: Bevy's official Quick Start Guide. The best place to start learning Bevy.
- Bevy Rust API Docs: Bevy's Rust API docs, which are automatically generated from the doc comments in this repo.
- Official Examples: Bevy's dedicated, runnable examples, which are great for digging into specific concepts.
- Community-Made Learning Resources: 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.
- Discord: Bevy's official discord server.
- Reddit: Bevy's official subreddit.
- GitHub Discussions: The best place for questions about Bevy, answered right here!
- Bevy 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. For simple problems, feel free to open an issue or PR and tackle it yourself!
For more complex architecture decisions and experimental mad science, please open a GitHub Discussion so we can brainstorm together effectively!
Getting Started
We recommend checking out the Quick Start Guide for a brief introduction.
Follow the Setup guide to ensure your development environment is set up correctly. Once set up, you can quickly try out the examples by cloning this repo and running the following commands:
# Switch to the correct version (latest release, default is main development branch)
git checkout latest
# Runs the "breakout" example
cargo run --example breakoutTo draw a window with standard functionality enabled, use:
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.
Bevy Cargo Features
This list outlines the different cargo features supported by Bevy. These allow you to customize the Bevy feature set for your use-case.
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, and the many libraries we build on.
A huge thanks to Bevy's generous sponsors. Bevy will always be free and open source, but it isn't free to make. Please consider sponsoring our work 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 or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or 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 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 field of each crate will also reflect this.
The assets included in this repository (for our examples) 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 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.
