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

inappropriateCode 22/08/2017. 9 answers, 4.496 views
game-design level-design

Nếu tất cả người chơi được sinh ra ở các vị trí ngẫu nhiên cùng khoảng cách với những người chơi lân cận, số người chơi sẽ tỷ lệ thuận với khả năng vị trí sinh sản của họ không công bằng. Các cầu thủ gần gũi hơn sinh ra ở trung tâm của bản đồ, càng có nhiều khả năng họ sẽ gặp những người chơi khác và họ càng ít có khả năng sống sót hơn, 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 hay thay đổi bản đồ, để:

  1. Tất cả người chơi có số lượng kẻ thù liền kề hạn chế.
  2. Tất cả người chơi đều có cơ hội bình đẳng gặp phải 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 giới hạn này không được thực thi với không gian không thể vượt qua tùy ý.

Câu trả lời không phải là hoàn hảo, chỉ rõ ràng là tốt hơn so với thay thế. Ra khỏi hộp tư duy chào đón.

5 Comments
10 Zibelas 28/07/2017
Đẻ trứng trong một vòng tròn?
1 inappropriateCode 28/07/2017
@ Zibelas Cách tiếp cận truyền thống, nhưng vi phạm yêu cầu 3, và với rất 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.
4 Zibelas 28/07/2017
Nó phụ thuộc vào loại trò chơi của bạn. (2D / 3D, respawn / người đàn ông cuối cùng đứng, vv) Perfect đẻ trứng là trong trường hợp đó chỉ có thể trên một thế giới hình bóng (nhiều người chơi, đẻ trứng gần hơn nhưng bạn có thể bảo lãnh họ có tất cả cùng một khoảng cách). Trên thế giới 2D với đườ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ó chỗ để sinh ra chúng. Nếu là trò chơi 3D, bạn có thể có nhiều lớp.
1 RothX 28/07/2017
Tôi nghĩ nó sẽ giúp bạn biết bạn đang làm loại trò chơi gì. Nghe giống như một loại trò chơi chiến tranh nào đó, nhưng chi tiết là gì? Nó 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ì? Trận đấu kéo dài bao lâu?
3 Jan 'splite' K. 28/07/2017
Không phải cho câu trả lời đầy đủ, nhưng tôi nghĩ rằng tất cả mọi người đang cố gắng cho "đẻ trứng công bằng và cân bằng" mà ... không phải là niềm vui. Nhìn vào PUBG xuất sắc (và những người khác Battle Royale) sinh sản: người chơi có thể "đẻ trứng" (tốt, nhảy và đất ...) gần như bất cứ nơi nào họ muốn - nếu bạn muốn xung đột và kịch, bạn chọn nơi mà hầu hết người chơi đất / đẻ trứng. Phần thưởng rủi ro cao, nhưng chỉ khi người chơi muốn. Bạn có thể hạ cánh ở đâu đó trong rừng, bạn có thời gian để tự chuẩn bị - phần thưởng thấp có rủi ro thấp nhưng một số người chơi có thể thích nó hơn (ví dụ như tôi);). Nó không ngẫu nhiên, bởi sự lựa chọn của người chơi.

9 Answers


Philipp 28/07/2017.

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

