RepositoryPHPFRPháp
NoiseByNorthwest

NoiseByNorthwest/term-asteroids

An Asteroids-like game, running in a terminal, written in PHP

56sao
3fork
2issue
0lượt xem

🚀 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

Dự án tương tự

Khám phá các dự án và mô hình AI khác có sự tương đồng.

RepositoryPython
lxgr-linux/pokete

A terminal based Pokemon like game

3.2k
May 22, 2026
RepositoryJavaScript
4ian/GDevelop

🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.

28.1k
Oct 26, 2026
RepositoryC++
endless-sky/endless-sky

Space exploration, trading, and combat game.

7.6k
Oct 20, 2026
RepositoryC++
TeamHypersomnia/Hypersomnia

Multiplayer top-down shooter made from scratch in C++. Web version: https://play.hypersomnia.io Made in 🇵🇱

1.7k
Oct 21, 2026
RepositoryRust
unhappychoice/gittype

A CLI code-typing game that turns your source code into typing challenges

1.6k
Oct 26, 2026
RepositoryRust
Strophox/tetro-tui

Terminal-based but modern tetromino-stacking game that is customizable and cross-platform

764
Aug 13, 2026
RepositoryGo
kurehajime/pong-command

pong is not ping. pong is CLI game.

181
Feb 21, 2026
RepositoryC
naikari/naikari

2-D creative exploration-driven space trading and mercenary sandbox game.

92
Sep 6, 2026
RepositoryJavaScript
Seniru/cli-games

Games in the terminal

83
Dec 12, 2025