2 puan yazan GN⁺ 2026-02-09 | 1 yorum | WhatsApp'ta paylaş
  • Şehir kurma oyunlarında yol sisteminin gerçekçi biçimde uygulanması temel bir unsurdur; yalnızca görsel bir öğe olmanın ötesinde yapısal bütünlüğü belirleyen bir altyapıdır
  • Mevcut oyunlar yolları göstermek için Bezier spline kullanır, ancak bu yöntem gerçek yolların eğriliğini ve paralelliğini koruma konusunda sınırlamalara sahiptir
  • Gerçek dünyadaki yolların araçların dingil mesafesi ve eğri kısıtlarını yansıtması gerekir; Bezier yaklaşımında ofset alındığında form bozulur ve gerçekçi olmayan kıvrımlar ortaya çıkar
  • Bunu çözmek için çember yayı (Circle Arc) ve klotoid (Clothoid) gibi mühendislik eğrileri uygulanırsa, yumuşak eğrilik değişimi ve paralel ofsetlerin korunması mümkün olur
  • Yazar bu sınırlamaları aşmak için kendi yol sistemini doğrudan kurdu ve ileride teknik uygulama sürecini paylaşmayı planlıyor

Yolların ve desenlerin çekiciliği

  • Doğadaki düzen içindeki düzensiz desenlerde hissedilen tatmini yollarda da buluyor
    • Bunu, karınca yuvaları, petekler ve yaprak damarları gibi basit kuralların birikerek karmaşık yapılar oluşturmasına benzetiyor
    • Yol ağları da insanlığın yarattığı en ilgi çekici desenlerden biri olarak anlatılıyor
  • Şehirler yok olduktan sonra bile kalacak yol ağlarının izlerini hayal ederek, onların yapısal güzelliğini vurguluyor

Şehir kurma oyunları ve yolların evrimi

  • SimCity 2000'den Cities: Skylines 2'ye kadar yol sistemleri sürekli gelişti
    • SimCity 4 yükseklik ve çapraz yolları, SimCity 2013 kavisli yolları, Cities: Skylines ise serbest yerleşim ve kavşak düzenlemelerini destekledi
  • Buna rağmen hâlâ eğrilerin doğallıktan uzak olması, ani dönüş yarıçapları, gerçekçi olmayan otoyol rampaları gibi sorunlar var
  • Mod'lar sayesinde gerçekçi şeritler, işaretlemeler ve eğriler uygulanabilir hâle geldi, ancak bunlar yine de motorun temel kısıtlarını aşamıyor

Bezier spline'ın sınırları

  • Bezier eğrisi, iki nokta arasını yumuşak biçimde bağlayan güçlü bir matematiksel araçtır ve çoğu oyun motorunda kullanılır
  • Ancak bu eğri türünde ofset alındığında biçim ve eğrilik korunmaz; yani “Bezier eğrisinin ofseti bir Bezier eğrisi değildir
  • Bunun sonucunda iç ve dış eğriler arasında uyumsuzluk, kendini kesme ve pinch olayı ortaya çıkar
  • Sonuç olarak gerçek yollardaki gibi araç izlerini yansıtan paralel eğrileri uygulamak zorlaşır

Çember yayı (Circle Arc) ve klotoid (Clothoid) uygulaması

  • Çember yayı, ofsetten sonra da aynı biçimi koruyan kusursuz paralellik sağlar
    • İki çember yayının kesişimini hesaplamak, Bezier'e kıyasla çok daha basittir ve O(1) hesaplama karmaşıklığıyla verimlidir
    • Farklı yarıçaplara sahip çember yayları birleştirilerek mühendislik açısından geçerli yol biçimleri oluşturulabilir
  • Ancak çember yayında eğrilik sabittir; bu nedenle düz bir hattan eğriye girişte yanal ivmede ani değişim meydana gelir
  • Bunu telafi etmek için klotoid (Clothoid) kullanılır
    • Eğrilik kademeli olarak artar ve doğal direksiyon hissi ile sürüş konforu sağlar
    • Matematiksel olarak karmaşıktır, ancak yüksek hızlı yol tasarımı için vazgeçilmezdir
  • Şehir içi kavşaklar gibi düşük hızlı bölümlerde ise çember yayı tabanlı tasarım bile yeterince gerçekçi olabilir

