Làm điểm sinh sản ngẫu nhiên công bằng?


22

Nếu tất cả người chơi được sinh ra ở các vị trí ngẫu nhiên có cùng khoảng cách với những người chơi liền kề, số lượng người chơi sẽ tỷ lệ thuận với khả năng vị trí sinh sản của họ là không công bằng. Càng gần người chơi sinh ra ở trung tâm bản đồ, họ càng dễ gặp phải những người chơi khác và họ càng ít có khả năng sống sót, so với những người chơi ở rìa bản đồ. Giả sử tất cả người chơi được sinh ra cùng một lúc.

Có cách nào để định hình các điểm sinh sản hoặc thay đổi bản đồ để:

  1. Tất cả người chơi có một số lượng hạn chế kẻ thù liền kề.
  2. Tất cả người chơi có cơ hội như nhau để gặp kẻ thù liền kề.
  3. Kích thước bản đồ không phải tăng tỷ lệ thuận với số lượng người chơi.
  4. Những hạn chế này không được thực thi với các không gian bất khả xâm phạm.

Câu trả lời không nhất thiết phải hoàn hảo, rõ ràng là tốt hơn so với giải pháp thay thế. Ra khỏi hộp chào mừng.


10
Sinh sản trong một vòng tròn?
Zibelas

1
@Zibelas Cách tiếp cận truyền thống, nhưng vi phạm yêu cầu 3, và với nhiều người chơi, điều này tạo ra một bản đồ khổng lồ và nội thất trống rỗng.
không phù hợp Mã

4
Nó phụ thuộc vào loại trò chơi của bạn. (2D / 3D, hồi sinh / người đứng cuối cùng, v.v.) Sự sinh sản hoàn hảo là trong trường hợp đó chỉ có thể có trên một thế giới hình quả bóng (nhiều người chơi hơn, sinh sản gần hơn nhưng bạn có thể đảm bảo rằng họ có cùng khoảng cách). Trên một thế giới 2D có đường viền cố định, bạn luôn có ít người chơi giáp hơn vì bạn không có nơi nào để sinh ra chúng. Nếu là trò chơi 3D, bạn có thể có nhiều lớp.
Zibelas

1
Tôi nghĩ nó sẽ giúp để biết bạn đang làm loại trò chơi nào. Nghe có vẻ giống như một số trò chơi chiến tranh, nhưng các chi tiết là gì? Có phải là một game bắn súng? Bạn có bắt đầu với tất cả vũ khí của bạn, hoặc bạn phải khám phá và tìm thấy mọi thứ? Điều kiện chiến thắng là gì? Một trận đấu dự kiến ​​sẽ kéo dài bao lâu?
RothX

3
Không cho câu trả lời đầy đủ, nhưng tôi nghĩ mọi người đang cố gắng cho "sinh sản công bằng & cân bằng" mà ... không vui chút nào. Nhìn vào PUBG (và những người khác Battle Royale) xuất sắc: người chơi có thể "sinh sản" (tốt, nhảy và hạ cánh ...) gần như bất cứ nơi nào họ muốn - nếu bạn muốn xung đột và kịch tính, bạn chọn nơi mà hầu hết người chơi hạ cánh / sinh sản. Phần thưởng cao rủi ro cao, nhưng chỉ khi người chơi muốn nó. Bạn có thể hạ cánh ở đâu đó trong rừng, bạn có thời gian để chuẩn bị cho mình - phần thưởng thấp rủi ro thấp nhưng một số người chơi có thể thích nó (ví dụ như tôi chẳng hạn;)). Nó KHÔNG ngẫu nhiên, do người chơi lựa chọn.
Jan 'splite' K.

Câu trả lời:


27

Hãy để người chơi tự chọn vị trí bắt đầu của họ.

Khi bắt đầu trò chơi, sinh ra tất cả người chơi ở trung tâm bản đồ, nhưng không có bất kỳ phương tiện nào gây hại cho những người chơi khác. Sau đó, họ sẽ phải tràn ra và có được các phương tiện để giao chiến với nhau (xây dựng căn cứ, nhặt vũ khí, thu thập tài nguyên, v.v.)