Vào đầu trò chơi, sinh ra tất cả các cầu thủ ở trung tâm của bản đồ, nhưng không có bất kỳ phương tiện làm hại các cầu thủ khác. Sau đó, họ sẽ phải bung ra và có được các phương tiện để tham gia lẫn nhau (xây dựng một 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 tìm kiếm một vị trí bắt đầu tốt sớm (tùy thuộc vào việc bạn sử dụng bản đồ thủ công 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 cung cấp cho bạn một lợi thế thời gian, nhưng đặt bạn vào một 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 đằng 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.

5 comments
14 Shashimee 28/07/2017
1 để sử dụng hệ thống tạo phim Hunger Games 1.
3 Philipp 28/07/2017
@Shashimee Thực 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 ban đầu có đó là tùy chọn nhiều trò chơi tùy chọn (nhưng tôi không chắc chắn nếu tôi nhớ lại chính xác).
3 Zibelas 28/07/2017
@Philipp MULE cho Commodore 64 khoảng 15 tuổi trở lên và cho phép bạn chọn cũng như vị trí của bạn :)
Dent7777 28/07/2017
Sau đó bạn chạy vào vấn đề mà bạn đang theo dõi đến điểm sinh sản của bạn. Điều này có thể, tất nhiên, là cơ khí 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 cái gì bạn quyết định bạn muốn trong trò chơi của bạn. Một ý tưởng hay là có các nhân vật sinh ra vô hình và không có người chơi va chạm, và tìm căn cứ của họ trước khi bắt đầu trò chơi.
Kroltan 28/07/2017
Đó là phương pháp được sử dụng bởi các "Vampirism" và "Tree Tag" dòng của các gamemodes tùy chỉnh trên Warcraft 3. Nó hoạt động tốt nhất vì tất cả người chơi đều đồng minh (ít nhất là ban đầu) và nhóm đối lập được phát hành sau đó.

Theraot 28/07/2017.

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

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

Trước hết, chúng ta đang nói về các điểm sinh sản của các cầu thủ, không phải là vị trí hiện tại của các cầu thủ tại một điểm nhất định trong trò chơi. Just getting that out of the way.

Liền kề cũng được xác định khi chúng ta nói về một đồ thị. 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ừ giờ trở đi "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 về chúng là "liền kề" có ý nghĩa. Lưu ý: Tôi sẽ không hạn chế các nút để có một điểm sinh sản duy nhất nhiều nhất, vì các lý do sẽ rõ ràng sau này.

Để xây dựng đồ thị, chúng ta sẽ cần phải xem xét những thứ như tường, cầu, thang, điểm dịch chuyển, 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 ngang; mỗi kết nối đại diện cho một chuyển động 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 liền kề thực sự. Không xem xét các nút một điểm. Không xem xét các kết nối 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 ra bởi một nhà thiết kế); nếu không, nó có thể được tạo ra trên bay nếu bản đồ được tạo ngẫu nhiên.

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

Tôi sẽ giả định kẻ thù là những người chơi khác. Again, just getting that out of the way.

Giả sử mỗi người chơi thực hiện bước đi ngẫu nhiên, xác suất tìm 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 cung cấp bởi hàm Gauss () từ khoảng cách đến điểm sinh sản - từ giờ trở đi 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ó ràng buộc có một điểm sinh sản duy nhất trên 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 giới hạn này không được thực thi với không gian không thể vượt qua tùy ý.

Tôi không có ý định thêm chướng ngại vật để giải quyết vấn đề. Au contraire , tôi cần phải làm việc arround 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 các điểm sinh sản N sao cho cơ hội gặp phải một người chơi khác ở tất cả các điểm sinh sản đó là bằng nhau.

Chúng ta có thể nhận được một thước đo của lỗi như tổng của sự khác biệt về cơ hội cho 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 phải biết cơ hội gặp phải một người chơi trên mỗi nút của biểu đồ.

Để tính toán cơ hội đó, hãy bắt đầu bằng số không. Vì cơ hội tìm kiếm một người chơi trên bất kỳ nút nào, khi không có người chơi, là số không. Và sau đó, đối với mỗi điểm sinh sản, hãy đi biểu đồ thêm vào cơ hội được 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 một điểm sinh sản sẽ ảnh hưởng đến cơ hội gặp phải một người chơi cho tất cả bản đồ.

Lưu ý 2: Theo dõi bao nhiêu điểm sinh sản ảnh hưởng đến cơ hội, sẽ làm mọi thứ dễ dàng hơn.

Lưu ý 3: Vì các nút có kích thước, mức độ gần bạn có thể nhận được là lỗi = không 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 dãy giá trị (minimun và maximun cơ hội, tùy thuộc vào vị trí cụ thể của các điểm sinh sản trong nút).

Đặt ngẫu nhiên điểm ngẫu nhiên, sau đó bắt đầu di chuyển chúng theo cách như vậy mà lỗi trở nên nhỏ hơn (xem xét một phong trào có thể, và nếu gây ra lỗi để giảm giữ nó, nếu không thì nó sẽ trở lại). 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 lại mà không cải thiện, hoặc lỗi là số không).

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 (trừ điểm xuất hiện, bạn sẽ di chuyển) để chọn ngẫu nhiên 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 trung bình có nhiều khả năng hơn. Tôi nhắc bạn rằng việc di chuyển điểm sinh sản sẽ ảnh hưởng đến giá trị trung bình.

