Het doel van deze gids is om een eenvoudige en beginnersvriendelijke manier te bieden om het vluchten van je bots te beheersen en een basis te creëren die gemakkelijk kan worden uitgebreid en aangepast.
Als je fouten vindt of vragen hebt, neem dan contact met me op via de Gladiabots-discord.
Eerst zullen we enkele typische vluchtende modules bekijken die de meeste spelers tegenkomen wanneer ze beginnen met spelen en laten zien hoe ze eruit zouden zien in het systeem dat we zullen creëren. Dan een voorbeeld dat de wiskunde motiveert die ik gebruikte bij het kiezen van de waarden van mijn AI, gevolgd door het maken van de vluchtende module van een van mijn oudere AI's. Ten slotte geef ik enkele ideeën over dingen die kunnen worden uitgebreid om deze module consistenter te maken.
Gemeenschappelijke beginnersmodules
De eerste vluchtende modules die de meeste spelers tegenkomen, lijken op de onderstaande.
Ze geven een duidelijk beeld van de voorwaarden en gevolgen en zijn geweldig bij het debuggen. Voor mij werden ze moeilijk om aan te sleutelen, en ik kon er geen "gevoel" voor krijgen.
Het tegensysteem
De methode die ik gebruik, kent een waarde toe aan dingen die mij schade toebrengen of zullen doen. Wanneer een bepaalde hoeveelheid schade wordt berekend, beginnen we ons terug te trekken.
De beginnersmodules opnieuw maken
We zullen de hierboven getoonde modules opnieuw maken om te laten zien hoe dit systeem werkt, te beginnen met de linkermodule.
We gebruiken teamteller E voor het opslaan van waarden. Zolang het niet wordt gebruikt voor iets dat meerdere tics overschrijdt of dat u een waarde toekent voor deze module en deze later gebruikt, kunt u het vrijelijk ergens anders gebruiken.
Deze code heeft 3 kolommen. De eerste set teamteller E op het aantal bots dat mij aanvalt, het is belangrijk dat het knooppunt dat de waarde instelt als eerste wordt uitgevoerd. De tweede kolom controleert of ons schild lager is dan 50%, zo ja, verhoogt E met 3. De derde kolom controleert of teamteller E groter is dan of gelijk is aan 3, in welk geval we vluchten voor alle vijanden die ons aanvallen.
Als we worden aangevallen door 3 of meer bots of minder dan 50% schild hebben, resulteert dit in een terugtrekking van alle vijanden die ons aanvallen.
Het rechter voorbeeld is hetzelfde als de afbeelding hierboven. Hier beginnen de mogelijkheden van dit systeem zichtbaar te worden, waarbij de teller met één wordt verhoogd als aan een bepaalde voorwaarde is voldaan, zoals te zien is in de tweede kolom.
Statistieken en wiskunde
Voordat we verder gaan, hebben we enkele botstatistieken nodig, zodat we kunnen proberen een aantal benaderingen te doen en onze waarden te kiezen. Alle statistieken zijn afkomstig uit de bot klassen sectie van de Gladiabots-wiki. Een tic is een spelbeurt, er zijn 4 tics voor elke seconde.
Testscenario
Stel dat je aanval naar een vijandige bot loopt en deze begint te vuren zodra je het middenbereik betreedt. Als je je onmiddellijk terugtrekt bij het binnengaan van een mid-range vijandelijke aanval, heeft de vijand de tijd om 5 salvo's naar je bot te vuren, elk met 3×2 schoten. Dit zijn 30 kogels die elk 300 schade aanrichten en een kans van 15% hebben om te raken. Dit leidt tot 30 * 300 * 0.15 = 1350 gemiddelde schade. Een aanval heeft 3000 in het schild, dus dit is niet te ver van de helft van je schild.
De module maken
Meestal zijn de aanvalsbots die je tegenkomt niet op middellange afstand, ervan uitgaande dat de gemiddelde afstand tot een vijandelijke aanvalsbot ongeveer halverwege de lange afstand is, kan hij 2.5 salvo's afvuren, wat gemiddeld 675 schade is, die ik heb afgerond op ⅕ van het volledige schild. Dus als 5 vijanden op me schieten, vlucht ik zelfs als ik volledig schild ben.
Nu rekening houdend met schild, zagen we dat we een enigszins vloeiende overgang kunnen doen als we de schildknooppunten afzonderlijk toevoegen.
Als we naar een voorbeeld kijken, laten we zeggen dat we 33% schild hebben, dit zorgt ervoor dat de 3 bovenste schildknooppunten worden geactiveerd, E heeft de waarde 3 als er geen vijanden ons aanvallen. Als nu 2 vijanden ons halverwege de lange afstand aanvallen, ervan uitgaande dat ze elk 2.5 salvo's zouden afvuren, zouden we gemiddeld 1350 schade oplopen, dat is 350 gezondheidsschade als het schild weg is.
Zowel hier als bij het afronden van 675 schade aan ⅕ van mijn schild, ben ik optimistisch geweest over de schade die ik zal oplopen. Dit heeft voor mij gewerkt, maar kan verschillen afhankelijk van de teamsamenstelling en de rest van de AI.
Er zijn echter tegenstanders die ervoor zorgden dat mijn bots bijna elke keer dat ze zouden vluchten hun gezondheid verloren. En aangezien dit (hopelijk) niet bij alle tegenstanders het geval is, willen we onze vluchtdrempel niet voor alle tegenstanders veranderen, omdat we dan zouden vluchten terwijl dat niet nodig zou zijn.
Een oplossing hiervoor is om eerder te gaan vluchten zodra we schade hebben opgelopen. Dit zal ons helpen om niet per ongeluk gedood te worden door pech, maar voor mij is het vooral een oplossing om me aan te passen aan de speelstijl van mijn tegenstander.
Hoewel dit je bots laat overleven, kan het een duidelijk effect hebben op hun vermogen om vijanden te duwen, het komt voor dat gevechten goed voor me beginnen en ik de vijanden terugduw, maar zodra mijn bots schade beginnen op te lopen, worden ze minder agressief en begint de tegenstander te duwen ik in plaats daarvan.
Omdat bots meer schade aanrichten in het midden of dichtbij, heb ik het volgende knooppunt toegevoegd om een beetje beter voorbereid te zijn op eventuele schade die van midden of dichtbij komt.
Dit werd gedaan door de teller te verhogen voor elke vijandige bot die me op korte of middellange afstand aanvalt. Verre van een perfecte oplossing en ik zal het behandelen in de toekomstige verbeteringen sectie, maar het is nuttig in die gevallen waarin meer dan één bot je aanvalt in het middenbereik.
Het laatste dat we zullen dekken is de vijandelijke sluipschutter. Het kan veel schade aanrichten, en zonder het juiste gereedschap komt deze schade uit het niets. Er zijn betere manieren om met sluipschutters om te gaan dan ik hier presenteer, maar dit systeem heeft goed gewerkt voor mij.
Het verhoogt de teller met 2 voor elke sluipschutter die ons aanvalt. Dus elke sluipschutter die ons aanvalt, is in totaal 3 punten waard. Dit komt doordat de sluipschutter ⅔ van je schild in één keer wegneemt, wat dicht genoeg bij ⅗ is. Dus als je minder dan 75% schild hebt, vlucht je altijd voor een sluipschutter die je aanvalt.
Een naar mijn mening belangrijk ding om in gedachten te houden is dat het zonder andere modules dan deze erg belangrijk is om ervoor te zorgen dat je vlucht als 2 sluipschutters je aanvallen. Als beide landen raken, verlies je ⅕ van je maximale gezondheid door alleen de sluipschutters.
Toekomstige verbeteringen
Dit systeem heeft een zwak voor teams met veel aanvallen, dit komt doordat aanvallen de mogelijkheid hebben om snel van doelwit te veranderen. Deze monteur weet niet hoeveel vijanden er in de buurt zijn, wat voor problemen kan zorgen.
Een eenvoudige oplossing die voor mij effectief is gebleken, is om E met 1 te verhogen als er 3 of meer vijandelijke aanvallen binnen bereik zijn.
Dit systeem beschouwt de 3 niet-sluipschutterbotklassen als gelijkwaardig bij het aanrichten van schade, wat volgens mij een goede benadering is, met uitzondering van de MG in het middenbereik. Als een vijandelijke MG me aanvalt in het middenbereik, stap ik meteen uit het middenbereik.
Om dit te doen, verhoog ik gewoon de teller E met 5 als ik halverwege wordt aangevallen door een vijandelijke MG. Dus mijn bot gaat terug naar de lange afstand.
Dit systeem heeft enkele gebreken die ervoor kunnen zorgen dat uw bots zich terugtrekken en opnieuw het middenbereik van de MG betreden. Een semi-oplossing is om altijd aan te vallen als een vijandelijke MG op je vuurt. Er is dan geen reden om door te gaan.
Een ander ding is dat als je het midden van een vijand betreedt en je moet vluchten, je weet dat er een mogelijkheid is dat het 5 salvo's kan afvuren als het een aanval is, of ongeveer dezelfde hoeveelheid schade aanricht als het een aanval is. MG.
Een oplossing is om alle vijanden die je aanvallen halverwege te taggen en ze getagd te houden zolang ze je aanvallen. Verhoog vervolgens E voor elke vijandige bot die is getagd en je aanvalt.
Een sluipschutterklok zou ook helpen om te voorkomen dat uw bots schade oplopen en om ze meer tijd te geven om vijanden neer te schieten, aangezien u niet voortijdig vlucht. Als je een sluipschutterklok gebruikt, moet je geen rekening meer houden met vijandige sluipschutters wanneer je E instelt op het aantal vijandelijke bots dat je aanvalt.
Dat is alles wat we hiervoor vandaag delen Gladiabotten gids. Deze handleiding is oorspronkelijk gemaakt en geschreven door Markolanen. Als we deze handleiding niet kunnen bijwerken, kunt u de laatste update vinden door deze te volgen link.