Ang pagsasagawa ng random spawn points fair?

inappropriateCode 09/11/2017. 9 answers, 4.496 views
game-design level-design

Kung ang lahat ng mga manlalaro ay spawned sa random na mga posisyon sa parehong distansya mula sa katabi ng mga manlalaro, ang bilang ng mga manlalaro ay magiging proporsyonal sa posibilidad ng kanilang mga posisyon ng mga itlog na hindi makatarungan. Ang malalapit na manlalaro ay nagsisilbi sa gitna ng mapa, mas malamang na makatagpo sila ng iba pang mga manlalaro at mas malamang na sila ay mabuhay, kumpara sa mga manlalaro sa gilid ng mapa. Ipagpalagay na ang lahat ng manlalaro ay binubuo ng parehong oras.

Mayroon bang isang paraan upang mai-hugis ang mga punto ng itlog ng isda, o baguhin ang mapa, upang:

  1. Ang lahat ng mga manlalaro ay may isang limitadong bilang ng mga katabi foes.
  2. Ang lahat ng mga manlalaro ay may pantay na pagkakataon na makatagpo ng mga kalaban.
  3. Ang laki ng mapa ay hindi kailangang dagdagan ang proporsyonal sa bilang ng mga manlalaro.
  4. Ang mga limitasyon na ito ay hindi ipinapatupad sa di-makatwirang espasyo.

Ang sagot ay hindi kailangang maging perpekto, mas malinaw kaysa sa alternatibo. Out of the box thinking welcome.

5 Comments
10 Zibelas 07/28/2017
Mga itlog sa isang bilog?
1 inappropriateCode 07/28/2017
@ Zibelas Tradisyonal na diskarte, ngunit lumalabag sa kinakailangan 3, at may maraming mga manlalaro na ito ay lumilikha ng isang malaking mapa at walang laman na loob.
4 Zibelas 07/28/2017
Depende ito sa iyong uri ng laro. (2D / 3D, respawn / huling tao nakatayo, atbp) Perpektong itlog ng isda ay sa kasong iyon ay posible lamang sa isang mundo ng hugis ng bola (higit pang mga manlalaro, malalaki na itlog ngunit maaari mong garantiya mayroon silang lahat ng parehong distansya). Sa isang 2D mundo na may mga nakapirming mga hangganan ikaw ay palaging mas kaunting mga manlalaro dahil wala kang lugar upang i-spawn ang mga ito. Kung ang isang 3D game nito, maaari kang magkaroon ng maramihang mga layer.
1 RothX 07/28/2017
Sa tingin ko makakatulong ito upang malaman kung anong uri ng laro ang iyong ginagawa. Ito tunog tulad ng isang uri ng laro ng digma, ngunit ano ang mga detalye? Ito ba ay tagabaril? Nagsisimula ka ba sa lahat ng iyong mga armas, o kailangan mo bang tuklasin at maghanap ng mga bagay? Ano ang kondisyon ng tagumpay? Gaano katagal inaasahan ang isang tugma na tumagal?
3 Jan 'splite' K. 07/28/2017
Hindi para sa buong sagot, ngunit sa palagay ko lahat ay sinusubukan para sa "makatarungang at balanseng itlog ng isda" na ... ay hindi masaya. Tumingin sa napakahusay na PUBG (at iba pang Battle Royale) na nagpapalaganap: ang mga manlalaro ay maaaring "mag-iikot" (magaling, tumalon at mag-land ...) kahit saan kahit saan gusto nila - kung gusto mo ang kontrahan at drama, pipiliin mo ang lugar kung saan ang pinakamaraming player na lupa / Hight panganib hight gantimpala, ngunit lamang kung nais ng player na ito. Maaari kang mapunta sa isang lugar sa gubat, mayroon kang oras upang ihanda ang iyong sarili - mababa ang panganib mababa gantimpala ngunit ang ilang mga manlalaro ay maaaring mas gusto ito (tulad ng sa akin, halimbawa;)). HINDI nito random, nito sa pamamagitan ng mga manlalaro pagpili.

9 Answers


Philipp 07/28/2017.

Hayaan ang mga manlalaro na piliin ang kanilang mga lokasyon sa pagsisimula ng kanilang sarili.

