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
Poza tym - istnieje już HRT2 - gmc.yoyogames.com/index.php?showtopic=219736
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
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
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.
Najnowsze wersje GameMakera:
wydana 75 dni temu
wydana 3 dni temu
wydana 9 dni temu