Minecraft Tick Hesaplama
Game tick, saniye, dakika, redstone tick, hopper transferi ve Minecraft zamanı arasında dönüşüm yapın.
Minecraft’ta süreyi bazen saniyeyle düşünürsünüz, oyun ise arkada tick sayar. Redstone kapısı iki adım erken kapanır, hopper hattı beklediğinizden yavaş boşalır, /time set komutuna sayı yazarsınız ama güneş istediğiniz yerde durmaz. Sorun çoğu zaman oyunun bozuk olması değil; sizin gerçek süre, game tick ve redstone tick’i aynı şey sanmanızdır. Benzer karışıklık çok yaşanıyor, özellikle de redstone’a yeni girenlerde.
Oyunun zamanı saniye gibi akmaz
Minecraft’ın temel ritmi game tick üzerinden yürür. Vanilla oyunda hedef hız saniyede 20 game tick’tir. Yani:
$$
1 \text{ saniye} = 20 \text{ game tick}
$$
Bir game tick de 0,05 saniyeye denk gelir.
$$
1 \text{ game tick} = 0{,}05 \text{ saniye}
$$
Kağıt üstünde gayet düz.
60 saniye yazarsanız 1200 game tick eder. 1 dakika da aynı şekilde 1200 game tick. 10 dakika ise 12000 game tick. Minecraft’ta tam gün döngüsünün 24000 tick olması da buradan tanıdık gelir; 20 TPS çalışan bir dünyada 24000 tick, gerçek hayatta 20 dakikadır.
TPS düştüğünde işler değişir. 1200 game tick, 20 TPS’te 60 saniye sürer. Sunucu 10 TPS’e düşerse aynı 1200 tick bu kez gerçek hayatta 120 saniyeye yayılır. Oyunda “niye gecikti bu?” diye baktığınız şey bazen devreden değil, sunucunun yorulmasından kaynaklanır.
Süre hesabında ana formül şudur:
$$
\text{Game Tick} = \text{Saniye} \times \text{TPS}
$$
Tersi de şöyle yazılır:
$$
\text{Saniye} = \frac{\text{Game Tick}}{\text{TPS}}
$$
Vanilla için TPS genelde 20 alınır. Sunucu laglıysa ve gerçek bekleme süresini anlamaya çalışıyorsanız TPS’i olduğu gibi yazmak gerekir; yoksa hesabınız teorik kalır.
Bu ayrım özellikle otomatik farm ve redstone devrelerinde can sıkar. Singleplayer’da düzgün çalışan düzenek, kalabalık sunucuda daha ağır davranabilir. Çünkü oyun hâlâ aynı tick sayısını ister, sadece o tick’leri daha yavaş işler.
Redstone tick başka bir dil konuşur
Minecraft’ta “tick” kelimesi tek başına biraz tuzaklı. Birisi “10 tick delay koy” dediğinde game tick mi, redstone tick mi söylüyor, önce onu anlamak lazım. Redstone tarafında 1 redstone tick, 2 game tick kabul edilir. Vanilla hızda bu 0,1 saniyedir.
$$
1 \text{ redstone tick} = 2 \text{ game tick}
$$
$$
1 \text{ redstone tick} = 0{,}1 \text{ saniye}
$$
10 redstone tick, 20 game tick eder. Ama 10 game tick sadece 5 redstone tick’tir.
$$
\text{Game Tick} = \text{Redstone Tick} \times 2
$$
$$
\text{Redstone Tick} = \frac{\text{Game Tick}}{2}
$$
İkisini karıştırınca devre zamanı iki kat şaşar. Piston kapılarında, item sorter kilitlemelerinde, observer zincirlerinde bu fark hemen belli olur. Kapı kapanması gereken yerde takılır, piston bir bloğu yakalayamaz, sorter fazla item kaçırır. Sonra insan kabloyu suçlar. Kablo bazen masumdur.
Repeater gecikmesi bu yüzden ayrı düşünülür. Repeater 1, 2, 3 veya 4 redstone tick gecikme verebilir. Daha uzun bir gecikme istiyorsanız repeater’ları arka arkaya dizersiniz.
46 game tick’lik bir gecikme istendiğini düşünelim. Önce redstone tick’e çeviririz:
$$
46 \text{ game tick} \div 2 = 23 \text{ redstone tick}
$$
23 redstone tick’i repeater ile kurmak için 5 tane tam 4-tick repeater gerekir, elde de 3 redstone tick kalır.
$$
23 = 5 \times 4 + 3
$$
Yani düzen şöyle okunur:
5 x 4-tick + 1 x 3-tick.
Burada yukarı yuvarlama mantığı da devreye girer. Hesap tam redstone tick’e denk gelmiyorsa eksik gecikme vermek yerine bir üst değere tamamlamak daha güvenlidir. Yarım repeater ayarı yok sonuçta. Ya 2 tick’tir ya 3 tick. Arası yok.
Repeater tarafında kullanılan pratik ifade şu:
$$
\text{Repeater Redstone Tick} = \left\lceil \frac{\text{Game Tick}}{2} \right\rceil
$$
Daha sonra 4-tick repeater sayısı bulunur:
$$
\text{4 Tick Repeater Sayısı} = \left\lfloor \frac{\text{Redstone Tick}}{4} \right\rfloor
$$
Kalan gecikme de mod hesabıyla çıkar:
$$
\text{Kalan} = \text{Redstone Tick} \bmod 4
$$
Redstone’da bu küçük farklar bazen fazla büyür. Özellikle hızlı piston düzeneklerinde “bir tick daha geç gelsin” dediğiniz sinyal, bütün yapının düzgün çalışıp çalışmamasını belirler. Oyunun acımasız tarafı biraz bu.
/time set değerleri neden garip görünür?
Minecraft günü 24000 game tick sürer. Güneşin hareketi, gündüz-gece döngüsü ve /time set komutu bu çizgi üzerinde çalışır. Komuta 6000 yazdığınızda öğlen olur. 12000 civarı gün batımıdır. 18000 gece yarısı gibi düşünülebilir.
Ama saat mantığı ilk bakışta gerçek dünyadaki gibi başlamaz. Tick 0, oyunda yaklaşık 06:00 gibi okunur. Bu yüzden 6000 tick, yaklaşık 12:00’ye denk gelir. 18000 tick de 00:00 civarına oturur.
Gün içi tick hesabı, girilen tick değerinin 24000’e göre kalanına bakar:
$$
\text{Gün Tick} = \text{Game Tick} \bmod 24000
$$
Yani 25000 tick yazsanız da oyun bunu yeni günün 1000. tick’i gibi okur. Çünkü 24000’den sonra döngü tekrar başlar.
Saat karşılığı için kullanılan yaklaşık hesap şöyle:
$$
\text{Saat} = \left\lfloor \left(\frac{\text{Gün Tick}}{1000} + 6\right) \bmod 24 \right\rfloor
$$
Dakika tarafında da kalan tick değeri 0,06 ile çarpılır:
$$
\text{Dakika} = \text{round}((\text{Gün Tick} \bmod 1000) \times 0{,}06)
$$
6000 tick için hesap yaklaşık 12:00’ye gelir.
$$
\left(\frac{6000}{1000} + 6\right) \bmod 24 = 12
$$
Harita yapanlar bunu çok kullanır. Ekran görüntüsü alırken de işe yarar. Bazen gölgenin yönü bile sahneyi değiştirir; oyunda fotoğraf çekenler bilir, sabah ışığıyla öğle ışığı aynı hissettirmez.
Şu kısa liste akılda kalır:
| Minecraft zamanı | Tick değeri |
|---|---|
| Gün doğumu civarı | 0 |
| Öğle | 6000 |
| Gün batımı civarı | 12000 |
| Gece başlangıcı | 13000 |
| Gece yarısı | 18000 |
| Yeni güne dönüş | 24000 |
24000’i yazmakla 0 yazmak çoğu durumda aynı kapıya çıkar. Oyun döngüyü başa sarar.
Hopper hızında beklemek ayrı dert
Hopper, Minecraft’ın en sessiz ama en çok darboğaz çıkaran parçalarından biri. Bir item’ı başka bir envantere aktarması için 8 game tick gerekir. 20 TPS’te bu 0,4 saniye eder.
$$
1 \text{ hopper transferi} = 8 \text{ game tick}
$$
$$
1 \text{ hopper transferi} = 0{,}4 \text{ saniye}
$$
Tek hopper’ın dakikadaki aktarım hızı şu şekilde hesaplanır:
$$
\text{Item / Dakika} = \frac{\text{TPS} \times 60}{8}
$$
TPS 20 ise:
$$
\frac{20 \times 60}{8} = 150
$$
Yani tek hopper dakikada yaklaşık 150 item taşır.
400 itemlik bir yığın düşünelim. Önce tick karşılığını buluruz:
$$
400 \times 8 = 3200 \text{ game tick}
$$
Sonra saniyeye çeviririz:
$$
\frac{3200}{20} = 160 \text{ saniye}
$$
160 saniye, 2 dakika 40 saniye eder.
Bu sayı küçük gibi görünür ama farm çalışırken sandığın başında bekleyince pek küçük gelmez. Hele sistem dakikada 300 item üretiyor, siz tek hopper ile toplamaya çalışıyorsanız tıkanma kaçınılmaz. Item’lar birikir, sonra hopper kuyruğu oluşur, sonra yerde item görmeye başlarsınız.
Yerde item görmek, depolama sisteminin “ben yetişemiyorum” deme şeklidir.
Hopper hesabında tek hataya düşmemek lazım: Bu hız tek hopper içindir. Birden fazla hat paralel çalışıyorsa akış artar. Hopper zinciri çok uzunsa her aktarım kendi gecikmesini getirir. Su kanalı, dropper hattı, chest minecart veya modlu taşıma sistemi varsa konu değişir. Bu hesap daha çok vanilla hopper davranışını hızlı okumak içindir.
TPS burada da gerçek süreyi etkiler. 400 item 20 TPS’te 160 saniyede aktarılırken, 10 TPS’te 320 saniyeye uzar.
$$
\frac{3200}{10} = 320 \text{ saniye}
$$
Oyun içi tick sayısı aynı, gerçek bekleme süresi iki kat. Sunucuda “hopper bozuldu mu?” diye sorulmasının sebebi bazen budur. Bozulmaz, sadece dünya ağırlaşmıştır.
Hangi mod ne zaman kullanılmalı?
Elinizde “kaç saniye?” sorusu varsa düz dönüşüm yeter. Mesela “kapı 5 saniye sonra kapansın” diyorsanız 5 saniye, 100 game tick eder.
$$
5 \times 20 = 100 \text{ game tick}
$$
Bu kadarını bilmek, komut bloğu veya basit gecikme işleri için yeterli olur.
Redstone devresi kuruyorsanız repeater gecikmesine bakın. Çünkü oyunda yerleştireceğiniz şey saniye değil, repeater ayarıdır. 2 saniyelik gecikme 40 game tick, yani 20 redstone tick eder.
$$
2 \times 20 = 40 \text{ game tick}
$$
$$
40 \div 2 = 20 \text{ redstone tick}
$$
20 redstone tick de 5 tane 4-tick repeater ile kurulabilir.
Minecraft zamanı için /time set değeri gerekir. “Öğle olsun” diyorsanız 6000, “gece yarısı olsun” diyorsanız 18000 civarı. Burada saniye değil, gün içindeki tick konumu konuşulur.
Hopper tarafında soru bambaşka: “Şu kadar item ne kadar sürede akar?” Item sayısını yazıp süreyi görmek daha mantıklıdır. Özellikle otomatik farm çıkışlarında tek hopper’ın yetip yetmediğini anlamak için kullanılır.
Birim seçimi önemli. Game tick, redstone tick, saniye, dakika, hopper transferi ve Minecraft günü aynı şeyin farklı yüzleri gibi dursa da oyunda farklı kararlar için kullanılırlar. Saniye insanın zamanı, game tick oyunun zamanı, redstone tick devrenin zamanı gibi düşünebilirsiniz.
Biraz kabaca ama işe yarıyor.
Hesap doğruysa oyun neden farklı davranır?
Tick hesabı doğru olduğu halde oyunda sonuç birebir tutmayabilir. Bunun birkaç nedeni var.
İlki TPS. Sunucu 20 TPS çalışmıyorsa gerçek süre uzar. Oyun “1200 tick geçti” diyene kadar gerçek dünyada 60 saniyeden fazla beklemiş olabilirsiniz. Komut, redstone veya hopper hesabı bozulmaz; sadece daha geç tamamlanır.
İkincisi chunk yükleme. Bir chunk yüklenmiyorsa oradaki bazı sistemler beklediğiniz gibi çalışmaz. Hopper hattı, farm, redstone clock; hepsi dünyanın aktif kalmasına bağlı. Uzakta bıraktığınız düzenek her zaman kafanızdaki gibi işlemeye devam etmeyebilir.
Üçüncüsü redstone update sırası. Redstone, sadece süre hesabı değildir. Sinyalin nereden geldiği, hangi bloğun önce güncellendiği, repeater yönü, comparator davranışı, pistonun neyi ne zaman gördüğü işin içine girer. Bazen 4 tick doğru değerdir ama devrenin yerleşimi yanlıştır.
Bir de Java ve Bedrock farkları var. Çoğu temel zaman oranı aynı görünse de redstone davranışında sürüm farkları baş ağrıtabilir. YouTube’dan Java devresi izleyip Bedrock’ta birebir kurunca çalışmaması şaşırtıcı değil.
Hesap makinesi bu noktada sihir yapmaz. Size zaman tarafını temiz verir. Geri kalanını oyunun fiziksel düzeni belirler.
Küçük ama işe yarayan birkaç alışkanlık
Önce “tick” kelimesinin hangi tick olduğunu netleştirin. Game tick mi, redstone tick mi? Bunu sormadan devre hesabına girmek, ölçmeden blok yerleştirmek gibi biraz.
Uzun hopper hatlarında tek hopper hızına güvenmeyin. Bir farm dakikada 150 item’dan fazla üretiyorsa tek hat bir noktada tıkanır. İki hat mı gerekir, su akışı mı daha iyi olur, dropper clock mu kurulur; orası tasarıma kalır.
/time set komutlarında sayıları ezberlemek yerine birkaç ana noktayı bilin: 0 sabah, 6000 öğle, 12000 akşam, 18000 gece yarısı. Geri kalanı gözle ayarlanır. Minecraft biraz da göz kararı oyunudur zaten.
Repeater gecikmesinde 4-tick bloklar halinde düşünmek rahatlatır. Önce gecikmeyi redstone tick’e çevirin, sonra 4’lük parçalara bölün. Kalan 1, 2 veya 3 ise sona bir repeater daha koyarsınız.
TPS’i de tamamen unutmayın. Tek oyunculu dünyada çoğu zaman 20 TPS kabulü yeter. Sunucuda işler tuhaflaşıyorsa önce TPS’e bakmak daha akıllıca olur. Redstone hattını sökmeden önce, yani.