Thế hệ thủ tục định hướng vào các tính năng chơi trò chơi


36

Trong các trò chơi phong cảnh thủ tục lớn, vùng đất có vẻ buồn tẻ, nhưng điều đó có lẽ là do thế giới thực phần lớn buồn tẻ, chỉ có những nơi hạn chế trong đó phong cảnh là kịch tính hoặc chiến thuật.

Nhìn vào thế hệ từ quan điểm này, một trình tạo cảnh quan cho một trò chơi (nghĩa là không phải vì cảnh quan, mà vì mục đích của trò chơi) cần không tuân theo các quy tắc về cảnh quan, mà thay vào đó, một số quy tắc kết hôn với Kỳ vọng của game thủ. Ví dụ, có thể có một máy tạo điểm / tuyến đường nghẹt tạo ra khe núi, sông và núi giữa các thành phố, thay vì cách tự nhiên phát sinh, nằm rải rác trên đất dựa trên tài nguyên hoặc điều kiện do núi và mưa tạo ra.

Có bất kỳ công việc hiện đang được thực hiện như thế này? Bắt đầu với các thành phố hoặc trung tâm dân số và sau đó thêm vào địa hình?

Lý do tôi hỏi là trước đây tôi đã suy nghĩ về việc lấy các bản đồ hiện có từ tiểu thuyết giả tưởng (của riêng tôi và của người khác), đưa thông tin vào hệ thống làm điểm cơ bản, và sau đó tạo ra một thế giới tốt để chơi từ đó. Điều này dường như được bao phủ bởi công nghệ hiện có, nghĩa là, nơi nhà thiết kế đưa vào tất cả các thông tin cần thiết như dân số thành phố, tài nguyên, quần xã, mạng lưới đường và sông, sau đó cho phép PCG lấp đầy các khoảng trống.

Nhưng bây giờ tôi đang tự hỏi nếu có thể có một trình tạo nội dung tạo ra thiết kế tổng thể. Tạo các thành phố và trung tâm dân cư, cân bằng chúng để có nhu cầu thương mại tự nhiên, sau đó tạo ra các vị trí và kết nối, sau đó từ loại thành phố tạo ra danh sách các tài nguyên cần thiết phải ở gần đó và chỉ sau đó, có thể được cung cấp một số quy tắc về cách làm cho cuộc hành trình giữa các thành phố trở nên đáng tin cậy và thú vị, tạo ra nội dung cuối cùng bao gồm các con đường, các điểm nghẹt thở, cầu và đường hầm, phà và địa hình bao gồm các quần xã và bờ biển cần thiết.

Nếu điều này đã được thực hiện trước đó, tôi muốn biết và muốn biết điều gì đã xảy ra và điều gì đã xảy ra.


Cách tiếp cận của bạn có vẻ kỳ lạ. Tôi không thấy lý do tại sao các thành phố và trung tâm dân số sẽ đến trước..tôi sau đó, bạn không thể đặt một số thành phố và gán cho những điểm đó những thông số ngẫu nhiên nhưng thuận lợi, và làm việc từ đó?
Vịt Cộng sản

1
Tôi nghĩ rằng bạn đang đi đúng hướng với thiết kế văn hóa trước, địa hình (và thời tiết) thứ hai. Trong thế giới thực, xã hội, văn hóa và mạng lưới kinh tế và cấu trúc không phát sinh ở bất cứ đâu. Thay vào đó chúng phát sinh (hoặc không phát sinh) dựa trên địa hình. Một số địa hình chỉ không có lợi cho sự phát triển của một xã hội, và một số là. Các thành phố lớn không phát sinh ở giữa sa mạc hoặc lãnh nguyên băng giá vì a) hầu như không tìm thấy thức ăn hay nước uống, và b) rất khó mang hàng hóa đến thành phố.
Tim Holt

