🎮 Rust กับการพัฒนาเกม
Rust ไม่ได้เป็นเพียงแค่ภาษาสำหรับ system programming หรือ web backend เท่านั้น — แต่ยังถูกใช้ในโลกของเกม 2D และ 3D ได้อย่างมีประสิทธิภาพ โดยเฉพาะเมื่อใช้ร่วมกับ Bevy และ Macroquad ซึ่งเป็น game engine ที่เขียนด้วย Rust ทั้งคู่!
🧩 Bevy vs Macroquad
- Bevy: ใช้ ECS (Entity Component System) แบบ modern, เหมาะกับโครงสร้างที่ใหญ่และ reusable
- Macroquad: API ง่าย เล่นได้เร็ว เหมาะสำหรับ rapid prototyping และเกมเล็ก
🚀 เริ่มต้นด้วย Bevy
ติดตั้ง dependency:
[dependencies]
bevy = “0.13”
โค้ดตัวอย่างเกม Hello World:
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_startup_system(hello_world)
.run();
}
fn hello_world() {
println!("Hello, Bevy World!");
}

🟦 วาด Sprite บนหน้าจอ
fn setup(mut commands: Commands, asset_server: Res<AssetServer>, mut materials: ResMut<Assets<ColorMaterial>>) {
commands.spawn(Camera2dBundle::default());
commands.spawn(SpriteBundle {
texture: asset_server.load("textures/player.png"),
..default()
});
}
⚡ Macroquad แบบง่ายสุด ๆ
ติดตั้งด้วย:
[dependencies]
macroquad = “0.4”
ตัวอย่างเกมที่มี sprite เคลื่อนที่:
use macroquad::prelude::*;
#[macroquad::main("Simple Game")]
async fn main() {
let texture = load_texture("player.png").await.unwrap();
loop {
clear_background(BLACK);
draw_texture(texture, 100.0, 100.0, WHITE);
next_frame().await;
}
}

🎯 เปรียบเทียบสั้น ๆ
| คุณสมบัติ | Bevy | Macroquad |
|---|---|---|
| ระบบ ECS | ✅ ใช้ ECS เต็มรูปแบบ | ❌ ไม่มี ECS |
| ขนาด Engine | ใหญ่ | เล็ก |
| ความง่ายในการเริ่ม | ปานกลาง | ง่ายมาก |
| รองรับ Web (WASM) | บางส่วน | ✅ รองรับดี |
📚 แหล่งเรียนรู้
- https://bevyengine.org
- https://github.com/not-fl3/macroquad
- Are We Game Yet? — รวม game engine และ tools ที่เขียนด้วย Rust
💬 สรุป
ถ้าคุณกำลังมองหาวิธีทำเกม 2D ด้วย Rust แบบเร็ว ๆ สนุก ๆ เริ่มจาก Macroquad ก็ได้ แต่ถ้าคุณวางแผนทำเกมแบบโครงสร้างชัดเจน ลองใช้ Bevy จะได้เรียนรู้ ECS ที่ทันสมัยด้วยเช่นกัน Rust ทำให้การพัฒนาเกมกลายเป็นเรื่องสนุก ปลอดภัย และเร็วปานสายฟ้า ⚡
บทความนี้ใช้เวลาอ่านประมาณ 20 นาที โดยทีมงาน poolsawat.com