تخطى إلى المحتوى

حاسبة Tick في Minecraft

حوّل بين game tick والثواني والدقائق وredstone tick ونقل hopper ووقت Minecraft.

في Minecraft، تفكر أحيانًا في الزمن بالثواني، بينما تعدّ اللعبة في الخلفية بالـ tick. قد يُغلق باب Redstone قبل خطوتين من الموعد، وقد يُفرّغ خط hopper أبطأ مما توقعت، وقد تكتب رقمًا في أمر /time set لكن الشمس لا تقف في المكان الذي تريده. المشكلة في الغالب ليست أن اللعبة معطلة؛ بل أنك تتعامل مع الزمن الحقيقي وgame tick وredstone tick كأنها الشيء نفسه. هذا الخلط شائع جدًا، خاصة لدى من يبدأون حديثًا مع Redstone.

زمن اللعبة لا يتدفق مثل الثواني

الإيقاع الأساسي في Minecraft يعمل عبر game tick. في لعبة Vanilla، السرعة المستهدفة هي 20 game tick في الثانية. أي:

$$
1 \text{ ثانية} = 20 \text{ game tick}
$$

وتساوي كل game tick مقدار 0.05 ثانية.

$$
1 \text{ game tick} = 0{,}05 \text{ ثانية}
$$

على الورق، الأمر بسيط جدًا.

إذا كتبت 60 ثانية، فهذا يساوي 1200 game tick. والدقيقة الواحدة كذلك تساوي 1200 game tick. أما 10 دقائق فتساوي 12000 game tick. ومن هنا يبدو مألوفًا أن دورة اليوم الكاملة في Minecraft تساوي 24000 tick؛ ففي عالم يعمل على 20 TPS، تساوي 24000 tick عشرين دقيقة في الحياة الواقعية.

عندما ينخفض TPS تتغير الأمور. 1200 game tick تستغرق 60 ثانية عند 20 TPS. إذا انخفض الخادم إلى 10 TPS، فإن نفس 1200 tick ستتمدد هذه المرة إلى 120 ثانية في الزمن الحقيقي. ما تنظر إليه داخل اللعبة وتقول عنه “لماذا تأخر هذا؟” قد لا يكون سببه الدائرة نفسها، بل إجهاد الخادم.

الصيغة الأساسية لحساب الزمن هي:

$$
\text{Game Tick} = \text{ثانية} \times \text{TPS}
$$

وتُكتب الصيغة العكسية هكذا:

$$
\text{ثانية} = \frac{\text{Game Tick}}{\text{TPS}}
$$

بالنسبة إلى Vanilla، يُؤخذ TPS عادةً على أنه 20. إذا كان الخادم يعاني من lag وتحاول فهم مدة الانتظار الحقيقية، فيجب إدخال TPS كما هو؛ وإلا سيبقى الحساب نظريًا.

هذا الفرق مزعج خصوصًا في المزارع التلقائية ودوائر Redstone. قد يعمل الجهاز بشكل صحيح في Singleplayer، لكنه يتصرف ببطء أكبر على خادم مزدحم. فاللعبة لا تزال تطلب نفس عدد الـ tick، لكنها تعالج تلك الـ tick ببطء أكبر.

Redstone tick يتحدث بلغة مختلفة

في Minecraft، كلمة “tick” وحدها قد تكون خادعة قليلًا. عندما يقول أحدهم “ضع تأخير 10 tick”، يجب أولًا أن تفهم هل يقصد game tick أم redstone tick. في جانب Redstone، يُعتبر 1 redstone tick مساويًا لـ 2 game tick. وعند سرعة Vanilla، يساوي ذلك 0.1 ثانية.

$$
1 \text{ redstone tick} = 2 \text{ game tick}
$$

$$
1 \text{ redstone tick} = 0{,}1 \text{ ثانية}
$$

10 redstone tick تساوي 20 game tick. لكن 10 game tick لا تساوي إلا 5 redstone tick.

$$
\text{Game Tick} = \text{Redstone Tick} \times 2
$$

$$
\text{Redstone Tick} = \frac{\text{Game Tick}}{2}
$$

