Nietypowa architektura aplikacji webowej

0

Cześć,

Chciałbym Was prosić o radę dotyczącą architektury aplikacji webowej, w której (pośród wielu innych elementów) występuje następujący:

  • Odbywa się symulacja meczu piłkarskiego (server side)
  • Wybrani użytkownicy (więcej niż 1) muszą mieć możliwość wpływu na symulację robiąc zmiany, ustalając taktykę także w trakcie samego meczu (czyli nie można zasymulować meczu wcześniej, a później "udawać" że odbywa się on live generując relacje)
  • Dowolna liczba użytkowników może śledzić tę symulację (z tym akurat nie ma problemu)

Całość aplikacji wokół samej symulacji jest napisana w PHP.

Szukam rady w oparciu o jaką architekturę, język programowania najrozsądniej napisać moduł symulujący mecz, który musi dokonać symulacji w określonym momencie, bez względy na aktywność użytkowników, ale także z wzięciem jej pod uwagę jeśli ona wystąpi (to znaczy symulacja może nie być przez nikogo obserwowana, a może być obserwowana przez 1000 osób wśród których 2 mogą dokonywać działań wpływających na symulację).

Z góry dzięki za rady i sugestie

0

Jeszcze co do samej symulacji, widzę to tak:

dopóki mecz się nie skończył:

  • Sprawdź czy trenerzy drużyn przesłali jakieś zmiany mogące mieć wpływ na mecz
  • Wykonaj 1 takt symulacji
  • Zapisz przebieg w "jakimś miejscu" z którego dane będą mogli pobierać obserwujący mecz
0

Myślę, że bardziej od języka programowania potrzebna Ci jest wiedza na temat działania silnika gry symulującej. Coś takiego https://www.amazon.com/Programming-Example-Wordware-Developers-Library/dp/1556220782?ie=UTF8&*Version*=1&*entries*=0

Nie mam wiedzy na ten temat, ale spróbuj pogooglować po soccer simulator engine. Powinieneś dostać interesujące Cie wyniki.

0

Dzięki za odp.

Silnik gry (nie jest to piłka nożna wbrew temu co napisałem ;) ) mamy już dość dokładnie wyspecyfikowany i napisany z użyciem pseudokodu. Ostateczna implementacja jest zależna właśnie od mojego pytania dotyczącego ARCHITEKTURY.
Nie mamy problemu z zamodelowaniem dyscypliny, którą się zajmujemy.

0

No i nie chcielibyśmy pisać tego np. w Javie albo generalnie w czymkolwiek co nie jest powszechnie oferowane w ramach hostingu/VPS na poziomie 100 zł miesięcznie.

0

Podbijam ;) Może uda się jeszcze zdobyć radę od kogoś!

0

Ja bym to rozbił na 2 "elementy":
-silnik - robi wszystkie przeliczenia, reaguje na zmiany przez userów. Działa kompletnie niezależnie.
-widok - Otrzymuje z silnika dane i je renderuje.
Co do architektury to według mnie podałeś za mało danych. Tz. będzie jedna symulacja czy wiele w tym samym czasie? Czy przeliczenia mają odbywać się na bieżąco (cały czas, niezależnie) czy per request? Mogę Ci jedynie pomóc ogólnikami:
-"serce" które przelicza wszystkie otrzymane dane
-moduł który będzie mial za zadanie pobrać dane od usera, sprawdzić ich wiarygodność i przesłać do silnika
-moduł który będzie pobierał dodatkowe informacje z serwera (np. pierwsze ustawienie zawodników) i przesyłał je do silnika
-widok który po otrzymaniu przez silnik danych wyświetli to (albo wygeneruje obrazek i prześle go do przeglądarki)

1 użytkowników online, w tym zalogowanych: 0, gości: 1