Przekazany Optymalizacja gry

  • Rozpoczynający wątek kamilops
  • Data rozpoczęcia

DeletedUser

Guest
Jak wiecie, nie każdy ma wypasiony sprzęt z kilkoma kościami ramu, prockiem który napędzi rakietę i kartę graficzną która mogła by 1000 kin obsługiwać :) To samo się tyczy telefonów. Gra na słabszych sprzętach jest dosyć uciążliwa. Na moim Samsung Duos ciężko jest cokolwiek zrobić, a mój Lenovo G570 po odpaleniu gry chodzi jak traktor. Chciałbym jakiegoś przycisku wyłączającego grafikę jak w TW1, czy coś w ten deseń
 

DeletedUser

Guest
Taki przycisk nic Ci nie da, gra jest oparta na Angularze (zresztą całkiem ciekawy eksperyment moim zdaniem), i dosyć intensywnie wykorzystuje do obliczeń sprzęt użytkownika, zamiast używać tylko moc obliczeniową serwera.
 

DeletedUser

Guest
Tak jak mówiłem, laptop grzeje się i chodzi jak traktor :)
 

DeletedUser

Guest
Twórcy strzelili sobie z działa w stope i zrobili strasznie głupi błąd, początkujacych twórców...

Jeżeli gra ma obciążać komputer użytkownika, zamiast przechowywać pewne rzeczy na serwerze to powinna być wydana w wersji klienckiej. Do pobrania na komputer.

Ponieważ przeglądarka nie jest przystosowana do takich obciążeń i zużywa o wiele za dużo zasobów. Gra która płynnie i bez problemu działałaby w wersji klienciej, w przeglądarce będzie zużywać dużo więcej zasobów i będzie się ścinać.

Dlatego jeżeli twórcy są takimi skenrami, ze żałują miejsca na serwerze to niech wydadzą grę w wersji do ściągnięcia na komputer i wtedy będzie działać jak należy. Bo jeśli zrobi się grę przeglądarkową w której takie dane są trzymane u użytkownika, a nie tak jak powinny na serwerze to będzie to strasznie obciążało przeglądarke, a wydajnosć gry będzie bardzo niska.
 

DeletedUser

Guest
Starsze gry przeglądarka działały na PHPie, śmiem powiedzieć że prawdopodobnie wszystkie, gdyż były one łatwe do napisania (jedyna trudność to optymalizacja), programistów PHP jest dużo, nie trzeba było się namęczyć z jakimiś wymyślnymi konfiguracjami serwerów, i to działało. W takich grach znaczna większość akcji powodowała przeładowanie strony - a wywołane było ono wysyłaniem jakichś informacji do serwera, serwer te informacje trawił, i w zależności co to były za informacje, co to była za akcja, zapisywał sobie coś do bazy danych (bądź tylko odczytywał z niej), i generował nową stronę, które później była wysyłana do przeglądarki użytkownika. I tak za każdym razem ... jedynie obrazki, style i skrypty były cachowane przez przeglądarkę, a cały kod strony musiał być wygenerowany i wysłany.

Z czasem zaczęto intensywniej korzystać z dobrodziejstw ajaxa i sporo danych leciało bez odświeżenia strony , dzięki czemu zamiast za każdym razem generować stronę wystarczyło wysłać dane 'w tle', albo takie dane pobrać - i dostosować stronę na komputerze użytkownika do nowych wartości/informacji.

W TW2 wszystko leci 'w tle', na początku jest wysyłane użytkownikowi to co potrzebuje (pierwszy widok gry), wszystkie skrypty (najważniejsze), style i potrzebne obrazki. Następnie z każdą akcja użytkownika dosyłane są nowe rzeczy których akurat potrzeba, czy to nowe obrazki, czy dane, czy czasami nawet kod całych 'okienek' ... i skrypty już wiedzą co z tymi otrzymanymi danymi zrobić, jak ja wyświetlić etc. Do tego widzę że korzystają z socket.io - więc pod maską tam się dzieje naprawdę sporo, ta gra jest jak żadna inna gra przeglądarkowa z którą się do tej pory spotkałem.

@Captain - Twój post jest typu 'nie znam się, to się wypowiem'. Jedno małe pytanie tylko, skoro Twórcy są sknerami i żałują miejsca na serwerze - to jak myślisz gdzie jest trzymana cała gra? Baza danych? Co odpowiada za to że gra 'działa' ? Twój komputer?
 

DeletedUser

Guest
@Captain - Twój post jest typu 'nie znam się, to się wypowiem'. Jedno małe pytanie tylko, skoro Twórcy są sknerami i żałują miejsca na serwerze - to jak myślisz gdzie jest trzymana cała gra? Baza danych? Co odpowiada za to że gra 'działa' ? Twój komputer?

