StorageTechDictionary / StorageTechDictionary.github.io

A fork of MCPropertyEncyclopedia, used as a searchable dictionary for the Storage Tech Discord
https://StorageTechDictionary.github.io
GNU General Public License v3.0
1 stars 2 forks source link

Correct/expand/splti tick definition #28

Open Firigion opened 2 years ago

Firigion commented 2 years ago

Thread starting here: https://discord.com/channels/748542142347083868/811675089133240330/882711955608064090

I would like to make the case that the definition of tick as stated in this dictionary is partially incomplete, vague, and inspecific. Additionally, I would like to propose a two-part definition that could supplement or replace the original one.

I think the current definition fails to explain that a tick measures a unit of time as a secondary purpose, while it's primary purpose is to represent one complete step through the game loop. Now, while a tick can be used to measure elapsed time, the most utility of using tick as a measure of time is measuring ingame time. While I don't think the term should be replaced, I think a distinction should be made between ticks as a process and ticks as a unit of time. Naturally it is hard to follow this distinction in conversation, so I propose the term tick-length. First let me say that I would not suggest or imply that this term should replace the term tick, but rather be used exclusively when the latter term provides more clarity than the former. To this end, I can present a case where confusion could be avoided. One reasonably common scenario is piston extension. Everyone can for the most part agree that pistons take two ticks to extend, but other pistons can only be triggered after three ticks of delay. The way I would use these new terms to describe piston extension is that a piston extends in two tick-lengths, and it exists as a block 36 in thee ticks total. This definition is good enough in my opinion to determine the delay between pistons, because it works by itself without necessitating any understanding of tick phases. For example, should the block event phase happen after the entity phase instead of before, the delay between pistons would be the same.

I don't propose this as a definitive solution or answer to the problem, but instead because I hope that others will firstly see that the problem exists, and help to think of a solution regardless of whether my proposal is suitable.

With the following proposed definitions:

  1. (n) Either tick-length or gametick, depending on usage.

  2. (v) Fully execute one gametick.

a. Prototech ticks sixteen times per second.

tick-length:

  1. (n) A unit of time equal to the duration of one gametick, however long it takes.

gametick

  1. (n) One cycle of the fixed iterative game logic which is continually executed to run the game, consisting of several tick phases in a fixed order.

tick phase

  1. (n) One part of a gametick, during which one portion of game logic is processed pertaining to a specific core game mechanic.

a. This definition sucks, but it serves the purpose for now

b. Raising some questions about crossover between dictionary/wiki/lesson mediums.

                                                      i.      My best guess for how we could categorize those three is like this: Dictionary explains what it is, wiki explains what it does, and lesson explains the implications and applications of the other two.

scheduled phase-bound action (noun)

  1. (n) Any instantaneous event or process whose execution is bound to a specific tick phase and dependent on a trigger which can occur during any tick phase of any prior tick including the tick phase during which the process is set to execute.

a. In practice, this is currently limited to tile ticks/block ticks and block events. It might be of some utility to expand this definition to include tile entities/block entities, most specifically block 36.

b. This definition is probably useless beyond the scope of trying to define other tick-related terms.

c. The goal of defining this term is to have a better way to explain how different tick phases can interact with each other. Sorry I used bullet lists which don't translate over well