Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML] Jak poprawnie napisać platformówkę

Ostatnio zmodyfikowano 2012-03-31 09:46
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
[SFML] Jak poprawnie napisać platformówkę
» 2012-03-30 12:55:41
Chcę zacząć od tego iż z nudów napisałem sobie nie wiem jak to nazwać załóżmy gierkę która wygląda następująco. Odpalamy exe'ka i oczom ukazuje się okno w dwoma przyciskami, jeden przycisk służy do tworzenia klocków(sf::shape), drugi do stworzenia również klocka ale symbolizującego gracza. Tworzone klocki po których ma poruszać się gracz można modyfikować tzn zmieniać kolor, wielkość. I teraz tak wszystko by było fajnie gdyby nie fakt, że za każdym razem kiedy stworzę nowego klocka gra spowalnia. Dzieje się tak zapewne dlatego, że podczas działania gry na okrągło sprawdzane są kolizje oraz odświeżane obiekty(sf::Draw), a są to funkcje z których raczej nie można zrezygnować. Wiec jak to się dzieje, że np Crysis 2 chodzi płynnie, a gra składająca się z 7 obiektów wykorzystuje 90% procesora i nie daje rady? Jak prawidłowo to napisać ?
P-53489
hincu
» 2012-03-30 13:09:11
zle napisany kod, zoptymalizuj go troche zreszta sfml 1.6 korzysta z CPU  2.0 rysuje przez GPU
P-53490
ison
» 2012-03-30 13:30:39
@up skąd masz takie informacje? 1.6 jest jak najbardziej hardware-accelerated, jednak nie jest zbyt optymalny, całe renderowanie odbywa się przez glBegin/glEnd ale wszystko leci na oglu

jak to się dzieje, że np Crysis 2 chodzi płynnie, a gra składająca się z 7 obiektów wykorzystuje 90% procesora i nie daje rady? Jak prawidłowo to napisać ?
Wykorzystywanie przez aplikację całego CPU nie jest równoznaczne z tym, że aplikacja 'nie daje rady'. Jeśli nie chcesz tak katować sprzętu to po prostu włącz vsync. To, że fps spada z każdym dodanym klockiem jest normalne, ile masz fps przy tych 7 obiektach? Jeśli powyżej 400 to nie ma się o co martwić.
P-53492
m4tx
» 2012-03-30 14:28:30
Wykorzystuje 90% procesora z prostego powodu - jest tam nieskończona pętla, która cały czas, bez przerw się wykonuje. Gdybyś zrobił VSync czy ograniczenie ilości FPS, to po każdym wykonaniu takiej pętli gra czekałaby jakiś czas i dopiero rysowała następną klatkę. Jednocześnie spadłoby zużycie procesora :)

I tak btw, @hincu - co ty za głupoty opowiadasz... SFML 1.6 rysuje wszystko przez OpenGL-a, a on działa na GPU przecież... :)
P-53495
hincu
» 2012-03-30 15:16:18
rysowac tak ale obliczenia juz robi cpu nie gpu w 2.0 to sie zmienilo
P-53498
diego997
Temat założony przez niniejszego użytkownika
» 2012-03-30 17:51:51
A mogę wam podać linka do tej gierki i byście zobaczyli dokładnie o co mi chodzi? Tylko powiedzcie co mam spakować jeszcze razem z exekiem ?
P-53507
ison
» 2012-03-30 18:27:32
rysowac tak ale obliczenia juz robi cpu nie gpu w 2.0 to sie zmienilo
Chodzi Ci o to, że zamiast glBegin/glEnd jest coś w stylu VBO czy jak? Masz jakiś link do tych informacji?

@diego ile masz fps przy tych 7 obiektach?
P-53509
diego997
Temat założony przez niniejszego użytkownika
» 2012-03-30 18:38:01
Jak sprawdzam metodą GetFrameLimit  pokazuje mi w konsoli 0,0034566 nie wiem jak inaczej sprawdzić
P-53511
« 1 » 2
  Strona 1 z 2 Następna strona