Có một chút may mắn hoặc kiến ​​thức bản đồ liên quan đến việc sớm tìm được vị trí bắt đầu tốt (tùy thuộc vào việc bạn sử dụng bản đồ thủ tục hay thủ công). Nhưng khi nào và ở đâu để giải quyết chủ yếu là một quyết định chiến lược. Triển khai sớm mang lại cho bạn lợi thế về thời gian, nhưng đặt bạn vào vị trí nguy hiểm. Chọn căn cứ của bạn một cách cẩn thận đặt bạn phía sau trong trò chơi đầu, nhưng có thể là một lợi thế quyết định trong giữa và cuối trò chơi.


3
@Shashimee Thật ra tôi tin rằng tôi đã thấy phương pháp này đầu tiên trong Anno 1602. Tôi cũng tin rằng một số trò chơi C & C đầu tiên có tùy chọn trò chơi nhiều người chơi tùy chọn (nhưng tôi không chắc liệu tôi có nhớ lại chính xác không).
Philipp

3
@Philipp MULE cho người bán hàng 64 khoảng 15 tuổi và cho phép bạn chọn vị trí của mình :)
Zibelas

Sau đó, bạn gặp phải vấn đề mà bạn được theo dõi đến điểm sinh sản của bạn. Tất nhiên, điều này có thể là cơ chế trò chơi mong muốn, nhưng nó cũng có thể cực kỳ bực bội và không phải là thứ bạn quyết định bạn muốn trong trò chơi của mình. Một ý tưởng tốt sẽ là để các nhân vật sinh ra vô hình và không va chạm với người chơi, và tìm căn cứ của họ trước khi bắt đầu trò chơi.
Dent7777

Đó là phương pháp được sử dụng bởi dòng trò chơi tùy chỉnh "Vampirism" và "Tree Tag" trên Warcraft 3. Nó hoạt động tốt nhất vì tất cả người chơi đều là đồng minh (ít nhất là ban đầu) và nhóm đối thủ sẽ được phát hành sau đó.
Kroltan

Điều này cũng có lợi thế của cảm giác ít bất công. Nếu bạn sinh sản ngẫu nhiên và nhanh chóng chết hoặc chịu hình phạt, điều đó có thể cảm thấy không công bằng, ngay cả khi nó là khá công bằng. Nếu bạn chọn nơi bạn sinh ra cái chết hoặc hình phạt có vẻ ít bất công và trừng phạt hơn vì chọn điểm sinh sản là một kỹ năng và là thứ bạn có thể làm tốt hơn. Điều đó nói rằng, nếu việc chọn điểm sinh sản thực sự khó khăn, nó cũng có thể cảm thấy không công bằng vì những người chơi có kỹ năng cao hơn sẽ làm tốt hơn rất nhiều.
Anubian Noob

9

Hiểu các yêu cầu

  1. Tất cả người chơi có một số lượng hạn chế kẻ thù liền kề.

Trước hết, chúng ta đang nói về điểm sinh sản của người chơi, không phải vị trí hiện tại của người chơi tại một điểm nhất định trong trò chơi. Chỉ cần đưa nó ra khỏi đường đi.

Liền kề được xác định rõ khi chúng ta nói về một biểu đồ. Chúng ta có thể nghĩ về một bản đồ thể hiện khả năng điều hướng trên bản đồ - từ bây giờ là "biểu đồ".

Nếu nút có thể có nhiều nhất một điểm sinh sản, thì việc nói chúng là "liền kề" có ý nghĩa. Lưu ý: Tôi sẽ không ràng buộc các nút để có một điểm sinh sản duy nhất, vì những lý do sẽ rõ ràng sau này.

Để xây dựng biểu đồ, chúng ta sẽ cần xem xét những thứ như tường, cầu, thang, điểm dịch chuyển tức thời hoặc thậm chí xem xét không gian bay nếu có thể có người chơi có thể bay. Mỗi nút đại diện cho một vị trí đi qua; mỗi kết nối đại diện cho một phong trào có thể.

