Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Sản phẩm

The Space Project: Mô phỏng kinh tế vũ trụ tự vận hành bằng Rust và Bevy

(giờ Việt Nam)

Tóm tắt AI

The Space Project là trình mô phỏng kinh tế vũ trụ mã nguồn mở, nơi hàng trăm tàu vũ trụ tự hành thực hiện giao dịch, khai thác và sinh tồn trong một hệ mặt trời sống động. Mọi logic được tối ưu hóa trong một tệp nhị phân duy nhất mà không cần phụ thuộc vào runtime.

Bản dịch AI

GitHub - Kalcode/spaceprojectsim

🚀 The Space Project

Một trình mô phỏng nền kinh tế không gian tự vận hành, được viết bằng Rust + Bevy.

Hàng trăm con tàu tự hành thực hiện giao dịch, khai thác tài nguyên, vận chuyển hàng hóa, nhận hợp đồng, cạn kiệt nhiên liệu và đôi khi phá sản trong một nền kinh tế năng động giữa các vì sao — thị trường tự tìm ra mức giá, các phe phái thu thuế và trợ cấp, dân cư di cư khi họ không hài lòng, và các trạm bỏ hoang dần mục nát. Tất cả chạy trong một tệp nhị phân (binary) duy nhất mà không cần phụ thuộc vào runtime bên ngoài.

License: MITRustBevy 0.18PlatformsSingle binary

Đây là gì?

The Space Project là một mô phỏng kinh tế dựa trên tác nhân (agent-driven) được gói gọn trong một client 3D native. Không có cốt truyện được lập trình sẵn và không có mục tiêu cho người chơi — bạn chỉ là một người quan sát (và là quản trị viên ở chế độ god-mode) theo dõi nền kinh tế tự vận hành.

Mỗi con tàu là một tác nhân tự hành với số dư tín dụng, phi hành đoàn, nhiên liệu, kho hàng và một bộ lập kế hoạch GOAP để quyết định việc cần làm tiếp theo: theo đuổi tuyến đường thương mại có biên lợi nhuận cao nhất, chấp nhận hợp đồng vận chuyển, tìm kiếm xưởng đóng tàu để nâng cấp, hoặc cập bến để phi hành đoàn nghỉ ngơi trước khi tinh thần suy sụp. Các cơ sở thực hiện quy trình sản xuất, xuống cấp và tự sửa chữa, thăng cấp, và bị bỏ hoang khi phá sản. Các phe phái thu thuế và đưa ra các khoản trợ cấp. Dân cư tiêu thụ thực phẩm, tạo ra lao động, và đóng gói rời đi khi tâm lý cộng đồng chạm đáy. Thị trường định giá mọi thứ dựa trên mô hình bao phủ với các hệ số nhân về mức độ khan hiếm — không có mức giá cố định ở bất kỳ đâu.

Dự án bắt đầu như một bản mẫu Elixir/Phoenix và được viết lại bằng Rust vì bộ lập lịch BEAM gặp khó khăn trên các máy tính chơi game chạy Windows. Engine (sim_core) là Rust thuần túy, đồng bộ và không chứa IO; client Bevy nhúng trực tiếp nó như một thư viện, vì vậy mô phỏng và trình kết xuất (renderer) chia sẻ cùng một thế giới ECS mà không cần bất kỳ sự chuyển đổi dữ liệu (marshalling) nào giữa chúng.

Quy mô hiện tại: ~485 tác nhân đang hoạt động (282 tàu · 93 cơ sở · 27 quần thể dân cư · 8 phe phái · 60 thiên thể), với thời gian xử lý mỗi tick (p50) ≈ 10–20 ms trong ngân sách 125 ms. Kiến trúc được xây dựng để hướng tới quy mô 100k+ tác nhân.

🌌 Đôi lời về định hướng tương lai

Không đi đến đâu cả, theo đúng nghĩa đen — và đó cũng chính là mục đích của dự án.

Dự án này bắt đầu như một ý tưởng thú vị: một nền kinh tế không gian được xây dựng từ đầu, thực sự tự mô phỏng thay vì làm giả. Nó đã phát triển vượt xa mong đợi của tôi, chủ yếu là trong những phiên làm việc đêm khuya cùng với Claude. Nhưng tôi không giả vờ rằng đây là một trò chơi có lộ trình phát triển, và tôi cũng không chủ động thúc đẩy nó trở thành một sản phẩm "có thể phát hành".

