Nowy silnik meczowy

2018-09-20
Nowy silnik meczowy

Witajcie, postanowiliśmy napisać silnik meczowy zupełnie od nowa wprowadzając całkowicie odmienne podejście do samego przebiegu meczu.

1. Ciągłość akcji + sektory.

Postaraliśmy się maksymalnie wyeliminować sytuacje w których w danej minucie piłka jest na polu karnym gości a w kolejnej minucie pada gol z wolnego dla gości. Silnik stara się zachować ciągłość akcji - jeśli w 5 min widzimy Faul i czerwoną kartkę to akcja w 6 minucie rozpocznie się od rzutu wolnego a nie od losowego komentarza. Po straconej bramce pokonana drużyna zacznie od środka boisk, po interwencji Bramkarza ratującego się wybiciem poza linię boczną zobaczymy w kolejnej minucie rzut rożny.

Stworzyliśmy kilkanaście sektorów na boisku i przechowujemy informację gdzie aktualnie jest piłka i kto ją ma. Dzięki temu możemy w przyszłości wprowadzać nowe rodzaje akcji/zagrań itd.

Jesteśmy mocno ograniczeni czasem 90 minut/akcji więc mimo wszystko mogą się zdarzyć sytuacje gdzie akcja przechodzi o 2 sektory boiska w czasie 1 minuty (długie zagrania itd).

2. Proporcjonalne porównania linii taktycznych.

W trakcie meczu liczona jest siła 3 podstawowych linii: atak, pomoc, obrona. W ich skład wchodzą różni zawodnicy w zależności od ustawienia i taktyki klubowej.

Aby akcja przesunęła się dalej(lub została przerwana) siła danej formacji musi być odpowiednia wyższa niż siła przeciwnej linii. Zastosowaliśmy jednak system proporcjonalny zamiast większościowego (jeśli klub A ma 10.000 pkt Ataku a klub B 9.999 pkt Obrony nie znaczy to, że klub A będzie ciągle strzelał bramki ponieważ ma tylko 50.01% sumy obu linii. W tym konkretnym przypadku mamy praktycznie sytuacje 1:1 - raz uda się pokonać obrońców raz nie. Dzięki temu ustawienia nastawione na defensywne/ofensywę będą mieć bardzo wymierny wpływ na sytuację na boisku.

Przykładowo ustawiając się 5x3x2 mamy 5 zawodników w Obronie a więc bardzo dużą moc obrony. Jeśli przeciwnik zagra 4x4x2 to jego siła ataku, nawet ze wzmocnieniem z linii pomocy będzie dużo mniejsze niż siła obrony. W tej sytuacji przeciwnik może mieć mało sytuacji strzeleckich i musi liczyć na rzuty wolne.

3. Proporcjonalne wybieranie zawodników.

Zawodnik w momencie podania będzie wybierać gracza także na podstawie proporcji jego siły w danej formacji względem całej linii. Mając zawodników kolejno: 15 OVR, 35 OVR, 50 OVR, każdy będzie mieć szansę na otrzymanie podania analogiczną do wkładu w siłę ataku(w tym przypadku Gracz A może liczyć na otrzymanie 15% podań podczas gdy 50% podań będzie trafiało do Gracza X z 50 OVR). Dlaczego? Dlatego że Gracz 50 OVR będzie mieć większe szanse na pokonanie Bramkarza, a zawodnicy mają jeden cel - strzelić gola.

4. Bramkarz vs Strzelający

W przypadku sytuacji strzeleckiej (pole karne, strzał z dystansu, rzut wolny/karny) wybrany strzelec będzie pojedynkować się z Bramkarzem w celu ustalenia czy padła bramka czy nie. Tutaj daliśmy bonus dla Bramkarza tak by nie każda sytuacja strzelecka kończyła się bramką. W przypadku akcji głównym czynnikiem decydującym o bramce jest Gra Ofensywna podczas gdy rzuty rożne/wolne/karne rozgrywane są w oparciu o Stałe Fragmenty.

5. Wpływ umiejętności.

Postaraliśmy się by każda Umiejętność odpowiadała za coś konkretnego na boisku.

  • Gra ofensywna, Gra defensywna nie wymagają większego tłumaczenia - zwiększają nasz atak/obronę
  • Rozgrywanie - umiejętność skutecznego podawania. Im więcej umiejętności tym większa szansa na dokładne podanie. Podstawowa umiejętność dla Pomocników i linii środkowej.
  • Stałe fragmenty - umiejętność ta przejmuje rolę ataku/obrony jeśli akcja będzie wynikać ze stałego fragmentu. Mamy rzut karny? Skuteczność Ataku wynikać będzie przede wszystkim z tej Umiejętności (to samo tyczy Bramkarza)
  • Pressing - umiejętność ta zmusza przeciwnika do popełniania błędów, matematycznie zaś jednocześnie obniża siłę przeciwnika (jeśli mamy więcej pressingu niż on) oraz zwiększa o tę różnicę poziom losowości. Mając więcej pressingu łatwiej będzie odebrać piłkę, zmusić bramkarza do złego podania itd.
  • Skuteczność - wpływa pośrednio na wszystkie pozostałe Umiejętności niwelując przypadkowość w meczu. Na maksymalnym poziomie Skuteczności praktycznie przestaje zawodnika obowiązywać czysta losowość a liczyć się będą wyłącznie wyniki starć linia vs linia czy gracz vs gracz
  • Czytanie gry - umiejętność, która nie wpływa na inne czynniki ale pozwala przewidywać zawodnikowi np przyszłe podanie, kierunek strzału czy do kogo zagra przeciwnik. W przypadku np Bramkarza - pozwoli ocenić lepiej w którą stronę strzeli Napastnik.
  • Kondycja - jest to specjalna Umiejętność która pośrednio wpływa na wszystkie pozostałe Umiejętności. Więcej info tutaj

Z punktu widzenia technicznego zmienił się cały silnik, wyeliminowaliśmy przypadek tak jak to było możliwe. Silnik jest przystosowany do ciągłego rozbudowywania o nowe rodzaje akcji i nowych funkcjonalności.

Zapraszamy do dyskusji!