Lưu ý: biết kích thước và hình dạng của các nút và làm việc với các nút thực sự liền kề. Đừng coi các nút là một điểm. Đừng coi các kết nối là có độ dài. Ngoài ra, sử dụng các nút lồi.

Biểu đồ có thể đã được biên dịch trước (bản đồ được tạo bởi một nhà thiết kế); mặt khác, nó có thể được tạo khi đang bay nếu bản đồ được tạo ngẫu nhiên.

  1. Tất cả người chơi có cơ hội như nhau để gặp kẻ thù liền kề.

Tôi sẽ cho rằng kẻ thù là những người chơi khác. Một lần nữa, chỉ cần đưa nó ra khỏi đường đi.

Giả sử mỗi người chơi thực hiện một bước đi ngẫu nhiên, xác suất tìm thấy người chơi tại một điểm nhất định - trên một không gian bằng phẳng, không có chướng ngại vật - sẽ được đưa ra bởi một hàm (Gaussian) của khoảng cách đến điểm sinh sản - kể từ bây giờ chức năng".

Vì chúng tôi đang làm việc trên biểu đồ, thay vào đó chúng tôi sẽ chú thích các giá trị trên biểu đồ.

  1. Kích thước bản đồ không phải tăng tỷ lệ thuận với số lượng người chơi.

Nếu chúng ta có một ràng buộc là có một điểm sinh sản duy nhất cho mỗi nút, thì để thêm nhiều người chơi, chúng ta sẽ cần các nút nhỏ hơn. Nếu chúng tôi quyết định biểu đồ trước khi chúng tôi biết chúng tôi sẽ có bao nhiêu người chơi, chúng tôi có thể phải chia nhỏ các nút cho trò chơi cụ thể.

  1. Những hạn chế này không được thực thi với các không gian bất khả xâm phạm.

Tôi không có ý định thêm trở ngại để giải quyết vấn đề. Au contraire , tôi cần phải làm việc với những trở ngại. Nếu họ không ở đó, việc thực hiện sẽ đơn giản hơn.


Dung dịch

Chúng tôi đang cố gắng đặt N điểm sinh sản sao cho cơ hội gặp người chơi khác tại tất cả các điểm sinh sản đó là bằng nhau.

Chúng ta có thể lấy thước đo sai số là tổng của sự khác biệt của các cơ hội với giá trị trung bình của các cơ hội. Chúng tôi đang cố gắng giảm thiểu điều đó (trên thực tế, chúng tôi muốn làm cho nó 0).

Để làm như vậy, chúng ta cần biết cơ hội gặp một người chơi trên mỗi nút của biểu đồ.

Để tính toán cơ hội đó, bắt đầu bằng không. Vì cơ hội tìm thấy một người chơi trên bất kỳ nút nào, khi không có người chơi, bằng không. Và sau đó, với mỗi điểm sinh sản, hãy đi bộ biểu đồ thêm vào cơ hội chú thích giá trị của hàm cho điểm sinh sản hiện tại.

Lưu ý 1: Thêm hoặc di chuyển điểm sinh sản sẽ ảnh hưởng đến cơ hội gặp người chơi cho tất cả bản đồ.

Lưu ý 2: Theo dõi mức độ mỗi điểm sinh sản ảnh hưởng đến cơ hội, sẽ giúp mọi việc dễ dàng hơn.

Lưu ý 3: Vì các nút có kích thước, mức độ bạn có thể gặp lỗi = zero phụ thuộc vào kích thước của các nút. Bạn có thể chính xác hơn bằng cách làm việc với các phạm vi giá trị (cơ hội tối thiểu và tối đa, tùy thuộc vào vị trí cụ thể của các điểm sinh sản trong nút).

Đặt các điểm sinh sản ngẫu nhiên, sau đó bắt đầu di chuyển chúng theo cách mà lỗi trở nên nhỏ hơn (xem xét một chuyển động có thể xảy ra và nếu gây ra lỗi giảm, hãy giữ lại, nếu không sẽ hoàn nguyên nó). Và tiếp tục làm như vậy cho đến khi chúng tôi không thể cải thiện thêm nữa (quá nhiều lần lặp mà không cải thiện, hoặc lỗi là 0).

