Tôi hiện đang làm việc trên một nền tảng 2D dựa trên gạch tương tự như Terraria theo một số cách, mặc dù tôi gặp khó khăn với việc tạo địa hình. Tôi có một số điều cơ bản được thực hiện, mặc dù chúng không đi ra như bất cứ điều gì hữu ích.
Tôi đã thử một vài kỹ thuật khác nhau như Tiếng ồn Perlin và đọc về một số kỹ thuật khác như Dịch chuyển trung điểm, mặc dù tôi không chắc cái nào là tốt nhất hoặc kết hợp các kỹ thuật khác nhau để tạo ra các khu vực khác nhau. (Chẳng hạn như Dịch chuyển điểm giữa cho hình dạng chung của địa hình và Tiếng ồn Perlin cho các hang động.)
Tôi đã tìm thấy một lời giải thích tuyệt vời về cách tôi có thể tạo nó với Thư viện tiếng ồn ngẫu nhiên , mặc dù nó có trong C ++ và tôi không biết đủ C ++ để biên dịch nó thành một DLL mà tôi có thể sử dụng từ C #. Tôi đã cố gắng sao chép điều này trong C #, mặc dù vậy, tôi không biết làm thế nào tôi có thể hợp nhất hai hiệu ứng lại với nhau (độ dốc cho cơ sở chung, và sau đó là fractal để biết chi tiết).
Hiện tại tôi đang sử dụng Plasma Fractal và kết quả rất đa dạng. Ví dụ, nó có thể tạo địa hình nơi hầu như không có bề mặt hoặc có thể tạo địa hình nơi không có bề mặt nào cả.
Một ví dụ về một bản đồ ổn, sẽ tốt hơn với một số cải tiến hơn, mặc dù. (Đen là rắn, trắng là không khí):
Và một ví dụ về một bản đồ khủng khiếp. (Đen là rắn, trắng là không khí):
Về cơ bản, điều tôi đang hỏi là, cách nào sẽ tạo ra địa hình tốt hơn hoặc buộc nó phải đảm bảo rằng có một diện tích bề mặt hợp lý, với thời gian tạo ra càng nhanh càng tốt. Hoặc, thay vào đó, làm thế nào tôi có thể đạt được kết quả tương tự như Thư viện tiếng ồn tình cờ, nhưng trong C #.
Bất kỳ ví dụ sẽ được rất nhiều đánh giá cao.