Kalera News xin giới thiệu một dự án kỹ thuật độc đáo và đầy bất ngờ: avoxelgame. Tưởng chừng chỉ là một engine game voxel 3D đơn thuần (tương tự Minecraft), nhưng điều khiến avoxelgame nổi bật chính là việc nó được xây dựng gần như hoàn toàn bằng Dyalog APL – một ngôn ngữ lập trình thường được dùng cho toán học và phân tích dữ liệu, chứ không phải để tạo game đồ họa thời gian thực!
💡 Câu Chuyện Đằng Sau avoxelgame
Cha đẻ của avoxelgame, namgyaaal, chia sẻ động lực ban đầu chỉ là một "cuộc cá cược với bản thân rằng ký hiệu APL sẽ cung cấp một cách dễ dàng hơn để tạo ra một trò chơi voxel." Nghe có vẻ điên rồ, phải không?
APL (A Programming Language) ra đời từ những năm 1960, nổi tiếng với cú pháp biểu tượng cực kỳ cô đọng, sử dụng một bộ ký tự đặc biệt như ⍴, ⍳, ⍎, ⍕, ⌽. Việc viết một ứng dụng đồ họa 3D tương tác cao, thời gian thực như game voxel bằng một ngôn ngữ "kén chọn" như vậy thực sự là một kỳ tích kỹ thuật táo bạo và gần như "phi chính thống". Nó thách thức mọi định kiến về giới hạn của APL.
🛠️ Kiến Trúc Kỹ Thuật & Ngăn Xếp
Dự án này được cấp phép MIT và có cấu trúc công nghệ như sau: * Kho lưu trữ: namgyaaal/avoxelgame * Ngôn ngữ lập trình: * APL: 83.3% (Logic game cốt lõi, tạo chunk, tính toán tọa độ thế giới và thao tác mảng) * C: 11.4% (Liên kết cấp thấp, quản lý bộ nhớ và các hệ thống quan trọng về hiệu suất) * GLSL: 2.4% (Shader đồ họa tùy chỉnh để kết xuất các khối voxel) * Shell: 1.7% * CMake: 1.2%
🎮 Tính Năng & Cơ Chế Cốt Lõi
avoxelgame không chỉ là một dự án thử nghiệm khô khan mà còn có những tính năng tương tác cơ bản của một game voxel: * Engine Voxel Tạo Sinh (Procedural Voxel Engine): Sử dụng các mảng đa chiều trong Dyalog APL để biểu diễn, thao tác và tạo ra không gian voxel 3D. * Tích Hợp SDL3 Hiện Đại: Tận dụng API GPU SDL3 mới, hiệu quả cao để kết xuất 3D tăng tốc phần cứng. * Điều Khiển Tương Tác: * W-A-S-D: Di chuyển xung quanh thế giới. * Space: Nhảy. * Mouse: Di chuyển camera (nhìn xung quanh). * 1-5: Chọn các loại khối khác nhau để đặt. * F: Chế độ "noclip" nhanh. * I: Bật/tắt lớp phủ thông tin kết xuất. * L: Khóa/mở khóa con trỏ chuột trong cửa sổ game. * Q: Thoát ứng dụng.
⚙️ Yêu Cầu Hệ Thống & Điều Kiện Tiên Quyết
Để chạy được "kỳ quan" này, bạn cần chuẩn bị: * Dyalog APL 20.0 (Trình thông dịch cho mã APL) * Trình biên dịch C & CMake (Để xây dựng các helper cấp thấp) * API Đồ Họa: Vulkan, DirectX12, hoặc Metal (Yêu cầu bởi hệ thống con GPU SDL3 hiện đại) * Các Thư Viện Phụ Thuộc: sdl3, sdl3_ttf, và sdl3_image (Có sẵn trên macOS qua Homebrew)
⚠️ Hạn Chế & Thách Thức Đã Biết
Không có dự án thử nghiệm nào là hoàn hảo, và avoxelgame cũng vậy. Đội ngũ Kalera News ghi nhận một số điểm cần lưu ý: * Hiệu suất trên Windows: Đáng tiếc, có sự suy giảm hiệu suất đáng kể trên nền tảng Windows, và vấn đề này đang được tích cực gỡ lỗi. * Hỗ trợ DirectX 12: Backend đồ họa DX12 hiện tại đang bị lỗi và không được hỗ trợ trên Windows. * Rò Rỉ Bộ Nhớ / Lỗi Phiên Làm Việc: Người dùng không thể khởi động lại game trong cùng một phiên Dyalog. Việc thử làm như vậy sẽ gây ra lỗi syserror 999, cho thấy những nút thắt cổ chai về quản lý bộ nhớ chưa được giải quyết.
Dù còn nhiều hạn chế, avoxelgame vẫn là một minh chứng ấn tượng cho sự sáng tạo không giới hạn trong lập trình. Nó không chỉ là một game, mà còn là một tuyên bố mạnh mẽ về khả năng của những công cụ "phi truyền thống" khi được đặt vào tay những nhà phát triển dám nghĩ, dám làm. Liệu bạn có dám thử sức với engine game "dị thường" này? 🤔