Lưu ý 4: Khi di chuyển điểm sinh sản, bạn có thể sử dụng cơ hội gặp người chơi (không bao gồm điểm sinh sản bạn sẽ di chuyển) để chọn ngẫu nhiên một vị trí mới cho điểm sinh sản sao cho vị trí có cơ hội gặp người chơi gần hơn có nghĩa là nhiều khả năng. Tôi nhắc nhở bạn rằng di chuyển điểm sinh sản sẽ ảnh hưởng đến giá trị trung bình.

Hành vi dự kiến ​​là điểm sinh sản quá gần nhau di chuyển xa nhau và điểm sinh sản quá xa nhau đến gần hơn. Cho đến khi chúng đạt đến trạng thái cân bằng.

Nếu tại bất kỳ lần lặp nào, bạn có nhiều điểm sinh sản trên một nút (điều này là không thể, vì chúng sẽ có xu hướng di chuyển xa nhau, nhưng có thể nếu bạn có các nút đủ lớn), hãy tách nút và tiếp tục giải quyết. Bất kỳ phân chia của nút là hợp lệ.


Giải pháp trên sẽ tiếp cận lỗi = không, nhưng không được bảo đảm để đạt đến không. Bạn có thể làm là chạy nó cho đến khi nó đạt đến mức tối thiểu cục bộ ... Về lý thuyết, sau đó bạn có thể chia các nút để làm cho nó chính xác bằng 0 ... Tuy nhiên, điều đó tương đương với việc điều chỉnh tọa độ điểm sinh sản!

Hãy thử mô phỏng ủ để di chuyển điểm sinh sản trong nút. Mặc dù, thành thật mà nói, có lẽ không đáng để bận tâm với mức độ chi tiết như vậy.


Tôi muốn làm rõ rằng kết quả cho một bản đồ phẳng không có chướng ngại vật sẽ không được phân phối đồng đều các điểm. Thay vào đó, nếu bản đồ có các cạnh (nghĩa là nếu nó không bao quanh), thì sẽ có nhiều điểm sinh sản gần các cạnh hơn, điều này là do các điểm ở trung tâm có thể được tiếp cận từ nhiều hướng hơn, làm tăng cơ hội gặp phải Những người chơi khác ở đó. Do đó, các điểm xa hơn gần trung tâm để bù.


6

Nó phụ thuộc vào loại trò chơi bạn muốn tạo và tốc độ của nó. Sự phân bố đồng đều hoàn hảo có thể có trên một quả cầu như thế giới (ví dụ: Sự hủy diệt hành tinh). Nhưng đó có phải là một lựa chọn công bằng trong trò chơi của bạn? Ngay cả khi tất cả mọi người đang sinh sản trên khoảng cách bằng nhau, một số sinh sản vẫn có thể có lợi thế tốt hơn.

  • Gần hơn / vũ khí tốt hơn trong phạm vi / nhiều tài nguyên hơn
  • Che tốt hơn / ẩn nhiều hơn / tổng quan
  • 'dòng chảy' của người chơi, một số nơi hấp dẫn hơn những nơi khác (nghĩ về một bản đồ rừng đầy đủ với một ngôi nhà ở một nơi, bất kể ngôi nhà đó ở đâu, rất có thể mọi người đang kiểm tra nó)

Bản đồ của bạn là một bản cố định hay một bản đồ thủ tục được tạo ra? Và bạn đã bao giờ thử chơi Age of Empires với 8 người trên bản đồ 2 người chưa? Không thể chia tỷ lệ người chơi vô hạn mà không điều chỉnh kích thước bản đồ. Ngay cả một vị trí bắt đầu không công bằng cũng có thể mang lại rất nhiều năng động trong trò chơi (xem loạt Worms). Không ai phàn nàn nếu bạn sinh sản ngay trong một cụm lớn, miễn là liên minh một vòng của bạn với người chơi khác kéo dài hoặc bạn không phải là con sâu sống sót nhất sau vòng đầu tiên.

(Tôi sẽ thêm một vài ví dụ nữa nếu tôi biết thêm về loại trò chơi của bạn)