عند الخلط بينهما، ينحرف توقيت الدائرة بمقدار الضعف. في أبواب piston، وأقفال item sorter، وسلاسل observer، يظهر هذا الفرق فورًا. يتعطل الباب في الموضع الذي يجب أن يُغلق فيه، ولا يستطيع piston التقاط بلوك، ويفلت من sorter عدد زائد من العناصر. ثم يبدأ اللاعب في لوم الأسلاك. أحيانًا تكون الأسلاك بريئة.

لهذا يُفكر في تأخير repeater بشكل منفصل. يمكن أن يعطي repeater تأخيرًا قدره 1 أو 2 أو 3 أو 4 redstone tick. إذا كنت تريد تأخيرًا أطول، فترصّ repeaters واحدًا بعد الآخر.

لنفترض أنك تريد تأخيرًا مقداره 46 game tick. نحوله أولًا إلى redstone tick:

$$
46 \text{ game tick} \div 2 = 23 \text{ redstone tick}
$$

لإنشاء 23 redstone tick باستخدام repeater، تحتاج إلى 5 repeaters كاملة مضبوطة على 4-tick، ويتبقى 3 redstone tick.

$$
23 = 5 \times 4 + 3
$$

أي أن الترتيب يُقرأ هكذا:

5 x 4-tick + 1 x 3-tick.

هنا تدخل أيضًا فكرة التقريب للأعلى. إذا لم يقع الحساب على redstone tick كامل، فمن الآمن أكثر إكماله إلى القيمة الأعلى بدل إعطاء تأخير ناقص. في النهاية لا يوجد إعداد نصف repeater. إما أن يكون 2 tick أو 3 tick. لا يوجد ما بينهما.

التعبير العملي المستخدم في جانب repeater هو:

$$
\text{Repeater Redstone Tick} = \left\lceil \frac{\text{Game Tick}}{2} \right\rceil
$$

بعد ذلك يُحسب عدد repeaters ذات 4-tick:

$$
\text{عدد مكررات 4 Tick} = \left\lfloor \frac{\text{Redstone Tick}}{4} \right\rfloor
$$

ويُستخرج التأخير المتبقي بحساب mod:

$$
\text{المتبقي} = \text{Redstone Tick} \bmod 4
$$

في Redstone، قد تكبر هذه الفروق الصغيرة أحيانًا بشكل كبير. خصوصًا في أجهزة piston السريعة، قد يحدد وصول الإشارة “بعد tick واحدة فقط” ما إذا كان البناء كله سيعمل بشكل صحيح أم لا. هذه إحدى الجوانب القاسية في اللعبة.

لماذا تبدو قيم /time set غريبة؟

يستغرق يوم Minecraft مقدار 24000 game tick. حركة الشمس، ودورة النهار والليل، وأمر /time set تعمل كلها على هذا الخط. عندما تكتب 6000 في الأمر، يصبح الوقت ظهرًا. حوالي 12000 يكون وقت الغروب. ويمكن اعتبار 18000 قريبًا من منتصف الليل.

لكن منطق الساعة لا يبدأ لأول وهلة كما في العالم الحقيقي. tick 0 يُقرأ في اللعبة تقريبًا كوقت 06:00. لذلك فإن 6000 tick تقابل تقريبًا 12:00. و18000 tick تقع تقريبًا حول 00:00.

حساب tick داخل اليوم ينظر إلى باقي قيمة tick المُدخلة بالنسبة إلى 24000:

$$
\text{يوم Tick} = \text{Game Tick} \bmod 24000
$$

أي حتى لو كتبت 25000 tick، فستقرأ اللعبة ذلك كأنه tick رقم 1000 في اليوم الجديد. لأن الدورة تبدأ من جديد بعد 24000.

الحساب التقريبي المستخدم لمقابل الساعة هو:

$$
\text{ساعة} = \left\lfloor \left(\frac{\text{يوم Tick}}{1000} + 6\right) \bmod 24 \right\rfloor
$$

وفي جانب الدقائق، تُضرب قيمة tick المتبقية في 0.06:

