Wpis z mikrobloga

Drodzy Mirki spod #programowanie mam taki dylemat z #eventsourcing. Otoz przypuscmy, że mam sobie ranking graczy, który buduje punktację za jakieś aktywności, np daje 5 pkt za zabicie wroga i 1pkt za uratowanie zakladnika. Tabela rankingu będzie wyglądać mniej więcej tak:
Miejsce | gracz | zabitych | urattowanych | suma.
Jak powinienem zapisywać zdarzenia i z czego odtwarzać stan? Czy zapisywać efekt typu gracz x zabił wroga czy bardziej gracz x zdobył 5pkt za zabicie wroga a samo zabicie odnotować gdzieś indziej?
Dodam, że oprócz tabeli są jeszcze achievementy, np po zabiciu 5 wrogów dostajesz odznakę itp.
Podsumowujac: zapisywać jedno zdarzenie (gracz zabił typka) czy dwa (gracz zdobył 5 pkt za zabicie typka i 1pkt do achievementu zabijaka)? Czy moze wszystkie trzy? Dorzucę jeszcze #php i #javascript i #gamedev bo tu mądrzy ludzie są ( ͡° ͜ʖ ͡°)
  • 7
@kefas_safek: piszesz strzelankę w php ? proponuję notować wszystkie zdarzenia, zarówno zabicia wrogów jak i zdobyte achievementy, ponieważ zasady mogą zmieniać się w czasie, np zrobisz promocję na święta, że za trzech zabitych wpada medal, gdzie normalnie trzeba typów zabić dziesięciu. No i wtedy jak to przeliczysz wstecz mając tylko tabele z zabitymi ?
@cube: myślałem że wtedy nie będę liczył wstecz tylko dodam nowy świąteczny achievement i będę zliczal od momentu jego wystartowania. Strzelanka tylko dla przykładu o co mi chodzi :)
@kefas_safek: Jak (A) "zabił wroga" to (B) "zdobył 5 pkt za zabicie" jest już nadmiarowe, bo wystarczy znać punktację w danym momencie. W zależności od tego czy punktacja jest statyczna czy dynamiczna (osobne akcje, ale następujące w znacznie wolniejszym tempie) - zapisujesz odpowiednio B lub A. Achievmenty to może być jeszcze inna kategoria zdarzeń z odczytem łatwiejszym od zapisu, bo zapis wiązałby się ze sprawdzaniem pozostałych stanów (można sprawdzać co jakiś
@MQs: pytałem bardziej o opinie, dzięki za feedback. W sumie to po Twojej i @Colos odpowiedzi stwierdziłem się w przekonaniu, że lepiej działać na zdarzeniu typu x zabił y niż x zdobył punkty, bo ften drugi i tak musiałby mieć referencje do pierwszego zeby to powiązać.
Dzięki za odpowiedzi, niech Wam bozia w dzieciach wynagrodzi ( ͡° ͜ʖ ͡°)