5

Đi cho một cái gì đó không được đề xuất cho đến nay: Làm cho nó để không có trung tâm của bản đồ. Điều tôi muốn nói là điều này là các cạnh bản đồ nối vào các cạnh đối diện. Điều này sẽ tốn rất nhiều công việc lập trình, nhưng trong thực tế, nó có thể khiến cấp độ lặp lại vô hạn nếu bạn đi theo một hướng. Điều này có nghĩa là không có trung tâm, và một vị trí sinh sản ngẫu nhiên sẽ không có lợi thế hoặc bất lợi.

Bạn có thể làm điều này bằng cách tạo một bản đồ phẳng là hình vuông và nối mỗi cạnh với một bản sao của cạnh đối diện. Khi một người chơi đi ra khỏi bên, họ bị dịch chuyển tức thời mà không có kiến ​​thức của người chơi sang cạnh đối diện. Tất nhiên, về mặt lý thuyết, bạn sẽ không thể nhìn thấy người chơi ở phía bên kia ranh giới. Để khắc phục điều này, hãy tạo bản sao của người chơi đó dường như đi bộ ở phía bên kia của ranh giới để bạn có thể nhìn thấy họ, và khi bạn chạy về phía họ, bạn dịch chuyển tức thời và người chơi thực sự đang đứng nơi hình nộm.

Ngoài ra, toàn bộ bản đồ có thể tồn tại ở bên ngoài một quả cầu, tuy nhiên điều này làm cho tọa độ khó sinh sản.


2
Hoặc tạo một bản đồ, ở trung tâm, bạn có thể bị săn bắn hoặc săn bắn dễ dàng hơn, và cũng có thể tìm thấy chiến lợi phẩm dễ dàng hơn, nhưng một lần nữa, bạn có thể bị săn bắn như thế này, và ở các khu vực không phải là trung tâm, thực hiện điều đó để người chơi ít tìm thấy người dùng và cướp bóc khác, vì vậy nếu họ muốn có nhiều chiến lợi phẩm hơn, họ sẽ phải đến trung tâm, nếu muốn sống sót lâu hơn, họ sẽ phải ở lại nơi họ đang ở. Vì vậy, về cơ bản làm cho nhược điểm của sinh sản ngẫu nhiên là một lợi thế.
Ave

4

Dưới đây là một số giải pháp có thể:

  • Sinh sản ngẫu nhiên trên chu vi của vòng tròn
  • Sinh sản ngẫu nhiên trên bán kính (không sinh sản để đóng trung tâm)
  • Thêm một thành phần thời gian sinh sản ngẫu nhiên

Sơ đồ cơ chế sinh sản


Hình ảnh thứ hai là một lựa chọn tuyệt vời. Nó giải quyết vấn đề của tùy chọn đầu tiên nơi người chơi biết chính xác vị trí của tất cả những người chơi khác.
Zanon

@Zanon mặc dù với hình ảnh đầu tiên, người chơi có thể (và có thể sẽ) di chuyển đi trước khi có người đến đó. Thứ hai sẽ gây ra sinh sản không công bằng, một số gần gũi với người khác. Có thể một cái gì đó như thế này khi có 2 vòng tròn và sự khác biệt giữa nhỏ hơn và lớn hơn là nơi chúng sinh ra, giống như hình ảnh thứ hai, nhưng ít hơn ở trung tâm.
Ave

1

Về cơ bản tôi tin rằng đây là một vấn đề phân phối đồ thị. Giả sử tình huống deathmatch (mọi người chơi khác là kẻ thù), bạn cần lập mô hình bản đồ của mình dưới dạng biểu đồ được kết nối với nhau và theo dõi nút nào trên biểu đồ mà mỗi người chơi gần nhất. Không phải mọi nút cần là một điểm sinh sản, nhưng bạn cần biểu đồ phức tạp để mô hình khoảng cách giữa các điểm sinh sản. Vào thời điểm sinh sản, sau đó bạn lặp lại biểu đồ và ghi điểm cho mỗi nút sinh sản dựa trên việc các nút lân cận có người chơi hay không.

