
Cấu trúc Nexus
Độ phức tạp phẳng
Cách tiếp cận cổ điển trong game xây dựng quanh các hệ thống cứng: mỗi cơ chế - mã riêng, mỗi liên kết giữa các cơ chế - thêm mã nữa. Ngay cả sandbox vẫn là tập hợp các hệ thống riêng lẻ. Sự đa dạng tăng, nhưng kiến trúc không đổi - và độ phức tạp phát triển tăng cùng.
Nexus có cấu trúc khác. Các phần tử cơ bản của game - nguyên tử, từ đó mọi thứ khác được xây dựng. Thêm cơ chế mới không làm tăng độ phức tạp kiến trúc.
Hàng triệu phần tử, nhưng kiến trúc không vì thế mà phức tạp hơn. Hệ thống mở rộng - đến cơ chế, luật và thế giới ở bất kỳ mức phức tạp nào.
Mạng ngữ nghĩa
Nexus lưu dữ liệu dưới dạng triplet (sự thật) - mệnh đề đơn giản theo định dạng "chủ thể → vị từ → đối tượng". Cùng một định dạng mô tả cả sự thật về thế giới lẫn luật cơ chế:
- Táo → là → ăn được (sự thật về thế giới)
- Hươu → là → động vật ăn cỏ (sự thật về thế giới)
- Đánh → gây sát thương → 6 (luật cơ chế)
- Độc → bỏ qua giáp → có (sửa đổi luật)
- Cỏ → mọc → khi độ ẩm trên mức nhất định (sự thật về thế giới)
- Tổ chức tội phạm → kiểm soát → khu phố (sự thật về thế giới)
Dữ liệu và luật được ghi cùng định dạng, trong cùng đồ thị. Qua triplet mô tả tất cả: đối tượng, thuộc tính, trạng thái, quan hệ, hành động, công nghệ, phép thuật. Đây là khác biệt chính so với cách tiếp cận cổ điển, nơi dữ liệu và logic tách biệt.
Thế giới dựa trên lượng lớn sự thật: động vật, công nghệ, vật phẩm, công trình, sự kiện lịch sử - từ nguyên tắc chung đến chi tiết cụ thể.
Bộ thông dịch
Bộ thông dịch xử lý triplet và suy ra hệ quả từ sự thật:
- Táo → là → trái cây
- Con người → có thể ăn → trái cây
- Suy ra: con người có thể ăn táo
Suy luận xây dựng bằng đối chiếu sự thật. Chuỗi có thể dài. Đây là ví dụ phức tạp hơn:
- Goblin → là → sinh vật
- Sinh vật → có → sức khỏe
- Suy ra: goblin có sức khỏe
- Đánh → gây → sát thương
- Sát thương → giảm → sức khỏe
- Suy ra: đánh có thể gây hại cho goblin
Thêm độc với vị từ sát thương - nó tự động tác động lên mọi thứ có sức khỏe.
Bộ thông dịch làm việc với truy vấn hình thức hóa, không phải ngôn ngữ tự nhiên.
Đồ thị tri thức
Đối tượng và thuộc tính thế giới cần mô tả linh hoạt, không hardcode.
Nền tảng - thực thể: nhân vật, vật phẩm, động vật, tổ chức, tàu, thực vật. Mỗi thực thể được gắn sự thật qua vị từ.
Mỗi vị từ thể hiện một liên kết hoặc một thuộc tính:
- "Là" (phân loại: goblin → sinh vật)
- "Có" (sở hữu: sinh vật có sức khỏe)
- "Sát thương" (tác động: đánh gây 6)
- "Chi phí" (tiêu hao: đánh tốn 3 mana)
- "Hấp thụ" (phòng thủ: khiên chặn 5)
- "Quan hệ" (liên kết: goblin ghét con người)
Đánh có vị từ Sát thương = 6. Khiên có vị từ Hấp thụ = 5. Engine suy ra: 6 - 5 = 1 xuyên qua vào sức khỏe. Một cơ chế cho mọi nguồn sát thương và mọi loại phòng thủ - kiếm, độc, lửa, phép thuật.
Thuộc tính tạo thành mạng lưới, mỗi mắt xích - một sự thật. Luật và tương tác tồn tại dưới dạng dữ liệu, không được đúc vào mã.
Để đạt hiệu suất, sử dụng bộ nhớ đệm, chỉ mục và chi tiết thích ứng (LOD).
Luật như pattern
Dữ liệu và logic - chưa phải game. Để có gameplay cần lớp luật. Trong phát triển cổ điển, luật - là mã: mỗi cơ chế do lập trình viên viết. Trong Nexus, luật được mô tả bằng cùng triplet như dữ liệu.
Nền tảng - pattern phổ quát, chung cho mọi thể loại. Tác động: kiếm gây sát thương sức khỏe, gỉ sét - độ bền, lạm phát - sức mua. Tiêu hao: đánh tốn mana, xây tốn gỗ, di chuyển tốn nhiên liệu. Hấp thụ: khiên chặn sát thương, phản biện - cáo buộc, bảo hiểm - tổn thất.
Nhà thiết kế mô tả điều gì xảy ra, không phải cách nào. "Đánh gây 6 sát thương" - một triplet. Engine tự xác định: sát thương đi qua hấp thụ, phần còn lại vào sức khỏe. Công thức không viết cho từng hành động - nó tuân theo pattern.
Pattern kết hợp tự do. Card game dùng tác động và hấp thụ. Chiến thuật - tiêu hao và tích lũy. RPG - kết hợp tất cả.
Game mới - là thực thể mới và tổ hợp pattern mới.
Tác nhân
Thực thể có thể được mô tả là tác nhân - với trạng thái và quy tắc hành vi riêng. Đây là thuộc tính tùy chọn. Kẻ thù trong card game tự chọn hành động. Dã nhân trong chiến thuật tấn công khi điều kiện cho phép. Thương nhân trong RPG di chuyển giữa các thành phố. Tác nhân:
- Nhận biết thế giới trong phạm vi hiểu biết
- Đánh giá hành động khả dụng
- Ra quyết định dựa trên mục tiêu và luật thế giới
Tác nhân được mô tả bằng cùng triplet như mọi thứ khác. Thợ rèn biết rèn (sự thật), cần quặng (sự thật), quặng ở mỏ (sự thật). Từ các sự thật này, bộ thông dịch suy ra hành động: đi đến mỏ, khai quặng. Mỏ bị ngập - thợ rèn không khai được quặng - tìm thương nhân - mua. Hành vi phát sinh từ chuỗi sự thật.
Quy mô không mất logic
Trong mô phỏng sâu, thế giới có thể chứa lượng lớn quá trình: từ di cư động vật và tăng trưởng thành phố đến động lực hệ sao. Tính toán lại tất cả là không thể và không cần - người chơi luôn cảm nhận thế giới một cách chủ quan và có giới hạn.
Thế giới được tổ chức như bản đồ hex. Mỗi hex lưu thuộc tính ở quy mô tương ứng: ở cấp hành tinh - khí hậu và tài nguyên, ở cấp khu vực - thành phố và đường sá. Click vào hex mở cấp tiếp theo - bên trong là bản đồ mới với thuộc tính chi tiết hơn. Thuật toán thống nhất ở mọi cấp - từ hệ sao đến tòa nhà đơn lẻ.
Thời gian và không gian
Cho khoảng thời gian dài, hệ thống có thể dùng mô hình thống kê thay vì tính từng bước. Có thể di chuyển trong thời gian mà không mô phỏng từng khoảnh khắc. Ví dụ, sau nghìn năm, rừng có thể mọc lên hoặc biến mất, sông đổi dòng, khu dân cư mở rộng hoặc bị bỏ hoang. Xu hướng và liên kết được giữ nguyên.
Quy mô không gian xác định cấp độ thực thể và quá trình. Ở quy mô lớn - khí hậu, di cư, chính trị. Ở quy mô địa phương - thực thể đơn lẻ và thuộc tính. Logic nhân quả thống nhất ở mọi cấp.
Trừu tượng hóa chứa thế giới ở mọi quy mô: làng, hành tinh, thiên hà. Chi tiết xuất hiện khi trở nên quan trọng. Phần còn lại được mô tả đơn giản, nhưng giữ liên kết.
Người chơi có thể đi sâu vào cấu trúc thế giới, tìm hiểu thực thể và duyệt theo thuộc tính - tương tự điều hướng trong hệ thống tra cứu.
Hiện thực hóa thế giới
Thế giới được xây khi khám phá. Khi người chơi chưa đến địa điểm, nó tồn tại dưới dạng dữ liệu và luật. Đối tượng xuất hiện lúc tương tác, không được lưu sẵn.
Ngoài tầm quan sát, sự kiện do xác suất quyết định, không phải mô phỏng đầy đủ. Thế giới trông toàn vẹn, dù chi tiết được tạo theo yêu cầu.
Sau khi tương tác với địa điểm, trạng thái được lưu và không tính lại.
Trên khoảng thời gian dài, xu hướng thống kê hoạt động. Sau nghìn năm kể từ đầu, hệ thống quyết định theo xác suất: loài nào sống sót, khí hậu thay đổi ra sao, khu dân cư xuất hiện ở đâu.
Chơi qua mạng
Chơi mạng hoạt động trên cùng nguyên tắc. Máy chủ lưu dữ liệu, luật và những gì người chơi đã khám phá.
Nếu nhiều người chơi ở cùng khu vực - máy chủ tổng hợp trạng thái chung và đồng bộ giữa họ.
Ngoài khu vực chơi, thế giới vẫn là tiềm năng - luật và xu hướng, không có chi tiết.
Kiến trúc mạng cơ bản đã hoạt động: mỗi người chơi nhận phiên riêng, người khác có thể tham gia bằng mã. Hành động được đồng bộ theo thời gian thực.
Kiến trúc như ngôn ngữ
Dữ liệu, luật, giao diện và hành vi tác nhân - cùng một định dạng. Thực thể không biết về nhau, liên kết phát sinh tự động qua vị từ chung.
Trên thực tế hoạt động ra sao? Rừng - là thực thể với các sự thật: có gỗ, là nơi trú ẩn, dễ cháy. Rìu có vị từ Chặt. Chặt tác động lên gỗ. Lửa tác động lên vật dễ cháy. Hạn hán tăng tính dễ cháy. Mỗi sự thật - một dòng. Rừng không biết về rìu, rìu không biết về rừng. Liên kết phát sinh tự động qua vị từ chung. Thêm máy cắt laser với vị từ Chặt - nó tác động lên rừng. Thêm bắn phá hành tinh với vị từ Lửa - rừng cháy.
Nếu tình huống game có thể mô tả bằng lời - nó hoạt động trong Nexus.