2
Tôi hiểu góc độ của bạn, @Tim Holt. Theo ý kiến ​​của tôi, Rule of Cool và Rule of Fun luôn luôn hợp lý khi thiết kế một kịch bản trò chơi. Một thành phố hình thành cây cầu bắc qua miệng núi lửa đang hoạt động có thể không hợp lý, nhưng nó vẫn rất tuyệt. Ngoài ra, khi người chơi cần các thành phố phân bố đều khắp thế giới trò chơi cho mục đích chơi trò chơi, bạn phải đưa chúng cho họ, ngay cả khi vị trí địa lý của họ sẽ không có ý nghĩa.
Philipp

Câu trả lời:


12

Đây là một ví dụ tuyệt vời về việc tạo địa hình theo thủ tục, sử dụng các tham số như độ ẩm, chiều cao, v.v ... http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/


2
Công việc đáng yêu, nhưng vẫn phân phối ngẫu nhiên các tính năng cảnh quan đầu tiên, yếu tố văn minh / trò chơi thứ hai
Richard Fabian

Nó không hoàn toàn ngẫu nhiên, nhưng tôi đồng ý, không có yếu tố văn minh. Tôi nghĩ rằng kỹ thuật này có thể được điều chỉnh theo nhiều yếu tố chơi trò chơi khác nhau, nhưng các yếu tố trong bản demo là dành cho trò chơi nhiều người chơi (~ 80 người chơi trên mỗi bản đồ): (a) hòn đảo được bao quanh bởi nước, để mọi người không chạm tới, ( b) các khu vực dễ dàng trên bãi biển với người chơi trải rộng, (c) khu vực cứng trên núi với người chơi tập trung, (d) đường đưa bạn đến các khu vực khác có cùng độ khó, (e) sông đưa bạn đến khu vực có độ khó cao hơn. Người chơi sẽ bắt đầu solo tại các bãi biển và nhóm lại khi họ đi về phía trung tâm.
amitp

1
Điều chính mà tôi đang cố gắng khám phá là bắt đầu với các hạn chế về trò chơi trước, sau đó xây dựng một bản đồ chứa đầy các chi tiết, thay vì bắt đầu với các trình tạo địa hình ngẫu nhiên hoặc "thực tế" thông thường và cố gắng phù hợp với các yếu tố chơi trò chơi trên đầu . Tôi nghĩ rằng nó hoạt động tốt cho phong cách chơi đó nhưng tôi đã không thử nó cho các kiểu trò chơi khác.
amitp

4

Tôi tin rằng tôi đã nhìn lại câu hỏi này trong ba ngày qua, trong khi tự hỏi làm thế nào việc tạo ra các thế giới hoặc thậm chí các thiên hà có thể đồng thời có thể mang tính quyết định (chẳng hạn như luôn tạo ra cùng một nội dung từ cùng một hạt giống ), trông tự nhiên, và vẫn có những nét độc đáo, thú vị, khác thường hoặc thậm chí là đẹp trong cảnh quan của nó.

Tôi tiếp tục quay lại cùng một câu trả lời chung chung rằng điều này sẽ phụ thuộc rất nhiều vào thể loại của trò chơi và lịch sử nhất quán nội bộ của nó trong câu chuyện. Ví dụ, thể loại hậu tận thế, tại sao mọi người sẽ xây dựng một đô thị với những bức tường khổng lồ ở giữa một vùng đất hoang và khiến mọi người bên trong nó phải sống khổ sở? Tại sao thuộc địa như vậy? Trong tưởng tượng cao, tại sao làm cho một thành phố trên đỉnh của một hòn đảo nổi? Tại sao người lùn làm cho các thành phố bên trong núi? Và kẻ thù độc ác chung chung của bạn đến từ vùng đất bốc lửa với những ngọn núi lửa đang hoạt động? Quy tắc mát mẻ?

Vì vậy, tất cả quay trở lại câu trả lời của riêng bạn, nơi bạn nhập thông tin vào PCG và nó lấp đầy khoảng trống, và cũng là câu trả lời khác về việc tạo ra các thế giới khớp với các dòng cốt truyện và câu chuyện tổng thể.

Vì vậy, cốt truyện tạo ra các yếu tố gameplay tạo cảnh quan phù hợp.

