Một dự án trò chơi MMO sáng tạo có tên Lyceum vừa xuất hiện, giới thiệu một bộ công nghệ thú vị kết hợp giữa Erlang cho phía máy chủ và Zig cho việc phát triển phía người dùng. Dự án đã tạo ra nhiều cuộc thảo luận sôi nổi trong cộng đồng lập trình viên, đặc biệt là về các lựa chọn công nghệ và cách tiếp cận triển khai.
Kiến trúc kỹ thuật
Trò chơi sử dụng sự kết hợp độc đáo của các công nghệ, với máy chủ được viết bằng Erlang (hỗ trợ bởi PostgreSQL ) và phần client được triển khai bằng Zig , tích hợp Raylib để xử lý đồ họa và Zerl cho việc giao tiếp. Lựa chọn kiến trúc này đã tạo ra những cuộc thảo luận thú vị về ưu điểm và thách thức tiềm ẩn khi sử dụng Erlang để phát triển máy chủ game.
Triển khai máy chủ Erlang
Việc lựa chọn Erlang cho máy chủ được đánh giá là đặc biệt đáng chú ý, với các lập trình viên nhấn mạnh điểm mạnh của nó trong các hệ thống phân tán. Những người duy trì dự án đã báo cáo những trải nghiệm tích cực với việc triển khai Erlang , cho thấy việc phát triển máy chủ dễ dàng hơn dự kiến. Tuy nhiên, một số lo ngại về vấn đề bảo mật đã được nêu ra:
Việc cho phép một client không đáng tin cậy kết nối với node erlang dưới dạng c_node (có vẻ như đây là cách Zerl hoạt động) thường không phải là ý tưởng tốt, vì kết nối theo cách này về cơ bản cho phép client thực thi mã tùy ý trên máy chủ.
Tình trạng phát triển và kế hoạch tương lai
Hiện tại, trò chơi tồn tại dưới dạng một trình mô phỏng đi bộ đa người chơi, nhưng đã có kế hoạch mở rộng. Nhóm phát triển cho biết họ đang tạm dừng khía cạnh 3D để tập trung vào việc triển khai các minigame 2D trong khi vẫn tận dụng cơ sở hạ tầng Zig và Erlang hiện có. Sự thay đổi chiến lược này cho thấy cách tiếp cận lặp đi lặp lại trong phát triển trò chơi trong khi vẫn duy trì nền tảng kỹ thuật cốt lõi.
Môi trường phát triển
Dự án sử dụng Nix để quản lý môi trường phát triển, với devenv cung cấp các công cụ cần thiết và tích hợp PostgreSQL . Thiết lập phát triển hiện đại này đảm bảo tính nhất quán giữa các môi trường phát triển khác nhau và đơn giản hóa quy trình triển khai, mặc dù một số lập trình viên trong cộng đồng đã bày tỏ sự quan tâm đến việc tìm hiểu thêm về chi tiết cụ thể của cấu hình Nix .
Cơ sở hạ tầng dự án
Trò chơi sử dụng nhiều tài nguyên khác nhau, bao gồm texture, mô hình và các yếu tố âm thanh, một số được lấy từ nguồn bên ngoài và một số khác được tạo bởi nhóm phát triển. Việc triển khai được thực hiện thông qua máy chủ NixOS , thể hiện một quy trình phát triển hiện đại hoàn chỉnh từ giai đoạn phát triển đến sản phẩm.
Nguồn tham khảo:
- Nguồn bài viết: Lyceum: An MMO Game Written in Erlang (+ PostgreSQL) + Zig (+ Raylib)
- Nguồn bình luận: Hacker News Discussion