Ech, niczego nie rozumiesz, a to mnie zarzucasz, ze się ''nie znam''.

Większość danych jest przechowywana na serwerze, te których trzymanie tam jest koniecznie. Ale w TW2 duża ilość innych danych, które wiekszość takich gier trzyma na serwerach jest przechowywana w przeglądarce. Usuń sobie ciasteczka i dane witryn to zobaczysz, że nawet to co poustawiałeś w opcjach się całkowicie zresetuje w grze, nie mówiąc już o całej masie innych danych których nie widzisz, a które sa w tle.
 

DeletedUser

Guest
Ech, niczego nie rozumiesz, a to mnie zarzucasz, ze się ''nie znam''.
Ehh, niczego nie potrafisz wytłumaczyć, a to mnie zarzucasz, że 'nie rozumiem'.

Jeżeli gra ma obciążać komputer użytkownika, zamiast przechowywać pewne rzeczy na serwerze to powinna być wydana w wersji klienckiej. Do pobrania na komputer.
Znasz jakąś grę przeglądarkową/komputerową która nie obciąża komputera użytkownika? Tych 'pewnych' rzeczy gra przechowuje BARDZO dużo na serwerze.

Ponieważ przeglądarka nie jest przystosowana do takich obciążeń i zużywa o wiele za dużo zasobów. Gra która płynnie i bez problemu działałaby w wersji klienciej, w przeglądarce będzie zużywać dużo więcej zasobów i będzie się ścinać.
Nieprawda. Gdyby przeglądarka nie była do tego przystosowana - nie powstawały by na nią takie gry. Do tego zużywa to dużo mniej mocy obliczeniowej komputera niż gdyby była wydana w wersji klienckiej, a już tym bardziej jak by napisali ją ludzie specjalizujący się w technologiach webowych.

Dlatego jeżeli twórcy są takimi skenrami, ze żałują miejsca na serwerze to niech wydadzą grę w wersji do ściągnięcia na komputer i wtedy będzie działać jak należy. Bo jeśli zrobi się grę przeglądarkową w której takie dane są trzymane u użytkownika, a nie tak jak powinny na serwerze to będzie to strasznie obciążało przeglądarke, a wydajnosć gry będzie bardzo niska.
Większość danych jest przechowywana na serwerze, te których trzymanie tam jest koniecznie. Ale w TW2 duża ilość innych danych, które wiekszość takich gier trzyma na serwerach jest przechowywana w przeglądarce. Usuń sobie ciasteczka i dane witryn to zobaczysz, że nawet to co poustawiałeś w opcjach się całkowicie zresetuje w grze, nie mówiąc już o całej masie innych danych których nie widzisz, a które sa w tle.
Ponownie głupoty. Jedynie masz rację z tym że gra mogła by trzymać ustawienia gracza czy hotkeysy także na serwerze, i jeśli sytuacja by tego wymagała synchronizować dane z serwera z danymi na komputerze użytkownika. Jak by to wszystko było zapisane na serwerze - było by to wolniejsze. W tym miejscu akurat autorzy gry sprytnie trzymają sporo informacji na komputerze użytkownika, gdyż dostęp do nich użytkownik ma dużo szybszy, nawet jeśli trzeba najpierw je odczytać z dysku i przechować w pamięci operacyjnej - sam proces odpytywania sie o to serwera za każdym razem generował by nie tylko większe obciążenie komputera użytkownika, ale i o niebo większe obciążenie serwera (a już są narzekania że serwery lagują).

To że coś jest 'w tle' nie oznacza że nie można tego 'zobaczyć' - proponuję Ci abyś sobie zajrzał pod maskę, gra jest naprawdę ciekawie rozwiązana, a do tego ciekawa sprawa, zaglądając pod maskę idzie znaleźć zakodowaną wiadomość od autorów gry, aby się zgłosić do nich w sprawie pracy :)

Twórcy strzelili sobie z działa w stope i zrobili strasznie głupi błąd, początkujacych twórców...
W tym momencie obrażasz twórców. Nie masz o tym pojęcia, nawet zaawansowani programiści nie byli by w stanie napisać takiej gry ... siedzę co prawda w innej branży, ale podobna technologia, i ode mnie duży szacunek dla Twórców. A Ty po raz kolejny udowadniasz - 'nie znam się, to się wypowiem'.
 

DeletedUser

Guest
Znasz jakąś grę przeglądarkową/komputerową która nie obciąża komputera użytkownika? Tych 'pewnych' rzeczy gra przechowuje BARDZO dużo na serwerze.