Sa simula ng laro, umikot ang lahat ng mga manlalaro sa gitna ng mapa, ngunit walang anumang paraan na saktan ang iba pang mga manlalaro. Pagkatapos ay magkakaroon sila ng kikilos at kumuha ng mga paraan upang makisali sa bawat isa (magtayo ng base, kunin ang isang sandata, magtipon ng mga mapagkukunan, atbp.)

May alinman sa isang bit ng swerte o mapa kaalaman na kasangkot sa paghahanap ng isang mahusay na simulan ang lokasyon ng maaga (depende sa kung gumamit ka ng pamamaraan o mga mapa ng kamay). Ngunit kung kailan at kung saan manirahan ay kadalasang isang madiskarteng desisyon. Ang pag-deploy ng maaga ay nagbibigay sa iyo ng oras na kalamangan, ngunit inilalagay ka sa isang mapanganib na posisyon. Ang pagpili ng iyong base ay maingat na inilalagay ka sa likod sa maagang laro, ngunit maaaring maging isang pangwakas na kalamangan sa kalagitnaan at late na laro.

5 comments
14 Shashimee 07/28/2017
+1 para sa paggamit ng sistema ng paggamot ng gutom na Mga Laro 1.
3 Philipp 07/28/2017
@Shashimee Tunay na naniniwala ako na nakita ko muna ang pamamaraang ito sa Anno 1602. Naniniwala rin ako na ang ilan sa mga naunang laro ng C & C ay nagkaroon na opsyonal na opsyon sa laro ng multiplayer (ngunit hindi ako sigurado kung naaalala ko ito nang tama).
3 Zibelas 07/28/2017
@ Philhipp MULE para sa commodore 64 sa paligid ng 15 taon mas matanda at hayaan mong pumili pati na rin ang iyong mga posisyon :)
Dent7777 07/28/2017
Pagkatapos ay tatakbo ka sa isyu kung saan ka sinusundan sa iyong itlog ng itlog. Ito ay maaaring, siyempre, ay nais na mekaniko ng laro, ngunit maaari rin itong maging lubos na nakakabigo at hindi isang bagay na magpasya kang gusto mo sa iyong laro. Ang isang magandang ideya ay ang magkaroon ng mga character spawn invisible at manlalaro-banggaan-libre, at hanapin ang kanilang base bago simulan ang laro.
Kroltan 07/28/2017
Iyon ang pamamaraan na ginagamit ng "Vampirism" at "Tree Tag" na linya ng mga custom gamemodes sa Warcraft 3. Pinakamahusay na gumagana ito sapagkat ang lahat ng mga manlalaro ay magkakaugnay (hindi bababa sa simula) at ang kalaban na koponan ay inilabas mamaya.

Theraot 07/28/2017.

Pag-unawa sa mga kinakailangan

  1. Ang lahat ng mga manlalaro ay may isang limitadong bilang ng mga katabi foes.

Una, pinag-uusapan natin ang tungkol sa mga puntirya ng mga manlalaro, hindi ang kasalukuyang posisyon ng mga manlalaro sa isang partikular na punto sa laro. Just getting that out of the way.

Ang katabi ay mahusay na tinukoy kapag pinag-uusapan natin ang isang graph. Maaari naming isipin ang isang mapa na kumakatawan sa navigability sa mapa - mula ngayon sa "graph".

Kung maaari ang node ay maaaring magkaroon ng pinaka-isang itlog ng isda na punto, at pagkatapos ay ang pakikipag-usap sa kanila na "katabi" ay may katuturan. Tandaan: Hindi ko maiiwasan ang mga node na magkaroon ng isang solong tira ng itlog sa pinakamaraming, para sa mga dahilan na magiging maliwanag mamaya.

Upang maitayo ang graph kailangan naming isaalang-alang ang mga bagay tulad ng mga pader, tulay, hagdanan, mga puntos ng teleportasyon, o kahit isaalang-alang ang puwang ng paglipad kung may maaaring maging manlalaro na maaaring lumipad. Ang bawat node ay kumakatawan sa isang mapapasukang lokasyon; Ang bawat koneksyon ay kumakatawan sa isang posibleng kilusan.

Tandaan: alam ang sukat at hugis ng mga node, at magtrabaho kasama ang talagang katabi node. Huwag isaalang-alang ang mga node isang punto. Huwag isaalang-alang ang mga koneksyon na may haba. Gayundin, gumamit ng mga node ng convex.