Nút lý tưởng sau đó có:

  • Không có người chơi hiện tại trong đó
  • Nhiều hơn 0 người chơi trong các nút gần đó (một số lượng nhỏ các liên kết đi)

Hãy tưởng tượng rằng biểu đồ của bạn đã được chuẩn hóa và bạn đang vẽ các vùng đồng tâm xung quanh mỗi nút. Bạn phạt nút nếu các khu vực bên trong đã có người chơi trong đó và thưởng cho các nút có người chơi ở khoảng cách phù hợp. Bạn muốn khuyến khích sinh sản gần đủ cho những người chơi khác để họ có thể nhanh chóng tìm thấy sự quan tâm, nhưng không đến nỗi họ bị nhảy lên trước khi họ có cơ hội có được vòng bi.

Bạn sẽ cần tăng kích thước bản đồ khi số lượng người chơi tăng lên, nhưng knhu cầu không phải là 1 hoặc lớn hơn. Trường hợp xấu nhất của bạn vẫn là mọi nút trên biểu đồ đều có ít nhất một người chơi - trong trường hợp đó không có nút nào tốt để sử dụng, và bạn sẽ phải chịu đựng trường hợp đó và sinh ra một người chơi biết rằng họ sẽ đất ngay trên đỉnh của người khác. Thuật toán chấm điểm vẫn nên cân các nút để bạn sinh ra trong nút với ít người chơi khác.

Hãy nhớ rằng biểu đồ bản đồ của bạn sẽ phải được xây dựng cẩn thận, với kiến ​​thức về bản đồ, các tuyến đường, bất kỳ điểm dừng và khoảng cách hiệu quả giữa các điểm nút, không phải là khoảng cách thực tế . Như trong, sử dụng một cái gì đó như thời gian đo để đi qua giữa các nút thay vì khoảng cách, để tính đến địa hình khó khăn hơn. Ngoài ra, bạn cần phải tính đến open-ness vs cover; hai nút có thể cách xa nhau về mặt vật lý, nhưng vì chúng rất cởi mở, sinh ra một người chơi ở mỗi nút có thể có nghĩa là chúng dễ bị tổn thương như thể bạn sinh ra chúng ngay cạnh nhau.

Các sàng lọc:

  • Thêm một hình phạt tạm thời để ghi điểm nếu một người chơi đã sinh ra ở nút đó gần đây, để ngăn chặn các điểm bị hình thành (một dòng người chơi vô tận đến từ cùng một hướng và bị loại bỏ)
  • Thêm tính ngẫu nhiên trong một phạm vi (ví dụ: chọn 3 nút tốt nhất và sau đó chọn ngẫu nhiên giữa chúng với xác suất bằng nhau) để có thêm biến thể.
  • Thêm trọng lượng ban đầu vào trung tâm bản đồ (hoặc các điểm thú vị nhất) khi chưa có ai sinh sản, để bạn sinh sản ở những nơi đã biết, ngay cả khi mọi nút đều có điểm 0 vì không có người chơi nào khác có mặt.

0

Một vài người khác đã thảo luận về những hạn chế của các yêu cầu của bạn (bản đồ sẽ cần mở rộng ở một số điểm để ngăn chặn quá tải, v.v.), và cuối cùng đã trốn tránh thực tế rằng có khả năng không có thuật toán vị trí "hoàn hảo". Khi có khả năng không có thuật toán "hoàn hảo", tôi luôn hướng về phương pháp phỏng đoán. Bạn có một số tiêu chí trực tiếp hoặc gián tiếp bất hòa với nhau, cùng với không gian tìm kiếm rất phức tạp. Tìm kiếm một giải pháp tối ưu có thể không khả thi hoặc thực tế, nhưng với một chút điều chỉnh, một phương pháp thống kê có thể thực hiện rất tốt phần lớn thời gian.

Giải quyết các tiêu chí thứ ba và thứ tư của bạn: "Bản đồ không cần phải mở rộng."

