Yolcular ve Kargo dağılımı, yaygın olarak "Cargodist" olarak bilinir; yolcuların, postanın ve diğer tüm kargo türlerinin bir hedef belirtmesini sağlayan bir özelliktir. Kargo yalnızca kendi özel hedefine giden araçlara biner. Cargodist orijinal olarak bir yamaydı. Haziran 2013 itibarıyla Cargodist trunk'a dahil edilmiştir; onu içeren ilk kararlı sürüm 1.4.0 idi.
Contents |
Giriş
Klasik OpenTTD'de bir kaynaktan gelen kargoyu birden fazla hedef arasında dağıtmak zordur. Ya her hedef için farklı araçlar kullanmanız ya da bunu yapmak için karmaşık talimat sistemleri kurmanız gerekir. Diyelim ki A ve B kasabaları arasında giden bir treniniz var. Her kasabada tren istasyonuna bağlı birkaç durağı olan bir otobüs ağınız var. A'daki herhangi bir otobüs durağından veya tren istasyonundan B'deki herhangi bir otobüs durağına veya tren istasyonuna ve tersi yöne yolcu seyahat etmesini isteyebilirsiniz. Klasik OpenTTD'de A'daki otobüsler çeşitli otobüs duraklarından yolcu toplayıp tren istasyonunda aktarabilir. Orada bir tren onları alıp B'deki tren istasyonunda yeniden aktarabilir. Ardından B'deki otobüsler yolcuları tren istasyonu ile her otobüs durağı arasında yıldız şeklinde gidip gelerek dağıtabilir. Her araç "aktar ve boş bırak" talimatları kullanır ve bu çözüm yolcuların B'den A'ya, tren istasyonlarından herhangi birine veya bir kasaba içindeki otobüs durakları arasında gitmesine izin vermez. Daha da karmaşık talimat sistemleri kurarak bu ek rotalara izin vermek mümkündür. Ancak ne kadar çok istasyon ve araç eklerseniz bu sistemler o kadar karmaşık ve hantal hale gelir.
Cargodist aktarımları otomatik olarak halleder ve ilgili yolcular için hedefler seçer. Yukarıdaki örnekte herhangi bir "aktar ve boş bırak" talimatı belirtmeniz veya yıldız şeklinde otobüs ağları kurmanız gerekmez. A ve B'de basit talimatlara sahip herhangi bir otobüs ağı, tren istasyonuna bağlı olduğu sürece yeterlidir. Yolcuların nereye gidecekleri ve hangi araçları alacakları konusunda kendi fikirleri olacağından, daha fazla tıkanıklık ve herhangi bir istasyonda genellikle daha fazla bekleyen yolcu görebilirsiniz.
Aynı şeyi başarmaya çalışan başka birkaç yama daha önce vardı. Cargodest projesinin aksine, kargo yönlendirme ve farklı rotalardaki yükleri dengeleme sorunları Cargodist'te ayrılmaz kabul edilir ve birlikte çözülür. Ayrıca taşıma talebinin tanımı yukarıdaki sorunları çözmenin önkoşulu olarak görülür ve önce ele alınır. YACD'den temel farklar şunlardır: Cargodist a, tüm harita yerine yalnızca erişilebilir hedefleri dikkate alır ve b, performans nedeniyle tüm yönlendirme şemasını ayrı iş parçacıklarında önceden hesaplar.
forum konusu daha fazla bilgi içerir. Cargodist hakkında sorularınız varsa lütfen oraya yazın.
Haziran 2013'ten beri Cargodist trunk'a dahil edilmiştir.
Çalışma modları
Cargodist ile kargo veya yolcular için üç farklı dağıtım modu elde edersiniz. Gelişmiş ayarların "Kargo Dağılımı" grubunda hangisini kullanacağınızı kargo başına seçebilirsiniz.
- Elle dağılım, kargonun hiç otomatik dağıtılmadığı anlamına gelir. Cargodist olmadan olduğu gibi davranır.
- Simetrik dağılımda dağıtım algoritması iki istasyon arasında her iki yönde aynı miktarda kargo veya yolcu göndermeye çalışır. Bu her zaman başarılı olmaz. Diğer tüm istasyonların toplamından daha fazla yolcu üreten tek bir büyük istasyonunuz varsa, bunlar için simetrik bir dağılım olmadığı açıktır. Algoritmanın katılığını "dönen kargo miktarı" ayarıyla etkileyebilirsiniz. %100'den az ayarlarsanız bir yönde giden herhangi bir kargo, diğer yönde daha az kargo ile eşleştirilir.
- Asimetrik dağılım, kargo veya yolcuları ağda bu tür kısıtlamalar olmadan dağıtır.
Küçük harita ve ana görünüm penceresine uzantılar
Hem küçük harita hem ana görünüm penceresi için bir bağlantı grafiği kaplaması vardır. İstasyonları ve mevcut taşıma bağlantılarını gösterir. Bağlantılar, kapasitelerine göre ne kadar kargo taşıdıklarına bağlı olarak farklı renklerde çizgiler olarak gösterilir. Sarı ve kırmızı tonlar yalnızca seçili kargolar için Cargodist etkinse ve bağlantı grafiği hesaplaması bağlantının taşınacak kargo miktarı için çok az kapasiteye sahip olduğunu belirlemişse gösterilir. Bu durumda bağlantıya daha fazla veya daha hızlı araç atamalısınız. Beyaz veya soluk yeşil tonlar, bağlantının taşınacak kargo için çok fazla kapasiteye sahip olduğunu gösterir. Bu durumda bazı araçları çekebilirsiniz. Ancak araçların kargolarını teslim ettikten sonra bilerek boş döndüğü bir bağlantı da olabilir.
İstasyonlar oyuncu renginde kareler olarak gösterilir. Kareler ne kadar büyükse, çevredeki endüstriler ve evler tarafından o kadar fazla kargo veya yolcu üretilip istasyona sağlanır. Ana görünüm penceresi için bağlantı grafiği kaplamasının açıklaması "harita" menüsünden açılabilir. Orada hangi oyuncuların ve hangi kargoların görüntüleneceğini seçebilirsiniz. Küçük harita için kaplama kendi bağlantılarınızla sınırlıdır. Menü bölümünde görüntülenecek kargoları seçmek için yeni bir alt menü vardır.
İstasyon arayüzüne uzantılar
İstasyon arayüzü, bekleyen kargonun kaynaklarını, sonraki atlamalarını ve tahmini hedeflerini ve istasyon üzerinden planlanan kargo akışlarını gösterir. Son hedefler yalnızca tahminidir. Her kargo paketinin tam olarak o yoldan gideceğini beklemeyin. Kargo paketleri yönlendirme için asla bölünmez; ancak farklı boyutlardaki araçlara sığmak için bölünebilirler. Bu, burada tam sayıları vermenin çok zor olacağı anlamına gelir. Uzun vadede yine de her şey uygun hedeflere gönderilir.
Üst menüdeki "Grupla" açılır menüsüyle kargoyu kaynak istasyon, sonraki atlama ve hedefe göre herhangi bir sırada gruplayabilirsiniz. Alt gruplar satır sonundaki küçük "+" ve "-" düğmelerine tıklanarak açılıp kapatılır. Gruplar ve alt gruplar içindeki girdileri temsil ettikleri istasyona veya görüntülenen kargo miktarına göre sıralayabilirsiniz. Gruplama sırası için olanın üzerindeki açılır menü, sıralama ölçütü seçimini gösterilecek mod seçimiyle (planlanan veya bekleyen kargo) birleştirir.
Gelişmiş ayarlar
Bazı kargolar için otomatik dağılımı açtığınızda kargonun gerçekten dağıtılması birkaç oyun günü sürer. Bunun nedeni dağılımın periyodik olarak hesaplanması ve etkinin ancak ilk hesaplamadan sonra görülebilmesidir. Hesaplama bağlantı grafiklerine dayalıdır. Bir bağlantı grafiği, ağınızda bir kargo için bağlı bir bileşendir. Giriş örneğinde A ve B kasabalarındaki tüm istasyonlar bir bağlantı grafiği oluşturur. A veya B'ye bağlı olmayan C kasabasında başka bir otobüs ağı varsa o farklı bir bağlantı grafiği oluşturur. Bir oyunda ne kadar çok bağlantı grafiği varsa hepsinin hesaplanması o kadar uzun sürer.
Gelişmiş ayarların "Kargo Dağılımı" grubundaki ilgili ayarlarla yeni bir bağlantı grafiği hesaplamasının ne sıklıkla başlatılacağını ve her hesaplama için ne kadar süre tanınacağını etkileyebilirsiniz. Dolaylı olarak bu, herhangi bir zamanda paralel hesaplanacak maksimum bağlantı grafiği sayısını belirler. Bağlantı grafiği hesaplamaları ana oyundan ayrı iş parçacıklarında yapılır. Bu iş parçacıkları ağ senkronizasyonunu korumak için önceden tanımlanmış zamanlarda birleştirilir. Çoğu bilgisayardaki çoğu oyun için hem aralık hem süre ayarları, talimatlardaki değişiklikler ile bağlantı grafiğinin tepkileri arasındaki gecikmeyi azaltmak için epey düşürülebilir. Çok düşük ayarlarsanız oyun, bir bağlantı grafiği hesaplama iş parçacığının bitmesini beklerken periyodik olarak "donar". Varsayılan ayarlar yavaş bilgisayarlarda son derece büyük oyunlar için tasarlanmıştır; böylece bu asla olmaz. Bağlantı grafiği hesaplamalarının doğruluğunu belirleyen başka bir ayar daha vardır. Hesaplama ne kadar doğruysa bitmesi o kadar uzun sürer. Değiştirirseniz "süre" ayarına karşı dengelemelisiniz.
Mesafenin talepler üzerindeki etkisi ayarı, yakındaki istasyonlara uzak istasyonlardan ne kadar daha fazla kargo gönderileceğini belirler. Hata ayıklama dışında kısa yol doygunluk ayarlarını değiştirmek istemezsiniz.
Sınırlamalar
Cargodist eskiden bağlantı grafiğini oluştururken "tümünü boşalt", "aktar", "boşaltma yok" veya "yükleme yok" özniteliklerine sahip bazı talimatları dikkate almazdı. Aynı rotada bu tür değişiklikleri olan ve olmayan araçlarınız varsa ilgili bağlantıların kapasitesini hâlâ doğru tahmin edemez. Ancak bu talimatların herhangi bir kaynaktan kargonun bu bağlantılarda taşınmasına izin verip vermediğini öğrenir. Yani bu talimatlarla yönlendirilemeyen kargo üretememelisiniz.
Koşullu talimatlar tanım gereği sorunludur. Bir aracın talimatlarının yük yüzdesine bağlı olmasıyla bağlantı grafiği oluşturma algoritması için bir karar verilemez problem oluşturabilirsiniz. Bağlantı grafiğinin şekli bir aracın hangi kargoyu yükleyeceğini belirler. Yüklenen kargo hangi yola gideceğini belirler ve bu da bağlantı grafiğinin şeklini belirler. Diğer bazı koşulların sonuçlarını, normalde değerlendirilecekleri noktaya kadar tüm oyunu simüle etmeden önceden tahmin etmek çok zordur. Bağlantı grafiği oluşturma ve kargo yönlendirme algoritmaları bunu pragmatik olarak ele alır ve her zaman açgözlüce yükler. Yani verilen koşullarla potansiyel olarak ulaşılabilecek herhangi bir istasyon için kargo yüklerler ve bu istasyonlardan birine giden kargoyu boşaltmazlar.
Algoritma eskiden koşulları değerlendirir ve buna göre yükler/boşaltırdı; ancak bu strateji optimal değildi çünkü aynı kargo aynı istasyonda yüklenip boşaltılırdı.
En son değişikliklerle (OpenTTD 1.4'te) herhangi bir sorun yaratmadan şunları yapabilirsiniz:
YÜKLEME İSTASYONUNA git DROP1'e git Yük yüzdesi 0'a eşitse YÜKLEME İSTASYONUNA git DROP2'ye git Yük yüzdesi 0'a eşitse YÜKLEME İSTASYONUNA git DROP3'e git