Nieprawda. Gdyby przeglądarka nie była do tego przystosowana - nie powstawały by na nią takie gry. Do tego zużywa to dużo mniej mocy obliczeniowej komputera niż gdyby była wydana w wersji klienckiej, a już tym bardziej jak by napisali ją ludzie specjalizujący się w technologiach webowych.

Gram na moim komputerze w gry z trójwymiarową grafiką, rozbudowanymi realnymi bitwami w 3D, a Ty uważasz, że normalne jest iż na takim komputerze ścina mi się gra z podstawową grafiką gier przeglądarkowych i w której... nawet nie ma animowanych bitew, tylko oglądamy raporty?

W dodatku gra ścina się i wiesza często nawet podczas owego oglądania raportów. A w innych grach (pobieranych na komputer) spokojnie tocze sobie bitwy trójwymiarowych jednostek i jest ok.

Nieprawda. Gdyby przeglądarka nie była do tego przystosowana - nie powstawały by na nią takie gry. Do tego zużywa to dużo mniej mocy obliczeniowej komputera niż gdyby była wydana w wersji klienckiej, a już tym bardziej jak by napisali ją ludzie specjalizujący się w technologiach webowych.

Inne gry przeglądarkowe nie mają takich problemów. Gram normalnie, nic się nie zacina. A wiele z nich bywało dużo bardziej wypasionych graficznie i rozbudowanych od TW2.

I dalej nie rozumiesz - chodzi cały czas o to, że przeglądarka która w ten sposób obciąża się danymi które powinny być na serwerze zaczyna pobierać dużo wiecej zasobów systemu niż pobierałaby zewnętrzna aplikacja (czyli własnie gra w wersji klienckiej).
Dlatego takich rzeczy się nie robi. Jak chce sie trzymac tyle danych u użytkownika, a nie na serwerze to sie tworzy grę w wersji do pobrania na komputer.
Inne gry przeglądarkowe trzymaja co trzeba na serwerach i nic mi sie w nich nie zacina.

W tym momencie obrażasz twórców. Nie masz o tym pojęcia, nawet zaawansowani programiści nie byli by w stanie napisać takiej gry ... siedzę co prawda w innej branży, ale podobna technologia, i ode mnie duży szacunek dla Twórców. A Ty po raz kolejny udowadniasz - 'nie znam się, to się wypowiem'.

Skoro tak uważasz to po raz kolejny apeluje abyś mi wytłumaczył - Dlaczego na komputerze na którym gram sobie w gry z fajną grafiką i bitwami 3D zacina mi się gra przeglądarkowa podczas przeglądania raportów? Toż to jakaś kpina...

I dlaczego inne gry przeglądarkowe jakoś nie mają takiego problemu, mimo często znacznie lepszej grafiki niz w TW 2? A nawet bitew, a nie tylko oglądania raportów?
 

DeletedUser

Guest
Gram na moim komputerze w gry z trójwymiarową grafiką, rozbudowanymi realnymi bitwami w 3D, a Ty uważasz, że normalne jest iż na takim komputerze ścina mi się gra z podstawową grafiką gier przeglądarkowych i w której... nawet nie ma animowanych bitew, tylko oglądamy raporty?

W dodatku gra ścina się i wiesza często nawet podczas owego oglądania raportów. A w innych grach (pobieranych na komputer) spokojnie tocze sobie bitwy trójwymiarowych jednostek i jest ok.
Nie można porównywać kier przeglądarkowych do normalnych gier komputerowych, to tak jak byś porównywał rower do motoru, i dziwił się dlaczego na rowerze nie możesz tak szybko jechać jak na motorze ...

Gry przeglądarkowe mają bardzo ograniczone możliwości, mogą robić tylko to na co im przeglądarka pozwoli (i całe szczęście, bo jak by było inaczej to ze względów bezpieczeństwa byś w żadne gry przeglądarkowe nie grał), a i Twojego GPU wykorzystują pewnie tyle co nic, gdy przy tych innych grach z realnymi bitwami 3D większości obliczeń dokonuje właśnie GPU. w TW2 wszystkich obliczeń po stronie użytkownika (Angular/JS) dokonuje procesor, i w zależności od komputera/systemu/ustawień zazwyczaj co najmniej 1 rdzeń w całości przeglądarka może wykorzystywać, i to jest i tak nadto co potrzebuje.

Nie wiem jaki masz komputer, tak się tym 3D jarasz - a do wyświetlenia grafiki w 3D naprawdę dużo nie potrzeba. Nie wspomniałeś też o jakie dokładnie ścinanie Ci chodzi, ale jeśli o to samo jakie występuje u mnie - to jest to raczej problem serwera, a dlaczego tak jest - ciężko powiedzieć, może być wiele powodów, i nawet świetni programiści nic nie pomogą jak administracja serwerami leży.