$$
\text{دقيقة} = \text{round}((\text{يوم Tick} \bmod 1000) \times 0{,}06)
$$

بالنسبة إلى 6000 tick، يصل الحساب تقريبًا إلى 12:00.

$$
\left(\frac{6000}{1000} + 6\right) \bmod 24 = 12
$$

صانعو الخرائط يستخدمون هذا كثيرًا. ويفيد أيضًا عند التقاط لقطات الشاشة. أحيانًا يغير اتجاه الظل وحده إحساس المشهد؛ ومن يلتقط صورًا داخل اللعبة يعرف أن ضوء الصباح لا يعطي نفس الإحساس الذي يعطيه ضوء الظهر.

هذه القائمة القصيرة سهلة التذكر:

وقت Minecraftقيمة Tick
حوالي شروق الشمس0
الظهر6000
حوالي غروب الشمس12000
بداية الليل13000
منتصف الليل18000
الرجوع إلى يوم جديد24000

كتابة 24000 وكتابة 0 تؤديان في أغلب الحالات إلى النتيجة نفسها. فاللعبة تعيد الدورة إلى البداية.

الانتظار بسرعة Hopper مشكلة أخرى

Hopper واحد من أكثر الأجزاء هدوءًا في Minecraft، لكنه أيضًا من أكثرها تسببًا في الاختناقات. يحتاج إلى 8 game tick لنقل item واحد إلى مخزون آخر. عند 20 TPS، يساوي ذلك 0.4 ثانية.

$$
1 \text{ نقل الهوبر} = 8 \text{ game tick}
$$

$$
1 \text{ نقل الهوبر} = 0{,}4 \text{ ثانية}
$$

تُحسب سرعة النقل لكل hopper في الدقيقة هكذا:

$$
\text{Item / دقيقة} = \frac{\text{TPS} \times 60}{8}
$$

إذا كان TPS يساوي 20:

$$
\frac{20 \times 60}{8} = 150
$$

أي أن hopper واحدًا ينقل تقريبًا 150 item في الدقيقة.

لنفكر في كومة من 400 item. أولًا نجد مقابلها بالـ tick:

$$
400 \times 8 = 3200 \text{ game tick}
$$

ثم نحولها إلى ثوانٍ:

$$
\frac{3200}{20} = 160 \text{ ثانية}
$$

160 ثانية تساوي دقيقتين و40 ثانية.

قد يبدو هذا الرقم صغيرًا، لكنه لا يبدو كذلك عندما تقف بجانب الصندوق بينما تعمل المزرعة. خاصة إذا كان النظام ينتج 300 item في الدقيقة وأنت تحاول جمعها بـ hopper واحد، فالاختناق لا مفر منه. تتراكم العناصر، ثم يتشكل طابور hopper، ثم تبدأ برؤية items على الأرض.

رؤية items على الأرض هي طريقة نظام التخزين في قول: “أنا لا أستطيع اللحاق”.

يجب تجنب خطأ واحد في حساب hopper: هذه السرعة تخص hopper واحدًا فقط. إذا كانت عدة خطوط تعمل بالتوازي، يزداد التدفق. وإذا كانت سلسلة hopper طويلة جدًا، فإن كل نقل يضيف تأخيره الخاص. وإذا وُجدت قناة ماء أو خط dropper أو chest minecart أو نظام نقل معدل، يتغير الموضوع. هذا الحساب مخصص أكثر لقراءة سريعة لسلوك vanilla hopper.

TPS يؤثر هنا أيضًا على الزمن الحقيقي. عندما تُنقل 400 item خلال 160 ثانية عند 20 TPS، فإنها تمتد إلى 320 ثانية عند 10 TPS.

$$
\frac{3200}{10} = 320 \text{ ثانية}
$$

عدد tick داخل اللعبة هو نفسه، لكن مدة الانتظار الحقيقية تتضاعف. أحيانًا يكون هذا سبب سؤال اللاعبين على الخادم: “هل تعطل hopper؟” لا، لم يتعطل؛ العالم فقط أصبح أثقل.

أي وضع يجب استخدامه ومتى؟