Ang graph ay maaaring precompiled (ang mapa ay nilikha ng isang taga-disenyo); kung hindi man, maaari itong malikha sa mabilisang kung ang mapa ay nabuo nang random.

  1. Ang lahat ng mga manlalaro ay may pantay na pagkakataon na makatagpo ng mga kalaban.

Magkakaroon ako ng mga manlalaro ay iba pang mga manlalaro. Again, just getting that out of the way.

Ipagpalagay na ang bawat manlalaro ay gumagawa ng isang random na lakad, ang posibilidad ng paghahanap ng isang player sa isang naibigay na punto - sa isang patag na espasyo, libre ng mga obstacles - ay bibigyan ng isang (Gaussian) na pag-andar ng distansya sa spawn point - mula ngayon function ".

Dahil nagtatrabaho kami sa graph, sa halip ay i-annotate ang mga halaga sa graph.

  1. Ang laki ng mapa ay hindi kailangang dagdagan ang proporsyonal sa bilang ng mga manlalaro.

Kung kami ay nagkaroon ng pagpilit na magkaroon ng isang itlog ng itlog ng isda bawat node, pagkatapos ay upang magdagdag ng higit pang mga manlalaro ay kailangan namin ng mas maliit na node. Kung magpasya kami ang graph bago malaman namin kung gaano karaming manlalaro ang magkakaroon kami, maaaring kailangan naming subdivide node para sa partikular na laro.

  1. Ang mga limitasyon na ito ay hindi ipinapatupad sa di-makatwirang espasyo.

Hindi ko nais na magdagdag ng mga hadlang upang malutas ang problema. Au contraire , kailangan ko upang magtrabaho arround ang obstacles. Kung wala sila doon, ang pagpapatupad ay magiging mas simple.


Solusyon

Sinusubukan naming ilagay ang mga puntos sa N na mga spawn na ang pagkakataong makatagpo ng isa pang manlalaro sa lahat ng mga itlog ng itlog ay pantay.

Maaari naming makakuha ng isang sukatan ng error bilang ang kabuuan ng mga pagkakaiba ng mga pagkakataon na ang ibig sabihin ng mga pagkakataon. Sinusubukan naming i-minimize na (sa katunayan, gusto naming gawin itong 0).

Upang gawin ito, kailangan nating malaman ang pagkakataon na makatagpo ng isang manlalaro sa bawat node ng graph.

Upang kumpirmahin ang pagkakataong iyon, magsimula sa zero. Dahil ang pagkakataon ng paghahanap ng isang manlalaro sa anumang ibinigay node, kapag walang mga manlalaro, ay zero. At pagkatapos, para sa bawat itlog ng isda, lumakad sa graph na idaragdag sa annotated na pagkakataon ang halaga ng function para sa kasalukuyang point ng itlog ng isda.

Tandaan 1: Ang pagdagdag o paglipat ng isang itlog ng itlog ay makakaapekto sa posibilidad na makatagpo ng isang player para sa lahat ng mapa.

Tandaan 2: Ang pagsubaybay sa kung magkano ang bawat punto ng itlog ay nakakaapekto sa pagkakataon, ay gagawing mas madali ang mga bagay.

Tandaan 3: Dahil ang mga node ay may sukat, gaano kalapit ang maaari mong makuha sa error = zero ay depende sa laki ng mga node. Maaari kang maging mas tumpak sa pamamagitan ng pagtatrabaho sa mga hanay ng mga halaga (minimun at maximun na pagkakataon, depende sa partikular na posisyon ng mga puntos ng mga itlog sa loob ng node).

Ilagay ang mga puntirya ng spawn nang random, pagkatapos ay simulan ang paglipat ng mga ito sa paraan na ang error ay nagiging mas maliit (isaalang-alang ang isang posibleng kilusan, at kung ang sanhi ng error upang bawasan panatilihin ito, kung hindi man ibalik ito). At patuloy na gawin ito hanggang hindi namin mapapabuti ang anumang karagdagang (masyadong maraming mga pag-ulit na walang pagpapabuti, o error ay zero).

Tandaan 4: Kapag gumagalaw ang isang itlog ng itlog, maaari mong gamitin ang pagkakataon na makatagpo ng isang manlalaro (maliban sa spawn point mong ilipat) upang sapalarang pumili ng isang bagong posisyon para sa isang itlog ng itlog tulad ng posisyon na may posibilidad na makatagpo ng isang player na mas malapit sa ang ibig sabihin ay mas malamang. Ipinaaalala ko sa iyo na ang paglipat ng itlog ng itlog ay makakaapekto sa ibig sabihin.

