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 153 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 288 dni temu
Beta
2024.1400.0.892 •
2024.1400.0.879
 0.17.0

wydana  6 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
2 użytkowników aktywnych:
gości: 1, userów: 1
 Borek
(~ostatnie 15 minut)
Discord
52 użytkownicy online na discordzie:
Draczeq, 🧁Cupcake🧁, Grela, Alice, LeD, Nitro Slav, Carl-bot, pABLO, p..., GibkiKaktus, 21Lancz, OdrzuconyKrakers, Tival, fervi, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, m..., Kalor, r..., Threef, Uzjel, Cysior, LadyLush, HappyOrange, Arrekin, Dyno, 🆅🅸🆃🅾74🅼, Deusald, szmalu, Korodzik, Kandif, DawidM, Voytec, Ulti, Danieo, bagno, antek, Tidżi, Mtax, MrTesterr, g..., Huder, RuLing, PeekoHiko, l..., Cebul, Borek, s..., Add92, Krzysiek1250, h..., Shockah, Nero
Shoutbox
Wojo (20:34, 17.07.25)
Discordy i Facebooki pogrzebały erę forów internetowych...
gnysek (10:36, 04.07.25)
Bo wszyscy piszą na discordzie :)
M
Modnar23 (20:08, 29.06.25)
Ja po 13 latach postanowiłem się zalogować i widzę, że straszne pustki na forum. Kiedyś to aż huczało na forum. :)
Chell (08:18, 26.06.25)
to masz krótką pamięć, bo od 2014 jakoś nie wiadomo ilu nowych userów nie przybyło :-D
p
pablo1517 (18:34, 16.06.25)
Ja w sumie żadnego z tych nicków nie kojarze poza Gnyskiem xD
gnysek (10:00, 16.06.25)
Odwiedzić starych dobrych znajomych.
S
Sutikku (01:48, 14.06.25)
nie wiem który to już rok, że ciągle mechanicznie wchodzę na gmclan, w sumie sam nie wiem po co
S
Sutikku (01:47, 14.06.25)
SIEMA! U mnie znośnie
p
pablo1517 (21:48, 07.06.25)
Siema wszystkim! Co tam slychac?
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
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?