Điều đó nói rằng, tôi tự hỏi nếu một câu chuyện tạo ra một cây các dòng cốt truyện nhất quán, sẽ tạo ra thiết kế trò chơi tổng thể mà bạn đang tìm kiếm.

(PS: Chính suy nghĩ ba ngày này cũng khiến tôi đi đến một câu trả lời khác cho một vấn đề có thể phát sinh: cần có một công cụ kiểm tra tự động để kiểm tra xem thiết kế trò chơi được tạo có âm thanh hay không, ví dụ: bạn nên có một đội quân thời trung cổ gặp khó khăn thời gian để đánh bại một pháo đài được tạo ra)


2

Chỉ có giấy xử lý các vấn đề tương tự mà tôi có thể tìm thấy là Stachniak và Stuerzlinger " Thuật toán cho biến dạng địa hình tự động Fractal ". Nó giả định rằng bạn tạo địa hình trước và làm biến dạng nó (hay đúng hơn là để thuật toán chọn các tham số tự động biến dạng nó) để phù hợp với các ràng buộc của bạn sau, vì vậy nó không trả lời trực tiếp câu hỏi. Tuy nhiên, các phương pháp được trình bày trong đó có thể chứng minh hữu ích cho những người khác có vấn đề tương tự.


2

Thuật toán như vậy có tự động tạo ra địa hình 'chiến thuật' hơn khi đường được tạo giữa các thành phố không?

Giả sử rằng các con đường chỉ có thể có một sự thay đổi độ cao nhất định trên mỗi khoảng cách, chiều cao địa hình sẽ được điều chỉnh theo chiều cao của con đường, điều này sẽ dẫn đến việc tạo ra các điểm tắc nghẽn mỗi khi đường đi qua một ngọn đồi / khe núi / bất cứ điều gì. Tất nhiên, cũng cần hạn chế số lượng thay đổi về chiều cao địa hình hoặc bạn sẽ có những con đường chạy thẳng qua những đỉnh núi cao nhất.


Tôi cho rằng bạn có nghĩa là những con đường tồn tại sẽ cắt giảm việc tạo địa hình, dẫn đến những gì có thể trông giống như thung lũng do con người tạo ra. Điều này thật thú vị, nơi mà trước đây bạn đã thấy một máy phát địa hình lấy cảnh quan và đánh giá nó quá khó để lái xe, nhưng giá rẻ có đủ để vượt qua? Nó không trả lời câu hỏi của tôi, nhưng nó thêm vào danh sách những thứ mà một máy phát điện nên xem xét, ví dụ trường hợp ngược lại (nơi một con đường cao trên mặt đất) sẽ gọi một cây cầu hoặc cầu cạn, không phải là thứ thường thấy trong PCG.
Richard Fabian

Tôi chỉ nghĩ về cách nó được thực hiện trong cuộc sống thực:
Exilyth

1
Núi hình thành, bị xói mòn. Cây và cây mọc trên đất. Hàng triệu năm sau, những người du mục đầu tiên xuất hiện, đi lang thang khắp nơi, có thể định cư. Chúng bắt đầu ảnh hưởng đến vùng đất xung quanh chúng, ví dụ như hố đá hoặc gỗ. Sau đó, họ sẽ tìm các thành phố khác, bắt đầu giao dịch với họ và do đó cần đường. Việc đi theo địa hình thường dễ dàng hơn thay đổi địa hình, vì vậy họ sẽ điều chỉnh đường của mình theo cảnh quan (ngoại trừ một chút làm mịn / làm phẳng). Như bạn có thể thấy, tôi đang xem xét vấn đề nhiều hơn từ góc độ xây dựng thế giới.
Exilyth

2

Khi tôi ở Cryptic Studios, chúng tôi đã nghiên cứu một thứ như thế này để tạo nhiệm vụ / nhiệm vụ. Các nhà thiết kế đã chỉ định các mục tiêu nhiệm vụ hơi trừu tượng và nó đặt ra những mục tiêu ngẫu nhiên trong "trật tự du lịch của người chơi" và cắt các đường giữa chúng.