Ang inaasahang pag-uugali ay na ang mga itlog ng isda na masyadong malapit na magkakasama sa paglipat at mga marka ng isda na napakalayo ay mas malapit. Hanggang umabot sila sa punto ng balanse.

Kung sa anumang naibigay na pag-ulit mayroon kang maraming mga puntos ng mga itlog sa isang node (na kung saan ay malamang na hindi, dahil sila ay dapat na may posibilidad na ilipat bukod, ngunit posible kung mayroon kang sapat na malalaking node), hatiin ang node at magpatuloy paglutas. Ang alinmang dibisyon ng node ay may bisa.


Ang solusyon sa itaas ay lalapit sa error = zero, ngunit hindi garantisadong maabot ang zero. Maaari mong gawin ay tumakbo ito hanggang sa ito ay umabot sa isang lokal na minimum ... Sa teorya, maaari mong pagkatapos ay hatiin node upang gawin itong eksakto zero ... Ngunit, iyon ay katumbas ng pagsasaayos ng mga coordinate points spawn!

Subukan ang simulate annealing upang ilipat ang point spawn sa loob ng node. Kahit na, totoo lang, marahil ay hindi katumbas ito sa pag-abala sa gayong antas ng detalye.


Gusto kong gawin itong malinaw na ang resulta para sa isang flat na mapa ng libreng mga obstacles ay hindi pantay-pantay na ibinahagi points. Sa halip, kung ang mga mapa ay may mga gilid (ibig sabihin, kung hindi ito bumabalot sa paligid), pagkatapos ay magkakaroon ng higit pang mga spawn point na mas malapit sa mga gilid, ito ay dahil ang mga punto sa sentro ay maaaring maabot mula sa higit pang mga direksyon, pagdaragdag ng pagkakataon ng encountering iba pang mga manlalaro doon. Sa gayon, ang mga punto ay higit pa sa malapit sa sentro upang makabawi.


Zibelas 07/28/2017.

Depende ito sa kung anong uri ng laro na gusto mong likhain at kung gaano kabilis ang bilis nito. Ang perpektong pantay-pantay na pamamahagi ay posible sa isang globo tulad ng mundo (halimbawa Planetary Annihilation). Ngunit ito ba ay isang makatarungang pagpipilian sa iyong laro? Kahit na ang lahat ng mga tao ay nagpapaputok sa pantay na distansya, ang ilang mga spawns ay maaaring magkaroon pa ng mas mahusay na kalamangan.

  • Mas malapit / mas mahusay na mga armas sa hanay / higit pang mga mapagkukunan
  • Mas mahusay na takip / mas nakatagong / pangkalahatang-ideya
  • ang 'daloy' ng mga manlalaro, ang ilang mga lugar ay mas kaakit-akit kaysa sa iba (isipin ang isang buong mapa ng kagubatan na may isang solong bahay sa isang lugar, anuman ang bahay na iyon, magandang pagkakataon na ang mga tao ay nagsisiyasat dito)

Ang iyong mapa ba ay isang nakapirming isa o isang pamamaraan na binuo ng isa? At kailanman sinubukan upang i-play Edad ng Empires na may 8 mga tao sa isang tao 2 mapa? Ito ay hindi posible upang masukat ang mga manlalaro walang katapusan na walang pagsasaayos sa laki ng mapa. Kahit na ang isang hindi makatarungang placement sa simula ay maaaring magdala ng maraming dynamic sa laro (tingnan ang serye ng Worm). Walang sinuman ang nagreklamo kung ikaw ay nagmumula sa isang malaking kumpol, hangga't ang iyong isang ikot na alyansa sa isa pang manlalaro ay tumagal o ikaw ay hindi ang pinaka-surviving worm pagkatapos ng unang round.

(Magdaragdag ako ng ilang higit pang mga halimbawa kung alam ko ang higit pa tungkol sa iyong uri ng laro)


Aric Fowler 07/28/2017.