Kendi yol sistemini yapma nedeni

  • Oyuncuların çoğu kavşak eğriliğinin doğruluğuna fazla önem vermez, ancak geliştirici bunu merak ve teknik meydan okuma nedeniyle araştırıyor
  • Mevcut ticari oyunların uygulama düzeyi yüksek olsa da, bağımsız geliştiricilerin erişebileceği kaynak ve varlıklar yetersiz
  • Basit ızgara tabanlı yollar yerine, daha incelikli ve paylaşılabilir bir sistem oluşturmak için kendi çözümünü geliştiriyor
  • Bir sonraki yazıda teknik uygulamanın ayrıntılarını paylaşmayı planlıyor; abonelik yoluyla güncellemeler alınabilir

1 yorum

 
GN⁺ 2026-02-09
Hacker News yorumları
  • Şehir kurma oyunlarında yolların merkezde olduğunu söyleyen yazıyı görünce, şehir plancılarının neden kâbus gördüğünü anladığımı düşündüm
    Bir şehrin temeli otomobiller için yol (road) değil, yayaların, bisikletlilerin ve toplu taşımanın birlikte kullandığı cadde/sokak (street) olmalı
    İlgili bir kavram olarak Stroad maddesine bakmaya değer

    • Bu iki kelime arasındaki farkı hiç düşünmemiştim ama Wikipedia açıklamasını görünce mantıklı geldi
      Yol, ulaşım (transportation) odaklı; cadde/sokak ise kamusal etkileşim (public interaction) odaklı
      Yine de özgün alıntının gereğinden fazla eleştirildiğini düşünüyorum. Modern toplumda ulaşım talebi çok büyük ve şehir içiyle dışındaki yol ağı, kentin iskeletini oluşturuyor
      1900'lerden önce şehirler yalnızca su yollarının yakınında kurulabiliyordu, ama artık yollar sayesinde iç kesimlerde de mümkün
    • San Francisco'nun caddeleri de 19. yüzyıldan beri inşaat mühendisliği ilkeleriyle tasarlandı
      Gerçekçi bir şehir yapmak istiyorsanız sahte yollar yerine böyle bir yaklaşımın doğru olduğunu düşünüyorum
    • Ben de yaya odaklı altyapıyı (bisiklet yolları, yaya yolları, toplu taşıma) seviyorum ama yolların özünde at arabaları ve otomobiller için tasarlandığı da bir gerçek
      Bazen şunu hayal ediyorum: Eğer şehirleri yalnızca bisiklet ve yürümenin kullanıldığı bir medeniyet tasarlasaydı, nasıl görünürdü?
  • Yazarın hoşuna gidebilecek bir oyun var. Adı Junxions; yol kavşakları yapmaya odaklanan bir sandbox oyunu
    İlgili subreddit burada. Bu oyun, yol tasarlama isteğini epey iyi karşılar gibi duruyor

    • Bu yol sisteminin yaratıcısı benim. Açıkçası bununla tam olarak ne yapacağımdan hâlâ emin değilim — asset olarak mı çıkarayım, yoksa oyuna mı dönüştüreyim diye düşünüyorum
      Junxions'ı ben de seviyorum ama benim yaklaşımım farklı. Onlar node tabanlı Bezier yapısı kullanıyor, ben ise yol segmentleri arasındaki çarpışmalarla kavşakları otomatik oluşturuyorum
      Bir sonraki blog yazımda bu iki yaklaşım arasındaki farkı ayrıntılı ele alacağım
  • “Kavşak köşe yarıçaplarını önemseyen insanlar sadece %1'lik kesim” deniyor ama ben tam da o %1'lik kesimdeyim

  • Bezier eğrileriyle yol tanımlamak kolay değil
    Özellikle sert dönüşlerde görsel olarak pek hoş görünmeyen sonuçlar çıkıyor
    Ben de geçen yıl Azoth projesinde aynı sorunla karşılaştım ve basitleştirilmiş bir çözüm buldum
    Bakınız: Azoth deposu, Bezier örneği

  • Oyunlarda çok doğal görünen şeyler aslında muazzam bir emek ve tasarımın ürünü
    Mesela yollar, oyuncunun ayrıntılı bakmadığı şeylerdir ama tuhaf görünürlerse hemen göze batar
    Bunu yakın zamanda Kingdom Come 2 oynarken hissettim — her şey gerçek hayattaki gibi doğal görünüyor ama bütün o detaylar geliştiricilerin kanı, teri ve gözyaşıyla yapılmış
    Bu yüzden oyun sektörünün neden crunch yaşadığını anlayabiliyorum

    • Oyunlardaki kapılar da karmaşık bir mesele. Gerçektekinden %30 daha büyük olurlar ve çoğu zaman fizik işlemleri yüzünden sürgülü kapı kullanılır
      İlgili yazılar: The Door Problem, IGN makalesi
  • Böyle yazılar yüzünden Hacker News okumayı sürdürüyorum. Yazara yazmaya devam etmesini söylemek isterim

    • Yazar benim. İlginiz için teşekkürler. Aslında HN'yi bilmiyordum ama trafik akışı gelince fark ettim
      Benzer ilgi alanlarına sahip çok insan varmış; bundan sonra daha aktif olmayı düşünüyorum
  • Bu yazı tam benim zevkim. Yol takıntısı bende de aynı şekilde var
    Şehirler damarlar gibi yollarla örülür ve Avrupa ile Asya'nın köy yolları, ayak izlerinin açtığı güzergâhlar üzerine kurulmuş hikâyelerdir
    Buna karşılık memleketimdeki kırsal yollar dümdüz ilerler, sonra bir çiftçi toprağını satmazsa aniden kırılır
    Sömürge dönemleri ya da bazı planlı şehirler dışında sadece bir kısmı ızgara düzenindedir; çoğunun yönü nehir akışına veya arazi şekline göre değişir
    Şehirlerdeki en güzel ve mimari açıdan en ilginç yerler, işte bu ızgaraların kesiştiği noktalardır
    Kent büyümesindeki bu değişimleri simüle eden bir oyun olsa harika olurdu

    • Benim de tarih temelli şehir kurma oyunları ızgara düzeninde olduğunda oyunun içine girme hissim bozuluyor
      Gerçek şehirler, karınca yuvası gibi doğal bir düzen içindeki karmaşıklıkla gelişti
      Bu konu hakkında ileride ayrı bir yazı yazmak istiyorum
  • Bir sonraki oyunum Canalpunk'ta Bezier spline kullanmaya devam edeceğim
    Güzergâhın kendi kendini kestiği durumlarda ortaya çıkan felaket sistemi ilginç olabilir

  • Demiryolu ray editöründe klotoid (curve transition) uygulamaya takmış durumdayım
    Boş alanda kolay ama rayları birbirine bağlarken zorlaşıyor
    Daha önce hazırladığım bir açıklama materyali var: Euler Spiral Explanation

    • Merak ettiğim bir şey var. Soldan sağa iki kola ayrılan bir çizgi olduğunda, klotoidi geriye doğru uzatırsak dalga biçimi kesişmez mi?
      O kesişim noktasını kullanarak yeni bir spline enterpole etmeyi denemek istiyorum
      Referans görsel: görsel örnek
    • Açıklama gerçekten çok detaylı, kaydettim. Klotoid bağlantılarının bu kadar zor olduğunu bilmiyordum. Ben daha onu kendim uygulamaya cesaret edemem
  • Romalılar gibi düz yollar yaparsanız iş kolay :-)
    Tabii Romalılar özel mülk gibi şeyleri pek umursamıyordu. Yaşadığım İngiltere'nin Lincolnshire bölgesinde Roma yolları hâlâ kullanılıyor
    Sadece RAF Scampton pistini uzatırken istisna olarak yolu kıvırdılar

    • Aslında Romalılar da özel mülkiyet sorunlarıyla karşılaşıyordu. Mesela ikinci su kemeri, toprak sahibi Crassus arazisini vermediği için gecikmişti
      Ayrıntılar için Roman aqueduct maddesine bakabilirsiniz
    • Benim bölgemde yollar Orta Çağ'dan beri kilise kulelerini birbirine bağlayan bir yapıda
      Bugün bile yol orta çizgileri kilise kulelerinin yönüyle tam olarak hizalı. Kilise merkezli arazi anlayışı bu bakımdan Roma'ya benziyor