Tôi sẽ đảm bảo ngay từ đầu bạn có quá nhiều nút (nghĩa là: dày đặc như một lưới điều hướng để tìm đường dẫn). Điều này làm cho việc tính toán khoảng cách đến những người chơi khác đắt hơn (không phải các nút lân cận trực tiếp), nhưng đây không phải là quá trình sẽ xảy ra nhiều hơn một lần mỗi vòng (tôi giả sử). Phần thưởng của việc này là bạn có thể sử dụng thư viện điều hướng được cuộn sẵn cho hầu hết các hoạt động của mình. Ngoài ra, điều này sẽ tôn trọng việc vượt qua các chướng ngại vật một cách công bằng trong đó khoảng cách euclide có thể không (người chơi trong một mê cung có thể được đặt gần nhau hơn trong một trường mở)

Tính toán heuristic cho các đặc điểm sinh sản mong muốn của bạn:

Sau khi đặt ngẫu nhiên tất cả người chơi, hãy tính hiệu suất của các nút xung quanh dựa trên tiêu chí của bạn (khoảng cách từ người chơi khác, khoảng cách đến sinh sản, v.v.) Trọng số của các giá trị của bạn có thể được điều chỉnh và được điều chỉnh thành phi tuyến để điều chỉnh chính xác hiệu suất bạn muốn trong trường hợp lý tưởng được vệ sinh (lưới hình chữ nhật phẳng không có chướng ngại vật) và hiệu suất sẽ tương tự khi bạn thêm thế giới trở lại. Từ đó bạn có thể quyết định có bao nhiêu nút để tìm kiếm, ngưỡng nào để di chuyển điểm bắt đầu và có bao nhiêu lần lặp bạn muốn thực hiện trước khi hoàn thành việc sinh sản và bắt đầu trò chơi.


0

Nếu sân chơi là một hình xuyến tôpô (nghĩa là một hình chữ nhật trong đó đi ra khỏi giới hạn thì có nghĩa là đi vào phía đối diện), đây có thể là một câu trả lời hay: người chơi jsinh ra ở x = (pjW/N) mod W, y = (qjH/N) mod Hđâu, W,Hkích thước của hình chữ nhật Nlà gì số lượng người chơi, và p,qlà số nguyên được xác định; chúng khác biệt, (có lẽ) tương đối nguyên tố, và không quá xa sqrt(N). Các điểm sinh sản tạo thành một mô hình 'hình nền' xiên.

Điều đó cho rằng người chơi chỉ sinh ra ở đầu trò chơi. Nếu chúng sinh sản muộn hơn, tôi đoán bạn muốn đặt chúng càng xa càng tốt từ vị trí hiện tại của bất kỳ người chơi nào - tại một đỉnh của sơ đồ Voronoi được xác định bởi những người chơi khác.


0

Làm thế nào về:

Mỗi người chơi được bao quanh bởi một hộp không sinh sản (hoặc vòng tròn).

Như trong, có một hình vuông có kích thước nhất định xuất hiện xung quanh mỗi người chơi và theo dõi người chơi đó xung quanh - không người chơi nào khác có thể sinh sản trong hình vuông đó.

Những ô vuông này chỉ ảnh hưởng đến sinh sản và không có bất kỳ chuyển động nào khác trong trò chơi.

Điều này hoạt động với sinh sản chỉ ban đầu hoặc sinh sản liên tục.

(Dấu chấm chỉ người chơi và màu xanh lá cây biểu thị khu vực sinh sản có thể có cho người chơi mới)

Kích thước bản đồ không phải tăng tỷ lệ thuận với số lượng người chơi

Để giải quyết vấn đề này, bạn có thể thực hiện một trong hai điều sau: (hoặc cả hai)

  • Giảm kích thước của các hộp không sinh sản dựa trên số lượng người chơi.
  • Cho phép tối đa X người chơi kẻ thù sinh sản trong mỗi hộp.
    • Con số này có thể tăng khi bạn đi (bắt đầu từ 0).
    • Biến thể 1: có hộp không sinh sản nhỏ hơn và hộp sinh sản giới hạn lớn hơn.
    • Biến thể 2: xác suất trọng lượng tùy theo mức độ sinh sản mới của người chơi này (nếu bên trong hộp) - có thể khó thực hiện hiệu quả.
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.