Pagpunta para sa isang bagay na hindi iminungkahi sa ngayon: Gawin ito nang walang sentro ng mapa. Ang ibig kong sabihin sa pamamagitan ng ito ay ang mga gilid ng mapa ay sumali sa kabaligtaran. Ito ay magkakaroon ng maraming gawain sa programming, ngunit sa pagsasanay maaari itong gawing ulit ang antas nang walang hanggan kung maglakad ka sa isang direksyon. Nangangahulugan ito na walang sentro, at ang isang random na mga posisyon ng spawn ay walang mga pakinabang o disadvantages.

Maaari mong gawin ito sa pamamagitan ng paggawa ng isang patag na mapa na parisukat, at pagsali sa bawat gilid sa isang kopya ng kabaligtaran na gilid. Kapag ang isang manlalaro ay naglalakad sa gilid, sila ay ipinapadala nang walang kaalaman ng manlalaro sa kabaligtaran ng gilid. Siyempre, theoretically hindi mo magagawang makita ang mga manlalaro sa kabilang panig ng hangganan. Upang ayusin ito, lumikha ng mga panggagaya ng manlalaro na lumilitaw sa paglalakad sa kabilang panig ng hangganan upang makita mo ang mga ito, at kapag tumakbo ka patungo sa mga ito ay tumawag ka sa kabuuan at ang aktwal na manlalaro ay nakatayo kung saan ang dummy ay.

Bilang kahalili, ang buong mapa ay maaaring umiiral sa labas ng isang globo, gayunpaman ito ay gumagawa ng mga coordinate na mahirap para sa pamamayani.

1 comments
2 Avery 07/29/2017
O gumawa ng isang mapa na, mabuti, sa gitna, maaari kang makakuha ng hunted o manghuli ng mas madali, at maaari ring mahanap ang loot mas madali, ngunit muli, ikaw ay mas posible upang makakuha ng hunted tulad nito, at sa mga di-gitnang lugar, gumawa ito upang ang mga manlalaro ay mas malamang na makahanap ng iba pang mga gumagamit at pagnanakaw, kaya kung gusto nila ng higit pang pagnakawan ay kailangan nilang pumunta sa sentro, kung nais nilang mabuhay na mas mahaba, kakailanganin nilang manatili kung nasaan sila. Kaya karaniwang ginawa ang kawalan ng random spawns isang kalamangan.

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

Narito ang ilang mga posibleng solusyon:

  • Spawn random sa circumference ng bilog
  • Spawn random sa radii (hindi pang-spawning upang isara ang gitna)
  • Magdagdag ng isang random na bahagi ng oras ng mga itlog ng isda

Diagram ng mga mekanismo ng pang-spawning

2 comments
Zanon 07/28/2017
Ang pangalawang larawan ay isang mahusay na pagpipilian. Nalulutas nito ang problema ng unang pagpipilian kung saan alam ng manlalaro kung saan mismo matatagpuan ang lahat ng iba pang mga manlalaro.
Avery 07/29/2017
@ Zanon kahit na may mga manlalaro ng unang imahe ay maaaring (at malamang ay) ilipat ang layo bago dumating ang isang tao doon. Ang pangalawang isa ay magiging sanhi ng di-makatarungang mga spawns, ang ilan ay malapit sa iba. Marahil ang isang bagay na tulad nito kung saan mayroong 2 lupon at ang pagkakaiba sa pagitan ng mas maliit at mas malaki ay kung saan sila ay nagsisipagsama, kaya katulad ng pangalawang larawan, ngunit mas mababa sa gitna.

MrCranky 07/28/2017.

Sa panimula naniniwala ako na ito ay isang problema sa pamamahagi ng graph. Ipagpalagay na ang isang sitwasyon sa deathmatch (bawat iba pang manlalaro ay isang kaaway), kailangan mong i-modelo ang iyong mga mapa bilang isang interconnected graph, at subaybayan kung aling node sa graph ang bawat manlalaro ay pinakamalapit sa. Hindi lahat ng node ay kailangang maging isang itlog ng itlog, ngunit kailangan mo ang komplikadong graph sa mga distansya ng modelo sa pagitan ng mga puntos ng mga itlog ng isda. Sa oras ng mga itlog ng isda, pagkatapos ay iterating mo ang graph at pagmamarka ng bawat spawnable-node batay sa kung ito malapit node ay may mga manlalaro.

Ang ideal na node ay may:

  • Walang mga manlalaro na kasalukuyang nasa loob nito
  • Higit sa zero manlalaro sa mga node malapit (ilang maliit na bilang ng mga link ang layo)