Một phiên bản đầu tiên được xuất xưởng với Star Trek Online dưới dạng Genesis Missions (kho lưu trữ) . Lúc đó chúng tôi rất hào hứng với nó nhưng tôi không biết nó tiếp tục bao nhiêu sau khi tôi rời đi, hoặc nếu nó có sẵn trong các công cụ Foundry của người dùng cuối. (Đó là mục tiêu cuối cùng.)


1
Điều này nghe có vẻ như công việc được thực hiện với các trình tạo cốt truyện theo thủ tục, nó thực sự tạo ra các chi tiết thế giới để phù hợp với cốt truyện được yêu cầu của các nhiệm vụ này, hoặc nó đã thực hiện các nhiệm vụ từ thế giới như thế nào, hoặc chỉ may mắn là các nhiệm vụ khó khăn hoặc dễ dàng dựa trên những gì bạn tạo ra?
Richard Fabian

1

Một cách tiếp cận điển hình để tạo địa hình theo thủ tục là vẽ các tính năng cụ thể bằng tay và sử dụng trình tạo để điền vào phần còn lại. VTerrain chắc chắn sẽ có một cái gì đó thú vị về chủ đề này.


1

Ngọn hải đăng 3D có một cuộc khảo sát tốt về một số thuật toán đơn giản để tạo địa hình. Nếu bạn bắt đầu với bản đồ chứa các thành phố hoặc các khu vực thú vị khác, bạn có thể sử dụng một số kỹ thuật này để tạo bất kỳ địa hình nào bạn muốn. Ví dụ, sử dụng thông minh thuật toán lỗi có thể được sử dụng để tạo các vách đá hoặc thung lũng xung quanh thành phố của bạn, hoạt động như các điểm nghẹt thở. Ngoài ra, sử dụng thuật toán vòng tròn sẽ là một cách tuyệt vời để tạo terrian cho vị trí tháp pháo. Đây chỉ là một số ví dụ, nhưng sử dụng các thuật toán đơn giản này sẽ là một cách khá dễ dàng để tạo địa hình thú vị xung quanh các thành phố của bạn.


1

Có thể tôi đang quá đơn giản, nhưng tại sao lại bỏ qua thực tế rằng các thành phố được xây dựng trên địa hình thuận lợi, hoặc vì vấn đề đó, bất kỳ quy mô nào của một khu vực văn minh vì lý do gì? Có thể địa hình mang lại lợi thế chiến thuật cho một phần quân sự hoặc có thể có một xưởng gỗ ở ngã tư của một khu rừng lớn và một con sông có một ngôi làng lớn hơn ở hạ lưu. Ngay cả những nơi "linh thiêng" cũng dựa trên địa hình ngay cả khi thực tế đơn giản là phần đất cụ thể đó có lúc được coi là thánh, v.v. Bất kể hậu quả là gì, nơi an nghỉ cuối cùng của phần lớn nền văn minh tồn tại trong một điểm vật lý cho các lý do rất dựa trên địa hình. Ngay cả trong trường hợp một thành phố mọc lên đơn giản vì có đủ giao dịch xảy ra giữa hai thành phố lớn hơn để bảo đảm một người trung gian, nếu bạn muốn, vị trí thành phố đó sẽ được chọn dựa trên con đường ít kháng cự nhất. Nó sẽ được đặt ở một nơi nào đó cung cấp đất nông nghiệp bằng phẳng tốt để cung cấp thực phẩm địa phương cùng với đất cho vay tốt để xây dựng đường. Tôi chắc rằng bạn đã nghĩ về điều này ...

Vì vậy, nếu bạn định xây dựng thành phố trước, chắc chắn, tại sao không? Tại sao không xây dựng thành phố, làng mạc, khu định cư hoặc bất cứ điều gì, cùng với một khối địa hình xung quanh, được xây dựng bằng tay, hỗ trợ cho loại hình thành lập đó?