Tôi phát hành nó theo giấy phép MIT vì nền tảng của nó thực sự tốt và tôi muốn ai đó làm điều gì đó với nó thay vì để nó nằm trong một kho lưu trữ cá nhân. Vì vậy: hãy fork nó, thay đổi cấu trúc, đổi tên, gắn thêm game vào, hoặc tách engine kinh tế ra và sử dụng nó ở một nơi hoàn toàn khác. Hãy xây dựng thứ mà tôi đã không làm.

Các PR và issue đều được hoan nghênh và tôi sẽ xem xét chúng, nhưng tôi không thể hứa hẹn về tiến độ. Nếu bạn muốn đưa dự án này đi xa hơn, hãy xem CONTRIBUTING.md — có một phần "các hướng bạn có thể phát triển" được viết dành riêng cho bạn.

Ảnh chụp màn hình

Những gì dự án mô phỏng

Để tìm hiểu sâu hơn — thứ tự các giai đoạn tick, ngăn xếp AI, vòng lặp phản hồi kinh tế, quyền sở hữu runtime — hãy xem docs/ARCHITECTURE.md, nơi có các sơ đồ mermaid cho tất cả các thành phần đó.

Bắt đầu nhanh

Bạn cần một bộ công cụ Rust (bản stable). Sau đó:

Lệnh đó sẽ khởi động ứng dụng Bevy vào menu chính. Start sẽ mở ra một vũ trụ mới (đặt tên cho nó, hoặc lấy tên mặc định); Load Game sẽ liệt kê mọi tệp lưu trong thư mục của tệp nhị phân. Các tệp lưu nằm cạnh tệp nhị phân dưới dạng <tên-vũ-trụ>.db — mặc định là sim.db.

Các điểm truy cập khác:

Một tệp nhị phân, một tiến trình. client_bevy là toàn bộ ứng dụng — mô phỏng chạy ngay trong tiến trình đó. Chế độ Headless sẽ khởi chạy máy chủ HTTP/WebSocket (từ thư viện sim_server) để sử dụng cho kịch bản và CI; không có tệp nhị phân máy chủ riêng biệt nào cần chạy.

Điều khiển

Mọi bảng điều khiển đều đọc thế giới ECS trực tiếp — trình kiểm tra (inspector) thực chất là một trình gỡ lỗi thời gian thực với quyền truy cập đầy đủ vào các thành phần. Nhấp vào một con tàu để xem số dư, phi hành đoàn, nhiên liệu, mục tiêu hiện tại, trang bị, bộ nhớ lộ trình và vài lệnh AI gần nhất của nó.

Kiến trúc

Năm crate trong một Cargo workspace:

Ba quy tắc giúp giữ cho hệ thống vận hành minh bạch:

Thứ tự đầy đủ của các giai đoạn tick, mô hình sở hữu và các vòng lặp phản hồi được trình bày bằng sơ đồ trong docs/ARCHITECTURE.md.

Client Godot ban đầu vẫn tồn tại trong lịch sử như một tài liệu tham khảo về tính tương đương, nhưng nó không còn là giao diện người dùng nữa — việc chuyển sang client Bevy nhúng đã loại bỏ hoàn toàn ranh giới socket, và mọi tính năng hiện nay đều được đưa vào client_bevy.

Xây dựng & đóng gói

Makefile bao bọc các lệnh cargo + rustup + codesign + đóng gói:

Phiên bản workspace trong tệp Cargo.toml gốc là nguồn sự thật duy nhất — tệp nhị phân đọc nó thông qua env!("CARGO_PKG_VERSION") và Makefile cũng tìm kiếm cùng trường đó cho Info.plist và tên tệp lưu trữ, vì vậy các bản build đã đóng gói sẽ không bao giờ bị lệch phiên bản.

Ngăn xếp công nghệ

Đóng góp

Các đóng góp luôn được hoan nghênh — hãy xem CONTRIBUTING.md để biết cách thiết lập môi trường phát triển, các quy ước giúp giữ cho codebase sạch sẽ và danh sách các hướng đi cụ thể nếu bạn muốn phát triển dự án này một cách nghiêm túc.

RustBevyMô phỏngGameDevMã nguồn mở
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.