DeltaTime GM

Prosta i skuteczna biblioteka do dokładnego pomiaru czasu pomiędzy klatkami gry.
Przeważnie w ramach optymalizacji potrzeba uniezależnić animację gry od klatek na rzecz różnicy czasu pomiędzy obecną a poprzednią klatką gry, dzięki czemu niezależnie czy gra zacznie działać wolniej, to animacja nadal będzie stała w czasie. Dla uzyskania dużej dokładności pomiaru różnicy czasu został stworzony ten oto DLL.

Autor: PsichiX http://psichix.com

Rozmiar
33 KB
Autor
Ocena
7/10
5 głosów
Komentarze
Komentarze (łącznie 24, wyświetlam 16 - 30):
Tymon (Sob., 18 Wrz. 10, 00:39)
#16

Nie, nie jest najdokładniejsza - poczytaj. :P

Shocker51374 (Sob., 18 Wrz. 10, 09:11)
#17

Poza tym - istnieje już HRT2 - gmc.yoyogames.com/index.php?showtopic=219736

Dawidds (Sob., 18 Wrz. 10, 10:10)
#18

Z tym że Tymon, i current_time i to drugie (date_current_time() czy cuś takiego, funkcja w każdym razie) się do dt za cholerę nie nadają - current_time ma za małą precyzję sam w sobie a to drugie przy 60 (pustych ofc, dla testu) klatkach jedną na ok. sekundę oznaczało około 2,5x dłuższą niż inne - i to tak w miarę regularnie. Przy wyższym niż 60 pojawiają się już zupełnie puste klatki (różnica 0) :)
Przy "prostych" grach tego nie widać, ale gdy to będzie chociażby platformówka, w której gracz się porusza a taką samą całkowitą prędkością w jedną stronę to te nienaturalne przeskoki strasznie gryzą po oczach. No i np. particle, które mają w założeniu trwać np. 3/60 sekundy - jeśli trafi pechowo na tą zawyżoną klatkę to particle zniknie w 1/60 zamiast 3/60.

Z tym, że PsichiX, ubiegli Cie : D

P
PsichiX (Sob., 18 Wrz. 10, 10:14)
#19

kurde, nie wiedzialem o tym HRT2 - ale lipa wyszla :D

Tymon (Sob., 18 Wrz. 10, 13:07)
#20

Dawidds, to co zaoferował nam Pyś wcale nie ma większej dokładności od current_time. :)

P
PsichiX (Sob., 18 Wrz. 10, 13:12)
#21

ale na jakiej podstawie tak mowisz?

Dawidds (Sob., 18 Wrz. 10, 13:14)
#22

Szczerze to nawet tego nie pobrałem, porównywałem do hrt. :)

Dawidds (Sob., 18 Wrz. 10, 13:35)
#23

ds_list_add(list, DTget());
for(i=0; i<ds_list_size(list); i+=1)
{
draw_line(0, i, ds_list_find_value(list, i)*30000, i);
}

Wynik dla 60 klatek:
img638.imageshack.us/img638/1305/58779600.png
I dla 999999 (ma trochę zwiększony mnożnik ofc):
img213.imageshack.us/img213/7603/48975287.png

Widać jak coraz bardziej zmula rysowanie większej ilości linii :P
Na drugim widać jakieś szumy, ale to raczej wina gma samego w sobie, nawet na takiej liczbie klatek nie widać tworzenia się schodów jak na current_timie (ani nie ma pustych klatek z date_current_time()), więc w sumie git.

Ogólnie to testowanie klatek przez rysowanie linii jest fajne - może nie dokładnie tak, ale dobrym nawykiem jest przedstawianie sobie na wykresiku wydajności różnych części gry - jeden prostokąt=jedna część, i można szybko ogarnąć, która część jak dużo klatki nam zajmuje (wiedzieć gdzie starać się optymalizować), i po tym, jak wykres się "trzęsie" stabilność wszystkich fragmentów, to zwłaszcza do jakiś pathfindingów etc, ogólnie ai.

P
PsichiX (Sob., 18 Wrz. 10, 14:19)
#24

tutaj dla zniwelowania skokow przy rysowaniu najlepiej narysowac to do surfacesa linia za linia, zobrazowanie bedzie bardziej dokladne

Najnowsze wersje GameMakera:

Stabilna
2024.8.1.171 • 2024.8.1.218
wydana 75 dni temu
LTS
2022.0.3.83 • 2022.0.3.98
wydana  3 dni temu
Beta
2024.1100.0.686 •
2024.1100.0.707
 0.13.0

wydana 9 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
gnysek (11:46, 17.11.24)
Witamy, witamy!
baca (12:22, 16.11.24)
To już 25 lat.. Witam po paru latach nieobecności.
gnysek (11:05, 15.11.24)
Natomiast obecne forum istnieje od 2004, jak z iglu.cz na gmclan.org przeszliśmy i od tego czasu nie było resetów danych.
gnysek (12:35, 13.11.24)
Ogólnie GMCLAN istnieje 22 lata, ale na to trofeum nie zrobiłem (jeszcze xD)
Chell (20:41, 08.11.24)
wow, ta emotka w ogóle nie wygląda jak : O xD
Chell (20:40, 08.11.24)
tylko? :O 4tk ma 15
Borek (18:12, 07.11.24)
Właśnie dostałem powiadomienie z forum, że jestem na GMClanie 18 lat :D Ja pierdzielę...
S
Sutikku (08:43, 18.10.24)
TIL, gamemaker jest starszy ode mnie
gnysek (16:04, 15.10.24)
Za równo miesiąc, GameMaker kończy 25 lat.
Wojo (15:38, 05.09.24)
Ciekawe
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?