Lấy quần xã sinh vật tố làm ví dụ. Chúng thường được áp dụng cho các bản đồ nhiệt độ, độ ẩm và chiều cao giả ngẫu nhiên. Nếu bạn đã thiết kế thành phố (hoặc xưởng gỗ, v.v.) thì có khả năng bạn có một khái niệm vững chắc về diện tích đất cần trông như thế nào, nếu tôi không hiểu lầm, chính xác là quan điểm của bạn. Có một tòa nhà giả tưởng như Orthanc, được hoàn thiện với các sơ đồ tầng và địa hình xung quanh, mà bạn đã nhân rộng. Chà, chúng ta biết, tùy thuộc vào dòng thời gian, Orthanc được bao quanh bởi một khu rừng rộng lớn có Ents (sinh vật cây), v.v ... Nếu bạn đang cố gắng tái tạo điều đó, thì việc áp dụng một địa hình ngẫu nhiên sẽ vô nghĩa với tôi. Điều đó đang được nói, một khi bạn đã tạo ra thiết lập này cho chính tòa tháp và khu rừng xung quanh, giữa Orthanc và thành phố tiếp theo của bạn là gì?

Cách tiếp cận đơn giản có thể là viết thế hệ địa hình theo thủ tục của bạn, đặt cài đặt của bạn bên trong hệ thống địa hình được tạo ngẫu nhiên và nâng cao độ cao xung quanh cài đặt cố định của bạn và viola bạn có thể đặt Orthanc trong nhiều thế giới được tạo ngẫu nhiên khác nhau (nên là thế giới của bạn).

Tuy nhiên, tôi nghĩ rằng bạn sẽ tốt nhất với sự kết hợp của thiết lập, địa hình và quần xã được xác định và đảm bảo Orthanc được đặt bên trong một quần xã rừng lớn được tạo theo thủ tục. Tùy thuộc vào cách bạn mã hóa nó, bạn có thể đặt min / max biome, địa hình, độ ẩm, v.v. cho từng cài đặt hoặc tòa nhà hoặc thành phố được xác định trước mà bạn đã điêu khắc. Đây sẽ là một nhiệm vụ nhỏ trong một thế giới 3d phaticealistic đầy đủ? Rõ ràng là không.

Tôi nghĩ rằng nếu tôi cố gắng làm điều này, tôi sẽ nghiên cứu các thuật toán thủ tục bờ biển trước. Theo cách tiếp cận mà hầu hết các nền văn minh trong suốt lịch sử đã đi theo bất kỳ bờ biển nào, có thể là đại dương, biển hoặc hồ lớn. Đó là con đường ít kháng cự nhất cho sự phát triển vì có khả năng đánh bắt rất nhiều, cây cối gần đó và chắc chắn di chuyển nhanh hơn ngay cả với tàu thủy thô sơ (ít nhất là một chiều).

Tôi nghĩ bạn sẽ phải xây dựng hoàn toàn ngược. Hãy suy nghĩ, các chấm giả ngẫu nhiên trên bản đồ đại diện cho các điểm của nền văn minh có thể bằng thuật toán nhiễu xác định dân số của các nền văn minh đó trước khi mọi thứ khác được xác định. OK, vì vậy, 1 điểm xuất hiện cho dân số 1.000, 2.000.000 người khác (hoặc bất kỳ tỷ lệ nào tùy thuộc vào dân số thế giới của bạn). Tại sao? Tại sao những số dân đó? Dân số 1.000 người có thể là cộng đồng gỗ xẻ nhỏ. Có lẽ đó là một cộng đồng khai thác nếu nó ở phía bắc của bản đồ nếu bạn tạo ra một thế giới hình cầu 3d. Ở đây có một chút mờ nhạt bởi vì tôi không biết liệu bạn sẽ đi vô tận theo mọi hướng khiến NESW trở nên vô nghĩa trong việc xác định quần xã sinh vật hay nếu bạn muốn có một "Trái đất" rất thật

