-
coreCore là gì
- coreCore là một phương pháp mang tính thử nghiệm để tạo video game dưới dạng công cụ và engine làm game Action-RPG, cùng với trình biên tập thuộc tính
- Sử dụng một hệ thống component đơn giản, trong đó component là vector clojure có dạng
[keyword value]
- Nhiều entity khác nhau được cấu thành từ các map clojure
- Các side effect trong game được xử lý bằng component như
[:tx/foo param], có cấu trúc tương tự datomic
- Toàn bộ trạng thái game được lưu trong một atom duy nhất tên là
app/state, và các entity cũng tồn tại dưới dạng atom bên trong atom chính
- Toàn bộ nội dung của ứng dụng được lưu trong
resources/properties.edn, được kiểm tra bằng malli-schemas và có thể chỉnh sửa qua GUI
-
Ảnh chụp màn hình
-
Cách bắt đầu phát triển
- Nhập lệnh sau:
- Ứng dụng sẽ khởi chạy và đồng thời thực hiện các tác vụ sau:
- Khởi động máy chủ NREPL
- Khi thoát ứng dụng (ESC ở menu chính),
clojure.tools.namespace sẽ làm mới các tệp đã thay đổi và khởi động lại ứng dụng
- Nếu xảy ra lỗi, không cần khởi động lại JVM; chỉ cần sửa lỗi và gọi
dev-loop/restart!
- Có thể dùng bằng cách gán lệnh sau vào phím F5 trong VIM:
nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
-
Giấy phép mã nguồn
- Được cung cấp theo giấy phép MIT
-
Giấy phép tài sản
- Các tài sản được sử dụng là độc quyền và không phải mã nguồn mở
Tóm tắt của GN⁺
- coreCore là công cụ giúp tạo game Action-RPG dễ dàng hơn bằng cách dùng hệ thống component đơn giản để quản lý trạng thái game
- Toàn bộ trạng thái game được lưu trong một atom duy nhất và có thể chỉnh sửa thuộc tính qua GUI, rất hữu ích cho nhà phát triển
- Được phát hành theo giấy phép MIT, nhưng các tài sản đi kèm là độc quyền
- Những công cụ có chức năng tương tự gồm có RPG Maker, Unity, v.v.
1 bình luận
Bình luận trên Hacker News
Thật thú vị khi thấy nhiều cách tiếp cận khác nhau trong phát triển game
Dự án GitHub này trông khá lố bịch với các nhà phát triển game
Dù tuyên bố có thể làm phát triển game trở nên đơn giản hơn, nó lại dùng quá nhiều thuật ngữ
Có vẻ dự án này đã thất bại
Kho lưu trữ này hầu như không có tài liệu nhưng lại tạo ra rất nhiều thảo luận
Đã thấy nhiều trường hợp câu chuyện "muốn làm game" biến thành đi làm game engine
Rất yêu Clojure, nhưng vẫn nghi ngờ liệu một ngôn ngữ hàm với cấu trúc dữ liệu bất biến có phù hợp để phát triển game hay không
Trạng thái game được lưu trong một atom, còn các entity lại được lưu bên trong nó dưới dạng các atom khác
Sẽ rất thú vị nếu phân tích dữ liệu về "thời gian/độ phức tạp dành cho game engine" so với "độ phức tạp/mức độ thú vị của game được tạo ra"
Đã có Core, một nền tảng làm game thương mại chạy trên Unreal Engine 4