Hành vi mong đợi là điểm sinh sản quá gần nhau để di chuyển ra xa nhau và tạo ra các điểm quá xa nhau. 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 không chắc, vì chúng có xu hướng di chuyển ra xa nhau, nhưng có thể nếu bạn có các nút đủ lớn), hãy chia nút và tiếp tục giải. Bất kỳ bộ phận nào của nút đều hợp lệ.


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

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ẽ nó không đáng để bận tâm đến mức chi tiết như vậy.


Tôi muốn nói 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 bố đồng đều. Thay vào đó, nếu bản đồ có các cạnh (tức là, nếu nó không quấn quanh), thì sẽ có nhiều điểm sinh sản gần với các cạnh hơn, điều này là do các điểm tại trung tâm có thể đạt được từ nhiều hướng hơn, tăng cơ hội gặp phải những người chơi khác ở đó. Vì vậy, điểm xa nhau gần trung tâm để bù đắp.


Zibelas 28/07/2017.

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

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

Bản đồ của bạn có phải là bản đồ cố định hoặc bản đồ được tạo thủ tục không? Và có bao giờ thử chơi Age of Empires với 8 người trên bản đồ 2 người không? Không thể mở rộng quy mô người chơi mà không cần đ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ó 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à những con giun còn 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)


Aric Fowler 28/07/2017.

Đi cho một cái gì đó không được đề xuất cho đến nay: Làm cho nó như vậy không có trung tâm của bản đồ. Ý tô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ẽ mất rất nhiều công việc lập trình, nhưng trong thực tế nó có thể làm cho cấp độ lặp lại chính nó vô cùng 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ế hay 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 vuông, và nối mỗi cạnh vào một bản sao của cạnh đối diện. Khi một người chơi đi ra bên hông, họ sẽ bị dịch chuyển mà không có kiến ​​thức của người chơi về phía đố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 của ranh giới. Để khắc phục điều này, hãy tạo các bản sao của trình phát đó xuất hiện để di chuyển xung quanh phía bên kia của đường biên để bạn có thể nhìn thấy chúng và khi bạn chạy về phía bạn, bạn sẽ dịch chuyển và người chơi thực sự đứng ở vị trí giả.

Ngoài ra, toàn bộ bản đồ có thể tồn tại ở bên ngoài của một hình cầu, tuy nhiên điều này làm cho các tọa độ trở nên khó khăn cho việc sinh sản.

1 comments
2 Avery 29/07/2017
Hoặc tạo ra một bản đồ, ở trung tâm, bạn có thể bị săn lùng hoặc săn lùng dễ dàng hơn nhiều, và cũng có thể tìm thấy loot dễ dàng hơn, nhưng một lần nữa, bạn có thể bị săn đuổi như thế này, và ở những khu vực phi trung tâm, nó để người chơi ít có khả năng tìm thấy người dùng khác và loot, vì vậy nếu họ muốn nhiều loot họ sẽ phải đi đến trung tâm, nếu họ muốn tồn tại lâu hơn, họ sẽ phải ở lại nơi họ đang có. Vì vậy, về cơ bản làm cho bất lợi của ngẫu nhiên sinh ra một lợi thế.

dnk drone.vs.drones 28/07/2017.

Dưới đây là một số giải pháp khả thi:

  • Đẻ trứng ngẫu nhiên trên chu vi của vòng tròn
  • Đẻ trứng 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 đẻ trứng ngẫu nhiên

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

2 comments
Zanon 28/07/2017
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ả các người chơi khác.
Avery 29/07/2017
@Zanon mặc dù với người chơi hình ảnh đầu tiên có thể (và có khả năng sẽ) di chuyển đi trước khi ai đó đến đó. Thứ hai sẽ gây ra những sinh sản không công bằng, một số gần gũi với những người khác. Có lẽ một cái gì đó như thế này , nơi 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 họ đẻ trứng, như vậy giống như hình ảnh thứ hai, nhưng ít hơn đến trung tâm.

MrCranky 28/07/2017.

Về cơ bản tôi tin rằng đây là một vấn đề phân phối đồ thị. Giả sử một 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 đồ thị được kết nối với nhau và theo dõi nút nào trên biểu đồ mỗi người chơi gần nhất. Không phải mọi nút cần phải là một điểm sinh sản, nhưng bạn cần đồ thị 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, bạn sẽ lặp lại biểu đồ và ghi từng nút phát sinh 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 nào trong đó
  • Hơn 0 người chơi ở các nút lân cận (một số lượng nhỏ các liên kết)

