Tôi đang xây dựng một hòn đảo. Tôi sử dụng giải pháp chiều cao cổ điển: với chức năng xây dựng đồi, tránh các góc của bản đồ, tôi tạo độ cao. Sau đó, tiếng ồn perlin cho tôi một số biến khí hậu để xử lý các quần xã. Bây giờ, tôi đang đối mặt với hai thách thức, theo một cách nào đó, được kết nối:
Trong Pháo đài lùn, một trong những khía cạnh gọn gàng của thế hệ thế giới là cách trò chơi dường như "biết" các khu vực và đặt tên cho chúng, mặc dù chúng không phải là hình chữ nhật. Tôi muốn có thể "nhận ra" các khu rừng, dòng sông, ngọn đồi của mình ... bất kỳ ý tưởng nào tôi có thể sử dụng loại thuật toán nào để quét bản đồ của mình và giải thích các khu vực của nó? Và làm thế nào bạn sẽ lưu trữ điều đó? Tôi đang sử dụng một biểu đồ C ++ cơ bản được tạo từ một vectơ của "đối tượng gạch".
Đảo này nên được phân chia trong các khu vực chính trị, không chỉ các khu vực hoàn toàn tự nhiên. Tôi có thể sử dụng núi và sông để tạo ra "biên giới tự nhiên", nhưng bản đồ được tạo theo thủ tục của tôi không đảm bảo tôi sẽ có những "vùng đất" đẹp sẽ tạo thành một vương quốc; Tôi có thể thấy mình có một khu vực chính trị "hình thành dải băng" khổng lồ được bao bọc bởi các vương quốc siêu nhỏ. Một khả năng khác là tìm kiếm các khu vực thích hợp cho một thành phố hoặc một lâu đài. Sau đó, "phát triển" một khu vực chính trị xung quanh nó. Nhưng một lần nữa, tôi muốn có một số thuật toán nổi tiếng trước khi cố gắng tự mình nghĩ ra.
Câu hỏi này có thể được hiểu là hơi mơ hồ, vì vậy một cách để nói lại nó sẽ là: làm thế nào để phân vùng (mà không sửa đổi!) Một thế giới được tạo theo thủ tục vào các khu vực phù hợp với trò chơi? Cảm ơn trước sự giúp đỡ của bạn.