Isipin na ang iyong graph ay na-regularized, at ikaw ay pagguhit ng concentric zone sa paligid ng bawat node. Kukunin mo ang node kung ang mga panloob na zone ay may mga manlalaro sa kanila, at gantimpalaan ang mga node na may mga manlalaro sa tamang distansya. Gusto mong hikayatin ang panghihibo na malapit sa iba pang mga manlalaro na maaari silang makahanap ng interes nang mabilis, ngunit hindi napakalapit na sila ay kumuha ng jumped bago sila nagkaroon ng pagkakataon na makuha ang kanilang mga bearings.

Kakailanganin mong dagdagan ang sukat ng mapa habang lumalaki ang bilang ng mga manlalaro, ngunit ang k hindi dapat maging 1 o higit pa. Ang iyong pinakamasama kaso ay pa rin na ang bawat node sa graph ay may hindi bababa sa isang manlalaro - kung saan ang kaso ay walang magandang nodes na gagamitin, at ikaw ay may upang magdusa na kaso at mga itlog ng isda ng isang manlalaro alam na sila lupain sa ibabaw ng isa pa. Ang pagmamarka ng algorithm ay dapat pa ring timbangin ang mga node upang makapagkulekta ka sa node kasama ang fewest iba pang mga manlalaro.

Tandaan na ang iyong graph ng mapa ay dapat na maingat na binuo, na may kaalaman sa mapa, ruta nito, anumang mga chokepoint, at effective distansya sa pagitan ng mga punto ng node, hindi actual distansya. Tulad ng sa, gamitin ang isang bagay tulad ng sinusukat oras upang dumaan sa pagitan ng mga node sa halip na distansya, upang account para sa mas mahirap na lupain. Kailangan mo ring i-account para sa open-ness vs cover; ang dalawang node ay maaaring pisikal na malayo, ngunit dahil ang mga ito ay napaka-bukas, pangingitlog ng isang player sa bawat node ay maaaring nangangahulugan na sila ay pantay bilang mahina bilang kung gusto mo spawned ito sa tabi ng bawat isa.

Mga Pagpipino:

  • Magdagdag ng isang pansamantalang parusa upang puntos kung ang isang manlalaro ay may spawned sa na node kamakailan, upang ihinto chokepoints mula sa pagbuo (isang walang katapusang stream ng mga manlalaro na nagmumula sa parehong direksyon at pagkuha ng kinuha off)
  • Magdagdag ng randomness sa loob ng hanay (hal. Piliin ang pinakamahusay na 3 node at pagkatapos ay random na pumili sa pagitan ng mga ito na may pantay na posibilidad) upang makakuha ng mas maraming pagkakaiba-iba.
  • Magdagdag ng paunang timbang sa gitna ng mapa (o ang pinaka-kagiliw-giliw na mga punto) kapag walang sinuman ang nag-spawned, upang umikot ka sa mga kilalang lugar, kahit na ang bawat node ay may marka ng zero dahil walang iba pang mga manlalaro ang naroroon.

Aaron 07/28/2017.

Ang ilang mga iba pa ay napag-usapan na ang mga limitasyon ng iyong mga kinakailangan (ang mapa ay kailangang i-scale sa ilang mga punto upang maiwasan ang pagsisikip, atbp), at sa huli ay natuklasan sa katotohanan na malamang ay hindi isang "perpektong" placement algorithm. Kapag may malamang na walang "perpektong" algorithm, palagi akong tumingin sa heuristics. Mayroon kang ilang pamantayan na direkta o hindi direkta sa bawat isa, kasama ang isang napaka-kumplikadong espasyo sa paghahanap. Ang paghahanap ng isang pinakamainam na solusyon ay maaaring hindi magaya o praktikal, ngunit may isang maliit na tuning, ang isang istatistika na diskarte ay maaaring gumaganap nang napakahusay sa karamihan ng oras.

Pag-address sa iyong ikatlo at ikaapat na pamantayan: "The map shouldn't have to expand."

Tiyakin ko sa simula mayroon kang sobrang kasaganaan ng mga node (ibig sabihin: bilang siksik bilang isang mesh ng pag-navigate para sa landas-paghahanap). Ginagawa nito ang pagkalkula ng distansya sa iba pang mga manlalaro na mas mahal (hindi direkta sa kalapit na mga node), ngunit hindi ito isang proseso na mangyayari nang higit sa isang beses bawat round (akala ko). Ang isang bonus ng ito ay maaari mong gamitin ang isang pre-pinagsama nav library para sa karamihan ng iyong mga pagpapatakbo. Bukod pa rito, igagalang nito ang traversal sa paligid ng mga obstacle sa isang makatarungang paraan kung saan ang euclidean distansya ay maaaring hindi (mga manlalaro sa isang maze ay maaaring ilagay mas malapit magkasama kaysa sa isang bukas na patlang)