إذا كان السؤال لديك هو “كم ثانية؟”، فالتحويل المباشر يكفي. مثلًا إذا قلت “ليُغلق الباب بعد 5 ثوانٍ”، فإن 5 ثوانٍ تساوي 100 game tick.

$$
5 \times 20 = 100 \text{ game tick}
$$

معرفة هذا القدر تكفي لأوامر command block أو أعمال التأخير البسيطة.

إذا كنت تبني دائرة Redstone، فانظر إلى تأخير repeater. لأن ما ستضعه في اللعبة ليس ثانية، بل إعداد repeater. تأخير قدره ثانيتان يساوي 40 game tick، أي 20 redstone tick.

$$
2 \times 20 = 40 \text{ game tick}
$$

$$
40 \div 2 = 20 \text{ redstone tick}
$$

ويمكن إنشاء 20 redstone tick باستخدام 5 repeaters مضبوطة على 4-tick.

بالنسبة إلى وقت Minecraft، تحتاج إلى قيمة /time set. إذا أردت “ليكن الوقت ظهرًا”، فاستخدم 6000. وإذا أردت “ليكن منتصف الليل”، فاستخدم حوالي 18000. هنا لا نتحدث عن الثواني، بل عن موضع tick داخل اليوم.

أما في جانب hopper فالسؤال مختلف تمامًا: “كم يستغرق انتقال هذا العدد من items؟” من المنطقي أكثر أن تكتب عدد items وترى الزمن. يُستخدم ذلك خاصة عند مخارج المزارع التلقائية لمعرفة ما إذا كان hopper واحدًا يكفي أم لا.

اختيار الوحدة مهم. قد تبدو game tick وredstone tick والثانية والدقيقة وhopper transfer ويوم Minecraft كأنها أوجه مختلفة للشيء نفسه، لكنها تُستخدم داخل اللعبة لاتخاذ قرارات مختلفة. يمكنك التفكير في الثانية كزمن الإنسان، وgame tick كزمن اللعبة، وredstone tick كزمن الدائرة.

تقريب بسيط، لكنه مفيد.

لماذا تتصرف اللعبة بشكل مختلف رغم أن الحساب صحيح؟

حتى عندما يكون حساب tick صحيحًا، قد لا تطابق النتيجة داخل اللعبة الحساب تمامًا. هناك عدة أسباب لذلك.

الأول هو TPS. إذا لم يكن الخادم يعمل على 20 TPS، فسيطول الزمن الحقيقي. قد تنتظر في العالم الحقيقي أكثر من 60 ثانية قبل أن تقول اللعبة “مرّت 1200 tick”. لا يفسد حساب الأمر أو Redstone أو hopper؛ بل يكتمل فقط في وقت متأخر.

الثاني هو تحميل chunk. إذا لم يكن chunk محملًا، فلن تعمل بعض الأنظمة هناك كما تتوقع. خط hopper، المزرعة، redstone clock؛ كلها تعتمد على بقاء العالم نشطًا. الجهاز الذي تركته بعيدًا قد لا يستمر دائمًا في العمل كما تتخيله.

الثالث هو ترتيب تحديث Redstone. Redstone ليس مجرد حساب زمن. يدخل في الأمر مصدر الإشارة، وأي بلوك يُحدَّث أولًا، واتجاه repeater، وسلوك comparator، وما يراه piston ومتى يراه. أحيانًا تكون 4 tick هي القيمة الصحيحة، لكن تخطيط الدائرة هو الخاطئ.

هناك أيضًا فروق بين Java وBedrock. رغم أن معظم نسب الزمن الأساسية تبدو متشابهة، فإن اختلافات الإصدارات في سلوك Redstone قد تسبب صداعًا. ليس من الغريب أن تشاهد دائرة Java على YouTube ثم تبنيها حرفيًا في Bedrock ولا تعمل.

الحاسبة لا تصنع السحر في هذه النقطة. إنها تعطيك جانب الزمن بشكل نظيف. أما الباقي فيحدده البناء الفيزيائي داخل اللعبة.

بعض العادات الصغيرة والمفيدة

