# Ticks?



## volcanoFL (21. Dez 2011)

Hi, Markus Persson ('Notch') arbeitet in seinen Java-Spielen mit sog. "Ticks" als Zeiteinteilung; kann mir jemand sagen was das ist, wo das herkommt und ob man sowas braucht, wenn man Spiele entwickelt?

(Stand bei seinem LD48-Livestream auch immer im Debug-Fenster.)


----------



## Gast2 (21. Dez 2011)

Ticks sind afaik die Prozessordurchläufe.


----------



## ThreadPool (21. Dez 2011)

volcanoFL hat gesagt.:


> Hi, Markus Persson ('Notch') arbeitet in seinen Java-Spielen mit sog. "Ticks" als Zeiteinteilung; kann mir jemand sagen was das ist, wo das herkommt und ob man sowas braucht, wenn man Spiele entwickelt?
> 
> (Stand bei seinem LD48-Livestream auch immer im Debug-Fenster.)



Ticks sind oft definiert als eine Zeiteinteilung z.B. 1 Tick = 1 ms (1/100 Sek.), = 1 Mikrosekunde etc., oder auch komplette Durchläufe z.B. bei Simulationsprogrammen (wobei man da eher "Epochen" sieht). Jedenfalls benötigt man Zeitinformationen in der Spieleentwicklung, bspw. um die zeitliche Differenz zwischen zwei Frames zu messen, für Physikberechnungen (Dauer einer Aktion), Starts von Cut-Scenes etc. pp. Die Spieleentwickler hier können dir da sicher noch präziser weiterhelfen.


----------



## Evil-Devil (21. Dez 2011)

Ticks sind wie schon beschrieben in aller Regel Zeiteinheiten bzw. Intervalle von Verarbeitungen.

Der Hauptvorteil bei Tickbasierter Verarbeitung ist imho die Möglichkeit der Priorisierung. Jede Berechnung während des Frames benötigt eine bestimmte Anzahl an Ticks. Wie viele genau hängt vom jeweiligen System ab. Hierbei können aber die jeweiligen Prozesse gewichtet werden. Zb. dauert das erzeugen eines Objektes in der Spielwelt 1 Tick. Die Weitergabe an nachfolgende Objekte vielleicht auch noch 1 Tick und so weiter.

Alles in allem ist das ein sehr umfangreiches Thema.

Bissl Literatur zu aktuellen Engines:
http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf
UDN - Three - UnrealScriptReference

Bei letzteren wird auch kurz auf die Ticks eingegangen wie sie in der UE3 genutzt werden.


----------



## Marco01_809 (21. Dez 2011)

Notch benutzt in Minicraft Ticks so, dass es pro Sekunde 60 mal "tickt", dabei ruft er jedesmal von allen Entitys und WorldTiles die tick() auf, die die Logik des Mobs/Blocks durchführen. z.B. im WheatTile; wenn "tickTime % 60 = 0" (es also der 60. Tick in der Sekunde ist) wächst der Weizen weiter, Slimes hüpfen wenn noch zusätzlich Random-Bedingungen erfüllt sind u.s.w.
Unabhängig von den Ticks wird dann noch bis zu 500 mal in der Sekunde gerendert, also das Bild neu gezeichnet.
Wenn nicht genug Rechenleistung zur Verfügung steht brechen zuerst die fps ein, aber das Spiel läuft dank der Ticks nicht von der Logik her langsamer. Außer wenn die CPU selbst die 60 Ticks nicht schafft, aber dann sollte das Spiel längst unspielbar sein.


----------



## volcanoFL (21. Dez 2011)

Danke, hat mir geholfen


----------



## irgendjemand (23. Dez 2011)

ThreadPool hat gesagt.:


> 1 Tick = 1 ms (1/100 Sek.), = 1 Mikrosekunde



da hast du in mathe aber ziemlich gepennt wenn

1ms

für dich

1/100 sec

bedeutet und du das dann Mikrosec bezeichnest ...

um mal deinen kleinen einheiten fehler zu korrigieren

1ms = 1 MILLIsec = 1/1000 sec ...
1µs = 1 MIKROsec = 1/1000 MILLIsec = 1/1000000 sec ...


----------



## ThreadPool (23. Dez 2011)

irgendjemand hat gesagt.:


> da hast du in mathe aber ziemlich gepennt wenn
> 
> 1ms
> 
> ...



Eigentlich dachte ich das ich das korrgiert hätte, dann habe ich die Änderung wohl nicht gespeichert. Kann passieren *schulterzuck*.


----------



## Kr0e (23. Dez 2011)

irgendjemand hat gesagt.:


> da hast du in mathe aber ziemlich gepennt wenn



Und du hast wohl ziemlich in Physik gepennt, denn das wird dort normalerweise unterrichtet


----------



## irgendjemand (24. Dez 2011)

ja ... der physikalische zusammenhang und die definition von "zeit" im allgemeinen ...
die mathematischen grundlagen von 10er potenzen , und damit auch die verwendeten einheiten *z.b. Mega , Kilo , Milli , Mikro* sollten aber bereits in der 3ten oder 4ten klasse vermittelt werden ...
und ob ich dann extra bis zur 7ten warten muss nur um dann in physik zu lernen das 1sec definiert ist das es was weis ich wie vielfache der periodendauer des überganges eines bestimmten isotops von einem ladungszustand in den anderen ... nee ... dann würde ich doch schon auf mathe tippen ...


----------



## Fu3L (24. Dez 2011)

> sollten aber bereits in der 3ten oder 4ten klasse vermittelt werden ...



Sollten, aber werden sie nicht.. Zumindest heutzutage nicht  Zehnerpotenzen und Einheitenpräfixe lernt man heutzutage in Physik.
Ansonsten dürfte diese Kleinigkeit es nicht wert sein, weiter drüber zu diskutieren


----------



## Kr0e (24. Dez 2011)

Ach LEute  frohe Weihnachten!


----------

