Phương pháp tạo bản đồ


27

Tôi đang tìm cách tạo một bản đồ được tạo ngẫu nhiên, "ngẫu nhiên" cho một trò chơi nhỏ.

Trò chơi bao gồm một góc nhìn từ trên xuống của một thế giới, với các khu vực đại dương và đại dương. Hãy nghĩ về một bản đồ phác thảo đơn giản của thế giới chẳng hạn.

Thứ gần nhất tôi có thể nghĩ đến mà tôi từng thấy trước đây là trình tạo cấp cho các trò chơi SimCity cũ , hay Civil , nơi bạn có thể đặt ưu tiên cho một lục địa duy nhất so với nhiều đảo, v.v.

Loại thuật toán nào sẽ phù hợp? Bản đồ sẽ cần có thể phóng to vừa phải, vì vậy tôi có thể có chế độ xem "toàn thế giới" và cũng có chế độ xem cục bộ được phóng to hơn, nhưng tôi nghĩ rằng tôi sẽ sắp xếp nó sau.

Ban đầu tôi không cần bất kỳ khái niệm về độ cao, chỉ hai lĩnh vực - đất liền và biển, mặc dù tôi có thể mở rộng nó sau này.


Tôi đã suy nghĩ dọc theo các dòng thế hệ bằng cách sử dụng chức năng nhiễu perlin, nhưng không chắc chắn làm thế nào để có được từ bản chất chiều cao 2D, đến một tập hợp các đường nối tất cả các khu vực ở độ cao X.
Hình trụ

Câu trả lời:


21

Amit "nổi tiếng" (với trang khổng lồ về các chủ đề lập trình trò chơi khác nhau) có một blog lập trình trò chơi, và anh ta vừa hoàn thành một hướng dẫn gồm 3 phần về một phương pháp tạo bản đồ thú vị. Tôi thực sự rất thích các bài đọc, và có một bản demo hoạt động ở cuối bài viết thứ ba khá xuất sắc.

"Tạo bản đồ đa giác" phần 1 , phần 2 , phần 3 .

Đây có thể là một kỹ thuật mà bạn muốn thích ứng với nhu cầu của bạn! Ít nhất, anh ta đề cập đến các thuật toán anh ta sử dụng ở mỗi bước của quy trình: anh ta bắt đầu bằng các đa giác Voronoi thế hệ , thư giãn chúng thành một bản phân phối đồng đều hơn bằng cách sử dụng thư giãn Lloyd , sử dụng "một chức năng đơn giản để phân chia thế giới thành đất và nước" và sau đó lấp đầy lũ để xác định đại dương và hồ. Có vẻ như bạn có thể dừng lại ở đó, hoặc đọc trên núi và thung lũng và biến nó thành 3D và như vậy.


2
Ôi chà, tôi đã sử dụng hướng dẫn của Amit một lượng lớn để học A *. Có vẻ như anh ấy nhìn vào đầu tôi :) Đã đến lúc có hình xăm "<3 Amit" đó ...
Hình trụ

1
Chúng thực sự rất tuyệt vời
Colm

Voronoi, tốt đẹp. :)
dùng712092
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.