Trong khi các câu trả lời khác ở đây thực sự tốt để tạo ra các loại cảnh quan tĩnh sẽ hoạt động cho nhu cầu cụ thể này. Có những phương pháp khác mà mọi người gặp phải câu hỏi này có thể đang tìm kiếm nếu họ muốn tạo cảnh quan thay đổi theo thời gian hoặc xuất hiện thực tế hơn nhiều, bạn có thể làm theo kỹ thuật này.
Không giống như các câu trả lời khác, bạn bắt đầu điều này với một bản đồ hoàn toàn trống rỗng. Bắt đầu với những gì bạn sẽ coi là mực nước biển. Sử dụng tiếng ồn Perlin để thêm biến thể rất nhỏ, nếu bạn có 256 độ cao có thể, không thay đổi nhiều hơn 3-5 theo cả hai hướng. Điều này xây dựng cảnh quan vài tỷ năm đầu tiên của bạn mà không cần phải thực sự chạy mô phỏng trong thời gian dài đó.
Kiến tạo địa tầng
Chia bản đồ dọc theo các đường thẳng hoặc cong để tạo các tấm, hình dạng của các tấm càng chi tiết thì phong cảnh của bạn càng thú vị. Giữ chúng lớn. Cho mỗi tấm một hướng, tốc độ. Trong một khung thời gian nhất định, di chuyển các tấm theo kiểu từng bước trên bản đồ, kéo tất cả các ô bên trên chúng với chúng.
Khi hai tấm giao nhau, hãy lựa chọn cái nào sẽ đi qua và cái nào sẽ đi theo, sự lựa chọn này có thể là ngẫu nhiên. Gạch trên các tấm được chỉ định dưới được giảm ngay lập tức chiều cao 5 bước. Khi một tấm đã được chỉ định trên hoặc dưới, tất cả các tương tác trong tương lai với các tấm sẽ tuân theo các quy tắc sau:
- Khi một tấm được chỉ định đi qua một tấm không được chỉ định, tấm không được chỉ định sẽ trở thành loại ngược lại. (Vì vậy, các tấm UD trở nên thấp hơn khi vượt qua.)
- Khi một tấm trên nằm trên một tấm dưới, tất cả các ô đó di chuyển lên các bước độ cao 0-1 và các ô theo đường dẫn của tấm trên.
- Khi một tấm trên vượt qua một tấm trên, tất cả các ô đó di chuyển lên 1-2 bước và các ô trong vùng vượt qua không còn trôi.
- Khi một tấm dưới vượt qua một tấm dưới, bất kỳ gạch nào trong khu vực có độ cao lớn hơn 66% cho cả hai mảng trong khu vực giao nhau đều di chuyển lên 1-3 bước (như thể do hoạt động của núi lửa, điều này sẽ tạo ra các đảo trong thời gian đủ ) và gạch trong khu vực này ngừng trôi.
Tất cả các tấm vượt qua chậm 20% tốc độ hiện tại của chúng mỗi bước. Để thêm tính thực tế, thêm một thay đổi ngẫu nhiên -10% đến 10% theo hướng di chuyển mỗi bước.
Sau khi thực hiện số bước mong muốn. Có lẽ 5-10 là nhiều. Bất kỳ gạch nào không có tấm là cư dân, nên được thả xuống mức thấp nhất hiện có.
Lớn hay nhỏ?
Bản đồ này có thể được sử dụng hoặc được mở rộng để tạo bản đồ lớn hơn nhiều bằng cách chia nó thành các khối (ô) 4X4 và mở rộng các phần đó dựa trên độ cao riêng của chúng. Hãy coi độ cao của mỗi ô là một điểm và tạo ra sự tăng màu mượt mà trong bản đồ lớn hơn giữa các điểm đó. Vì vậy, nếu bản đồ lớn hơn là 40X40 thay vì 4X4 và điểm (0,0) là 10 và điểm (0,1) là 1, các ô trên bản đồ lớn hơn giữa chúng sẽ là 10,9,8,7,6 , 5,4,3,2,1 chiều cao. Tiếng ồn Perlin hơn nữa có thể được thêm vào để làm mịn các sườn dốc. Trên tất cả các kỹ thuật chia tỷ lệ này tương tự như thuật toán Diamond Square .
Nước
Để mô phỏng sông hồ, đại dương và mực nước ngầm. Tôi thích sử dụng automata di động .
Cao trở thành phao hoặc phạm vi int mở rộng để cho phép theo dõi hạt mịn hơn. Các tế bào nước có giá trị bão hòa, giả sử trong khoảng 1-256. Các bản đồ nên bắt đầu đồng đều. Bạn sẽ cần chơi với các số cho kích thước bản đồ cá nhân của mình, tuy nhiên nhìn chung bạn sẽ tuân theo các quy tắc như thế này:
- Nếu một tế bào lân cận bão hòa hơn, tăng độ bão hòa và tăng chiều cao.
- Nếu một tế bào lân cận ít bão hòa, giảm độ bão hòa và mất chiều cao.
Thực hiện kiểm tra này cho mọi tế bào lân cận. Chạy qua một số bước đủ. Nếu bạn muốn, bạn có thể thêm nhiệt độ vào mô phỏng này bằng cách thay đổi lượng bão hòa bị mất / tăng theo nhiệt độ đó. Bạn cũng có thể thay đổi nó dựa trên độ cao. Hồ và sông tự nhiên nên hình thành. Một số sẽ rơi xuống biển. (Đại dương có thể sẽ không được lấp đầy bởi bất kỳ số liệu nào, nhưng bạn sẽ chỉ định bất cứ thứ gì dưới mực nước biển sẽ được lấp đầy vào cuối cùng.)
Bạn có thể giữ nhiệt độ và dữ liệu bão hòa để sử dụng, như trong các câu trả lời khác, để tạo ra quần xã. Họ nên chính xác và thú vị hơn. Với quần xã sinh vật tuyết ở hai cực và nóng ở giữa (nếu bạn sử dụng một danh sách nhiệt độ tốt nghiệp trơn tru.)
Bạn cũng có thể mô phỏng gió và do đó thay đổi nhiệt độ dựa trên độ cao. Bạn có thể bước qua lại giữa việc chạy mô phỏng nhiệt độ và mô phỏng nước nếu bạn muốn. Tuy nhiên tôi đã không xây dựng bất cứ điều gì bằng cách thay đổi nhiệt độ vì vậy tôi sẽ không bình luận về cách làm điều đó.
Phong cảnh tiến hóa
Nếu bạn giữ các mô phỏng cho đất, nước và nhiệt xung quanh và giảm đáng kể hiệu ứng của chúng và cũng ngăn các tấm chuyển động, bạn có thể tiếp tục thay đổi tất cả các số liệu này theo thời gian. Tôi sẽ không chạy các tính toán rất thường xuyên, nhưng bạn có thể nhận được một bản đồ thế giới phản ứng với những thay đổi theo cách này.
Phần kết luận
Trong khi các loại kỹ thuật này được tham gia nhiều hơn, chúng tạo ra các hiệu ứng thực tế và phát triển hơn rất nhiều. Mang nó cho những gì nó có giá trị?