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.13.1.193 • 2024.13.1.242
wydana 46 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 181 dni temu
Beta
2024.1400.0.815 •
2024.1400.0.815
 0.17.0

wydana  4 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
41 użytkowników online na discordzie:
Alice, LeD, Nitro Slav, Carl-bot, Bartuszewsky, p..., 🧁Cupcake🧁, GibkiKaktus, Grela, Andrzej Apparition, Draczeq, Kowu, Kuzyn, OdrzuconyKrakers, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, Kalor, PhysX ᴺⱽᴵᴰᴵᴬ, r..., Threef, Uzjel, Chell, HappyOrange, Arrekin, yazaa, RogerDodg3r, Dyno, szmalu, Morro, LadyLush, Miłosz, Marco, Danieo, antek, Sporek, moeglich, s..., 42traviss, Krzysiek1250, h..., Cosplyfanka, xVANiLL
Shoutbox
gnysek (13:44, 10.04.25)
Za 3-4 miesiące GM przejdzie na wydania "półroczne", więc korzystanie z wersji beta żeby sprawdzić nowości będzie wskazane :P
Adriann (18:09, 08.04.25)
Odpowiadam, dzisiaj :D
Adriann (20:48, 04.04.25)
A kiedy te UI layery mają wejść do normalnej wersji gma?
gnysek (00:38, 11.03.25)
I jak, zobaczyłeś ? :D Trochę im zjechało na publiczny release, ale były już w ostatnich dniach lutego dostępne jak się wie, jak pobrać kandydatów do bety :P
Kuzyn (21:30, 05.03.25)
uwierzę jak zobaczę :P
gnysek (10:35, 18.02.25)
W ciągu 10 dni mają wyjść w końcu Layery UI :D
Wojo (10:25, 27.12.24)
Jak tworzyłeś* ah ta niecną autokorekta (kiedyś też stworzyłem apki na androida w sumie)
Wojo (10:23, 27.12.24)
O siemka baca, czasami myślę o tobie w kontekście tego jak tworzyłem apki na androida. Swoją drogą czasami zapominam, że forum istnieje bo cały ruch teraz utrzymuje się na discordzie, ale pora to zmienić!
Uzjel (20:17, 10.12.24)
Cały ruch przeniósł się na Discorda.
MagnusArias (17:43, 01.12.24)
O matko... a ja tutaj jestem od ponad 15 lat i czasami zaglądam... biernie bo biernie, ale czasem wpadnę
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?