Pháo đài lùn không phải là nguồn mở và trong khi có rất nhiều phỏng đoán và kỹ thuật đảo ngược có thể đi sâu vào cách thức hoạt động của tất cả mọi thứ, thay vào đó tôi sẽ tập trung vào một số kỹ thuật cơ bản để tối ưu hóa một trò chơi 3D (không phải đồ họa 3D, thế giới 3D) của cùng loại.
Như trường hợp của tất cả các trò chơi video, có rất nhiều khói và gương đang tạo ra ảo ảnh về sự phức tạp từ các quy tắc và hệ thống đơn giản. Những phạm vi này từ việc sử dụng các số ngẫu nhiên đơn giản cho chuyển động không có mục đích cho đến trước khi nướng một lưới các nút cấp cao để tìm đường.
Phong trào
Nói về tìm đường, đây thường có thể là một vấn đề rất khó giải quyết đối với các không gian rộng như bản đồ DF có thể (nhiều như 768x768x64 IIRC) tuy nhiên vấn đề có thể được đơn giản hóa và tăng tốc theo những cách sau:
- Mạng nút được nướng sẵn: Khi bản đồ được tạo, thế giới có thể được chia thành các phần và mỗi đoạn có thể có lối ra và lối vào được ánh xạ. Khi một đoạn được cập nhật, chẳng hạn như khi một bức tường được xây dựng, chỉ có mạng lưới của đoạn đó cần được cập nhật.
- Tìm đường theo giai đoạn: Chạy một đường dẫn trên toàn bản đồ, ô cho ô, sẽ mất rất nhiều thời gian, thay vào đó bạn sẽ tìm đường trên mạng chunk lớn hơn, ánh xạ tất cả các kết nối giữa các đoạn, và sau đó chỉ chạy một đường trong khi chuyển từ chunk sang chunk. Điều này làm 2 điều cho bạn. Nó tăng tốc độ tìm đường bằng cách phá vỡ nó trên nhiều mảnh nhỏ hơn và nó cũng cho phép thiết bị thay đổi hướng một phần dọc theo đường dẫn khi một đoạn cập nhật. Nó sẽ đường dẫn lại qua mạng lớn nếu có bất kỳ nút nào cần cập nhật chéo.
- Chỉ đạo ngẫu nhiên: Khi không di chuyển đến mục tiêu, đơn vị chỉ cần đi bộ không mục đích. Nhiều roguelike chỉ di chuyển đơn vị theo một hướng ngẫu nhiên, cảm thấy không tự nhiên. Có thể sử dụng nhiều kỹ thuật lái khác nhau, những kỹ thuật đơn giản được ưu tiên để di chuyển theo đường thẳng và càng ngày càng ít cơ hội di chuyển theo các hướng tỏa ra phía sau, chỉ có khoảng 1% cơ hội. Vì vậy, các đơn vị đôi khi sẽ đảo ngược hoàn toàn hướng, nhưng chỉ hiếm khi.
Tôi sẽ không bao gồm những điều cơ bản của tìm đường. Hầu hết các roguelike sử dụng A *, nhưng có những phương pháp khác để lột da mèo. Mmmm da mèo ..
Nhiệm vụ cá nhân
Một trong những điều quan trọng khiến các đơn vị DF bật và cảm thấy sống động là danh sách mục tiêu cá nhân của họ. Trong thực tế, nhiều trò chơi roguelike có điều này ở mức độ cơ bản. Về cơ bản, mỗi đơn vị có một danh sách các mong muốn (và đối với dorfs của bạn, các nhiệm vụ họ có thể nhận mà bạn yêu cầu thực hiện) và họ sẽ chọn từ chúng dựa trên tính cách (số liệu thống kê của họ).
Một số nhiệm vụ có yêu cầu. Làm một chiếc váy da đòi hỏi dorf phải ở trong một cửa hàng tương tự và có các mặt hàng X. Vì vậy, tất cả những người được kiểm tra và thêm dưới dạng nhiệm vụ vào danh sách của họ. Đơn giản như thế.
Vì hầu hết thời gian một đơn vị sẽ quá cảnh, việc kiểm tra xem đơn vị nào đang thực hiện có thể rất nhanh, chỉ một số đơn vị sẽ đưa ra lựa chọn tại bất kỳ thời điểm nào và do đó, tổng thể không có sự chậm lại nào cho hàng trăm hoặc Hàng ngàn đơn vị. Và hãy nhớ rằng, trong DF mọi thứ từ ong đến troglodyte đến cây đều là đơn vị.
Khi thực hiện một số nghiên cứu bổ sung, rõ ràng là, vui nhộn, DF đang thực hiện một công việc khủng khiếp là tìm đường nói chung. Nó không phá vỡ bản đồ thành nhiều phần, nó phá vỡ bản đồ thành các phân đoạn hoặc khu vực được kết nối, (tốt hơn là không có gì chắc chắn) vì vậy đánh giá trên của tôi thậm chí còn ít hơn một ví dụ về cách DF hoạt động hơn tôi nghĩ. :) Điều đó không phải để nói rằng DF là bất cứ điều gì ít hơn đáng kinh ngạc vì hàng triệu lý do khác.
Nó cho thấy rằng điều quan trọng trong một trò chơi là chơi trò chơi. Không đồ họa, không lập trình tuyệt vời, không viết hay, không nhạc hay, thậm chí không có giao diện; không có gì khác thậm chí là 1% quan trọng như chính trò chơi.