Nowy silnik meczowy

21.09.2018
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.