أولًا، وضّح أي نوع من “tick” تقصد. هل هي game tick أم redstone tick؟ الدخول في حساب الدائرة دون سؤال ذلك يشبه وضع البلوكات دون قياس.

في خطوط hopper الطويلة، لا تعتمد على سرعة hopper واحد. إذا كانت المزرعة تنتج أكثر من 150 item في الدقيقة، فسيتعطل خط واحد عند نقطة ما. هل تحتاج إلى خطين، أم تدفق ماء، أم dropper clock؟ هذا يعتمد على التصميم.

في أوامر /time set، لا تحفظ الأرقام كلها عن ظهر قلب؛ اعرف فقط بعض النقاط الأساسية: 0 صباحًا، 6000 ظهرًا، 12000 مساءً، 18000 منتصف الليل. الباقي يُضبط بالنظر. Minecraft في النهاية لعبة تعتمد قليلًا على التقدير البصري أيضًا.

في تأخير repeater، من الأسهل التفكير على شكل كتل 4-tick. حوّل التأخير أولًا إلى redstone tick، ثم قسّمه إلى أجزاء من 4. إذا كان الباقي 1 أو 2 أو 3، تضع repeater إضافيًا في النهاية.

ولا تنسَ TPS تمامًا. في عالم اللاعب الفردي، يكفي غالبًا افتراض 20 TPS. أما إذا بدأت الأمور تصبح غريبة على الخادم، فمن الأذكى أن تنظر أولًا إلى TPS. قبل أن تفكك خط Redstone، أعني.

كيف اختبرناه

تم التحقق من الحسابات اعتمادًا على افتراض 20 TPS في vanilla Minecraft. وفقًا لهذا الافتراض، يجب أن تساوي 1200 game tick مدة 60 ثانية، أي 1 دقيقة؛ وتمت مقارنة التحويل بهذه القيمة. في جانب repeater، تم أيضًا التحقق من مثال 46 game tick: تساوي 46 game tick عدد 23 redstone tick، وهذا يقابل ترتيبًا مكوّنًا من 5 repeaters بإعداد 4-tick و1 repeater بإعداد 3-tick. وفي حساب hopper، تم استخدام نتيجة 400 x 8 = 3200 game tick لـ 400 item و160 ثانية عند 20 TPS.

الأسئلة الشائعة

كم tick توجد في ثانية واحدة في Minecraft؟
في Vanilla Minecraft، تساوي الثانية الواحدة 20 game tick. تنطبق هذه القيمة على سرعة اللعب العادية عند 20 TPS. إذا انخفضت TPS على الخادم، فسيزداد الوقت الحقيقي المستغرق حتى لو بقي عدد game tick كما هو.
كم game tick يساوي 1 redstone tick؟
1 redstone tick يساوي 2 game tick. لذلك فإن تأخير 10 redstone tick يساوي في الواقع 20 game tick، أي ثانية واحدة بسرعة vanilla. عند ضبط repeater، يجب عدم الخلط بين game tick وredstone tick.
كم tick يستغرق يوم واحد في Minecraft؟
تستغرق دورة اليوم الكاملة في Minecraft مقدار 24000 game tick. في عالم يعمل بسرعة 20 TPS، يعادل ذلك 20 دقيقة في الوقت الحقيقي. `/time set 6000` هو وقت الظهيرة، و`/time set 12000` هو الغروب، و`/time set 18000` يكون تقريبًا منتصف الليل.

المراجع والمصادر

تستند الحسابات في هذه الصفحة إلى المصادر المعيارية والعلمية التالية.

  1. Minecraft Wiki - Tick

    minecraft.wiki
  2. Minecraft Wiki - Redstone circuits

    minecraft.wiki
  3. Minecraft Wiki - Redstone Repeater

    minecraft.wiki
  4. Minecraft Wiki - Hopper

    minecraft.wiki
  5. Minecraft Wiki - Daylight cycle

    minecraft.wiki
آخر تحديث:
تستند المعلومات إلى قيم مرجعية قياسية. يُنصح بالتحقق في المشاريع الهامة.