Dodatkowo sama przeglądarka może powodować jakieś ścinanie. Jak już wspomniałem gra jest unikalna, wykorzystuje dosyć nowe technologie, nie zawsze wszystkie przeglądarki sobie dobrze z tym radzą, i nie wszystko udało się przetestować na każdej przeglądarce. Dla przykładu mi na Chrome gra działa lepiej, praktycznie w ogóle nie występują sytuacje gdzie gra się zatnie bo np. JS napotkał na jakiś wyjątek i nie może sobie poradzić i 'pójść dalej', co na Firefoxie jest normą - ale na Firefoxie gra mi działa szybciej.

Inne gry przeglądarkowe nie mają takich problemów. Gram normalnie, nic się nie zacina. A wiele z nich bywało dużo bardziej wypasionych graficznie i rozbudowanych od TW2.

Skoro tak uważasz to po raz kolejny apeluje abyś mi wytłumaczył - Dlaczego na komputerze na którym gram sobie w gry z fajną grafiką i bitwami 3D zacina mi się gra przeglądarkowa podczas przeglądania raportów? Toż to jakaś kpina...

I dlaczego inne gry przeglądarkowe jakoś nie mają takiego problemu, mimo często znacznie lepszej grafiki niz w TW 2? A nawet bitew, a nie tylko oglądania raportów?
Ciężko się ustosunkować do 'inne' ... oraz co przez tą grafikę rozumiesz, ładne obrazki w tle? Ściągnąć i wyświetlić obrazek to żaden problem, to prawie tak jak tekstura w grze 3D, największym problemem jest że im ładniejszy tym więcej miejsca zajmuje ... dla przykładu w TW2 największym obrazkiem jest tło gry:
https://twxpl.innogamescdn.com/img/village/day/BG_0_0_e67aded4dc.jpg

Te ponad 2Mb pobierasz tylko raz, i są one zapisywane w pamięci podręcznej przeglądarki, ten plik pobierasz z serwera (więc to nie tak iż autorzy przyoszczędzili na miejscu na serwerze jak przedtem twierdziłeś), i trzymasz go u siebie abyś nie musiał za każdym razem czekać aż te 2Mb zostaną pobrane, przeglądarka tylko sprawdza czy plik został zmodyfikowany, i jak nie to nie ma potrzeby go ponownie pobierać. Tak samo jest z innymi grafikami, np ikonki:
https://twxpl.innogamescdn.com/img/icons/alpha_22660351b1.png

Czy animacja kopalni żelaza:
https://twxpl.innogamescdn.com/img/village/animations/ironmine_lore.L3_9ace211e74.png

I jest to jak najbardziej normalne dla każdej gry przeglądarkowej, nawet tych Twoich 'innych'. Więc czuj się jak byś miał wersję kliencką, gdyż spora część gry znajduje się na Twoim komputerze.

I dalej nie rozumiesz - chodzi cały czas o to, że przeglądarka która w ten sposób obciąża się danymi które powinny być na serwerze zaczyna pobierać dużo wiecej zasobów systemu niż pobierałaby zewnętrzna aplikacja (czyli własnie gra w wersji klienckiej).
Dlatego takich rzeczy się nie robi. Jak chce sie trzymac tyle danych u użytkownika, a nie na serwerze to sie tworzy grę w wersji do pobrania na komputer.
Myślę że już rozumiem - masz pretensję że pies nie jest kotem i na odwrót. Nie porównuj gry przeglądarkowej do normalnej gry komputerowej. Nie wymagaj od firmy która się specjalizuje w pisaniu gier przeglądarkowych aby pisała nornalne gry (albo o zgrozo - klienta do gry przeglądarkowej, bo dostaniesz do zainstalowania przeglądarkę internetową xD). To są kompletne inne technologie, inne języki programowania, inna architektura, wzorce, inni programiści ... Ty oczywiście nie masz o tym kompletnie pojęcia, ale cały czas będziesz brnął dalej.

Poza tym nikt Ci chyba nie zabrania napisać lepszej gry, prawda? Jak jesteś takim ekspertem to zakasaj rękawy i będziesz zarabiał miliardy cebulionów ...

Inne gry przeglądarkowe trzymaja co trzeba na serwerach i nic mi sie w nich nie zacina.
To zdanie upewniło mnie że dyskusja z Tobą jest bezcelowa ... Ty nie masz zielonego pojęcia co gry trzymają gdzie, oraz po co to akurat tam trzymają ... ale pomarudzić trzeba :)
 
Do góry