Kalkulahin ang heuristics para sa iyong ninanais na mga katangian ng spawn:

Pagkatapos ng random na paglalagay ng lahat ng mga manlalaro, kalkulahin ang pagganap ng nakapalibot na mga node batay sa iyong mga pamantayan (distansya mula sa iba pang mga manlalaro, distansya upang umikot, atbp) Ang mga timbang ng iyong mga halaga ay maaaring tweaked, at manipulahin upang maging nonlinear upang tune eksakto ang pagganap gusto mo sa isang sanitized ideal na kaso (flat hugis-parihaba grid na walang obstacles), at ang pagganap ay dapat na katulad kapag idinagdag mo ang mundo back in Mula doon maaari kang magpasya kung gaano karaming mga nodes sa paghahanap, ano ang threshold para sa paglipat ng isang panimulang punto , at gaano karaming mga iteration ang nais mong isagawa bago pagwawasto ang spawn at simula ng laro.


Anton Sherwood 07/29/2017.

Kung ang patlang ng paglalaro ay isang topological torus (ibig sabihin, isang rektanggulo kung saan ang "paglabas ng mga hangganan" ay nangangahulugang pagpasok sa kabaligtaran), malamang na ito ay isang magandang sagot: ang manlalaro ay x = (pjW/N) mod W, y = (qjH/N) mod H sa x = (pjW/N) mod W, y = (qjH/N) mod H , kung saan ang W,H ay ang sukat ng rektanggulo, ang N ang bilang ng mga manlalaro, at ang p,q ay integers na matukoy; sila ay naiiba, (marahil) medyo kalakasan, at hindi masyadong malayo mula sa sqrt(N) . Ang mga itlog ng itlog ay bumubuo ng isang pahilig na 'wallpaper' na pattern.

Iyon ay inaakala na ang mga manlalaro ay umikot lamang sa simula ng laro. Kung mamula-mula sila sa ibang pagkakataon, hulaan ko na gusto mong ilagay ang mga ito hangga't maaari mula sa kasalukuyang posisyon ng manlalaro - sa tuktok ng diagram ng Voronoi na tinukoy ng iba pang mga manlalaro.


NotThatGuy 07/31/2017.

Paano kung:

Ang bawat manlalaro ay napapalibutan ng isang hindi pang-spawning na kahon (o bilog).

Tulad ng sa, mayroong isang parisukat ng isang tiyak na sukat na spawns sa paligid ng bawat manlalaro at sumusunod na player sa paligid - walang iba pang mga manlalaro ay maaaring magluluha sa loob na parisukat.

Ang mga parisukat na ito ay nakakaapekto lamang sa pag-aanak at hindi anumang iba pang kilusan sa panahon ng laro.

Ito ay gumagana sa alinman sa unang-lamang na pangingitlog o tuloy-tuloy na pangingitlog.

(Dots ipahiwatig ang mga manlalaro at berde ay nagpapahiwatig posibleng mga lugar ng spawn para sa mga bagong manlalaro)

Ang laki ng mapa ay hindi kailangang dagdagan ang proporsyonal sa bilang ng mga manlalaro

Upang harapin ito, maaari mong gawin ang isa sa dalawang bagay: (o pareho)

  • Bawasan ang sukat ng mga hindi nakapagpapalabas na mga kahon batay sa bilang ng mga manlalaro.
  • Hayaan ang hanggang sa X manlalaro ng kaaway na umikot sa bawat kahon.
    • Ang numerong ito ay maaaring dagdagan habang nagpapatuloy ka (nagsisimula sa 0).
    • Variant 1: magkaroon ng isang mas maliit na no-spawn box at isang mas malaking limited-spawn box.
    • Variant 2: probabilidad ng timbang ayon sa kung gaano kalapit ang bagong spawn sa manlalaro na ito (kung nasa loob ng kahon) - maaaring maging mahirap ipatupad nang mahusay.

Related questions

Hot questions

Language

Popular Tags