FranceNoiseByNorthwest/term-asteroids
An Asteroids-like game, running in a terminal, written in PHP
🚀 TermAsteroids: Trò chơi bắn thiên thạch trong terminal bằng PHP
Một phiên bản Asteroids-like chạy hoàn toàn trong terminal, được cài đặt và tối ưu bằng PHP.
TermAsteroids là một trò chơi bắn thiên thạch kiểu ngang (horizontal scrolling) lấy cảm hứng từ Asteroids, nhưng nổi bật với việc chạy trên terminal và được viết hoàn toàn bằng PHP. Dự án không chỉ mang lại trải nghiệm chơi game cũng mà còn là minh chứng thú vị cho hiệu suất của PHP khi kết hợp JIT và FFI.
✨ Điểm nổi bật
- Hai backend độ họa: Hỗ trợ đổi backend giữa PHP và C (qua FFI) tại thời gian chạy.
- Tối ưu hiệu năng: Sử dụng PHP JIT để tăng tốc backend PHP gấp ~3 lần.
- FFI để tối ưu vòng lặp nóng: Cài đặt lại vòng lặp vẽ đồ họa bằng C qua FFI, đạt 9+ MPixel/s.
- Đồ họa 2D retro: Độ phân giải 300x144 true color, hỗ trợ trong suốt, biến dạng, hiệu ứng độ bền.
- Hiệu ứng sinh học: Sinh bitmap và hoạt ảnh bằng Perlin noise, quay sprite trước.
- Hiệu suất thích ứng: Giảm đối tượng không cần thiết để duy trì 45 FPS ổn định.
- Dễ triển khai: Chạy qua Docker, tự động chọn terminal phù hợp (kitty, xterm, Alacritty...).
💡 Vì sao đáng chú ý
TermAsteroids không chỉ là một trò chơi nhỏ trên terminal — nó khẳng định PHP không chỉ dùng cho web mà còn mạnh mẽ trong lĩnh vực đò nổi CPU và đồ họa thời gian thực. Sự kết hợp giữa JIT, FFI và quản lý bộ thu gom rác thông minh giúp đạt hiệu năng gần như native. Đây là lựa chọn hoàn hảo cho những ai muốn khám phá giới hạn của PHP hoặc tạo ra trải nghiệm game độc đáo trong môi trường terminal.
#PHP #TerminalGame #Asteroids #FFI #JIT #OpenSource #TiniX
Similar Projects
Discover other similar projects and AI models.
🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.
Multiplayer top-down shooter made from scratch in C++. Web version: https://play.hypersomnia.io Made in 🇵🇱
A CLI code-typing game that turns your source code into typing challenges
Terminal-based but modern tetromino-stacking game that is customizable and cross-platform