Hãy tưởng tượng rằng biểu đồ của bạn đã được chuẩn hóa và bạn 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 thích hợp. Bạn muốn khuyến khích sinh sản gần đủ cho những người chơi khác mà họ có thể tìm thấy sự quan tâm một cách nhanh chóng, nhưng không quá gần đến nỗi họ đã nhảy lên trước khi họ có cơ hội nhận được vòng bi của họ.

Bạn will cần phải tăng kích thước bản đồ khi số lượng người chơi tăng lên, nhưng k không cần phải là 1 hoặc cao 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 đồ có ít nhất một trình phát - 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 đầu trang của người khác. Thuật toán tính điểm vẫn nên cân trọng các nút sao cho bạn sinh ra trong nút với số người chơi ít nhất.

Lưu ý rằng đồ thị 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 đồ, tuyến đường của nó, bất kỳ điểm dừng nào và khoảng cách effective giữa các điểm nút, không phải khoảng cách actual . 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, để chiếm địa hình khó khăn hơn. Ngoài ra bạn cần phải tính toán cho 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 mở, sinh ra một trình phát ở 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.

Tinh lọc:

  • Thêm một hình phạt tạm thời để ghi điểm nếu một cầu thủ đã sinh ra trong nút đó gần đây, để ngăn chặn chokepoints hình thành (một dòng vô tận của người chơi đến từ cùng một hướng và nhận được chọn)
  • Thêm ngẫu nhiên trong một phạm vi (ví dụ như 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ó được nhiều biến thể hơn.
  • Thêm trọng số ban đầu vào giữa bản đồ (hoặc các điểm thú vị nhất) khi chưa có ai xuất hiện, để bạn sinh ra ở những nơi đã biết, ngay cả khi mọi nút có điểm bằng 0 vì không có người chơi nào khác có mặt.

Aaron 28/07/2017.

Một vài người khác đã thảo luận về những hạn chế của yêu cầu của bạn (bản đồ sẽ cần phải mở rộng tại một số điểm để ngăn chặn tình trạng quá tải, vv), và cuối cùng đã lảng tránh thực tế rằng có khả năng không phải là thuật toán vị trí "hoàn hảo". Khi có khả năng là không có thuật toán "hoàn hảo", tôi luôn luôn hướng tới chẩn đoán. Bạn có một số tiêu chí trực tiếp hoặc gián tiếp với tỷ lệ cược với nhau, cùng với một không gian tìm kiếm rất phức tạp. Tì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 cách tiếp cận 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: "The map shouldn't have to expand."

Tôi sẽ đảm bảo ngay từ đầu bạn có quá nhiều nút (ví dụ: 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à một quá trình sẽ xảy ra nhiều hơn một lần mỗi vòng (tôi giả định). Một phần thưởng của điều này là bạn có thể sử dụng thư viện nav được cuộn trước cho hầu hết các hoạt động của bạn. Ngoài ra điều này sẽ tôn trọng traversal xung quanh những trở ngại một cách công bằng, nơi mà 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 lĩnh vực mở)

Tính toán chẩn đoán cho các đặc điểm đẻ trứng mong muốn của bạn:

Sau khi đặt ngẫu nhiên tất cả người chơi, tính toán 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 đẻ trứng, v.v.) Trọng số của các giá trị của bạn có thể được tinh chỉnh và thao tác phi tuyến để điều chỉnh chính xác hiệu suất bạn muốn trong một trường hợp lý tưởng được khử trùng (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 vào. Từ đó bạn có thể quyết định số nút tìm kiếm, ngưỡng di chuyển điểm bắt đầu là bao nhiêu và số lần lặp lại 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.


Anton Sherwood 29/07/2017.

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

Đó là giả định rằng các cầu thủ chỉ xuất hiện ở đầu trò chơi. Nếu chúng sinh ra sau này, 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.


NotThatGuy 31/07/2017.

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 sinh ra xung quanh mọi người chơi và theo sát người chơi đó - không người chơi nào khác có thể sinh ra 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 làm việc với hoặc chỉ sinh sản ban đầu hoặc sinh sản liên tục.

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

Related questions

Hot questions

Language

Popular Tags