Tôi đã thiết kế một game RPG có nhiều chủ đề câu chuyện, nghĩa là tùy thuộc vào sự lựa chọn của người dùng, một số điều có thể xảy ra hoặc không, bạn có thể đạt được điều tương tự theo nhiều cách, kết thúc có thể khác nhau, v.v.
Tôi đã triển khai một công cụ quyết định đơn giản, hoạt động tốt nhưng có một lỗ hổng lớn, ngay khi bạn đưa ra quyết định, câu chuyện bị ảnh hưởng ngay lập tức bởi quyết định của bạn, điều đó có nghĩa là bạn không thể đưa ra quyết định sẽ ảnh hưởng đến bạn trong tương lai xa . Điều này là do câu chuyện mở ra giống như một nhánh trong cấu trúc cây và nó luôn cần biết nút nào tiếp theo. Trong phần giới hạn, các quyết định được triển khai bằng cách sử dụng hàng đợi: mỗi nút biết về nút trước đó và nút tiếp theo (hoặc nếu đó là nút quyết định, nó sẽ đợi đầu vào của người dùng để đặt nút tiếp theo)
Tôi đã thấy rất nhiều game có công cụ quyết định phức tạp và tôi tự hỏi, chúng được tạo ra như thế nào? Có một thiết kế đặc biệt làm cho mọi thứ thực sự dễ dàng? Có ai đã làm một cái gì đó tương tự và có thể cho tôi một gợi ý về cách giải quyết vấn đề này?
CẬP NHẬT 1:
Một khía cạnh quan trọng là quản lý để bằng cách nào đó giữ mã câu chuyện độc lập, để nó có thể được thao tác từ một tệp bên ngoài. Tôi dự định sử dụng nó như một công cụ để thậm chí các lựa chọn có thể phải đến từ một tệp bên ngoài. Các mã phải hoàn toàn trừu tượng.
Ngoài ra, tôi quan tâm đến một giải pháp thiết kế, một cách hay để làm điều đó, cách người khác làm nó hoặc làm nó.
if (isTree)
hoặc giữ một isTree
var toàn cầu vì câu chuyện có thể có hoặc không có lựa chọn đó trong đó. Biết ý tôi không? Nó giống như một công cụ lựa chọn sẽ phục vụ nhiều câu chuyện.
isTree=true
, tuy nhiên, sau đó, anh ta sẽ làm một việc khác, như chiến đấu với một người bạn cùng trường, người quay lại đi và chặt cây của anh ta khi cây vẫn còn trẻ bởi vì anh ấy bị đá đít. Bây giờ, chúng ta có 2 biến ảnh hưởng đến sự tồn tại của cây isTree==true' and
didFightBrat == false`. Biết ý tôi không? Và chuỗi có thể đi mãi mãi, sự tồn tại của cây có thể bị ảnh hưởng bởi một số yếu tố không xác định. Biết ý tôi không?