Tuy nhiên, nếu bạn hạ bệ các nền văn minh của mình, dựa trên các quần thể tiếng ồn giả ngẫu nhiên, tôi nghĩ rằng chúng ta có thể đảm bảo một số quy tắc (nhưng có thể không tuyệt đối) như ... Nền văn minh càng lớn, càng nhiều, tài nguyên hữu ích càng lớn tay và địa hình để hỗ trợ họ. Khoáng sản quý, gỗ, vv nauseam phải có mặt hoặc phải có một hệ thống thương mại khổng lồ để hỗ trợ một doanh nghiệp rộng lớn như vậy. Dựa vào đó, bạn có thể bắt đầu tạo đường cao tốc từ thành phố này sang thành phố khác và các con đường đến các khu định cư xa xôi như một hoạt động khai thác sâu, v.v. Chọn các điểm văn minh sẽ hình thành các đường bờ biển tốt và thả các điểm dân cư ra khỏi bản đồ nơi bạn cần lấp đầy đại dương (hoặc có thể bạn có Atlantis's trong thế giới của bạn, hoặc các cuộc tập trận dầu khí ngoài khơi).

Việc lấp đầy địa hình ở giữa một lần nữa phụ thuộc hoàn toàn vào cách tiếp cận quần xã của bạn. Nếu bạn có vô hạn trong mọi thế giới định hướng thì hãy đặt Orthanc xuống bất cứ nơi nào phù hợp với dân số, buộc nó vào một quần xã rừng và xây dựng xung quanh nó cho đến khi bạn đi được một nửa đến đích đến trước mà thuật toán của bạn đang thực hiện cùng một thế hệ thủ tục xung quanh. Lerp / Trộn hai địa hình lại với nhau khi chúng gặp nhau và vâng, đây là một sự đơn giản hóa rõ ràng.

Không có kiến ​​thức làm việc thực sự về những gì bạn thực sự cố gắng thực hiện một cách máy móc, tôi chỉ có thể loại bỏ những ý tưởng và có thể là những ý tưởng tồi. Tôi nghĩ rằng cách tiếp cận của bạn có giá trị, ngay cả khi nó hoàn toàn tuyệt vời trong thực tế, bởi vì bạn đang nhắm mục tiêu điều luôn luôn là yếu tố quan trọng nhất trong bất kỳ trò chơi nào: Người chơi có vui không? Hoặc, tôi đang tạo ra một thế giới ngẫu nhiên không nhàm chán và do đó, không vui?

Điều gì cũng sẽ trở nên thú vị, và đây có thể là một phần của thế hệ các nền văn minh trong bất kỳ trò chơi nào, địa hình trước hay không, điều gì xảy ra nếu bạn ngồi xuống 2 thành phố lớn cạnh nhau? Nó có nghĩa là gì? Họ có chiến tranh không? Có phải họ đang hoạt động giao dịch lớn giữa hai quốc gia hưng thịnh? Những loại kẻ thù ẩn nấp trong khu rừng của nhà máy gỗ đó?

Tôi nghĩ có một điều chắc chắn nếu bạn đang cố gắng xây dựng địa hình dựa trên "các thành phố" và đó là địa hình sẽ bị ảnh hưởng trực tiếp bởi dân số của thành phố nói trên, cả về cảnh quan và tài nguyên thiên nhiên (và thậm chí cả về vẻ đẹp).

Tôi không chắc liệu tôi có thực sự trả lời bất cứ điều gì hay không nếu điều này là phù hợp nhưng đó là một khái niệm rất thú vị và tôi rất thích nghe bạn nói về đâu.


0

Tôi sẽ tạo ra các tính năng chơi trò chơi đồng thời như là một phần của cùng một quy trình. Có một số cách để xây dựng địa hình dựa trên các quy tắc. Cuộc trò chuyện trên YouTube này của các nhà phát triển Path to Exile là một ví dụ khá hay: https://www.youtube.com/watch?v=GcM9Ynfzll0 . Ngoài ra, đối với một aproach ít được xây dựng trước, điều này có vẻ thú vị: https://www.youtube.com/watch?v=RAtdFKiqs34 . Bạn có thể sử dụng nhiễu perlin để tạo độ cao cho mỗi đỉnh voronoi và đi từ đó

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.