2 poin oleh GN⁺ 2026-02-09 | 1 komentar | Bagikan ke WhatsApp
  • Dalam game pembangunan kota, implementasi sistem jalan yang realistis merupakan elemen kunci yang bukan sekadar unsur visual, tetapi fondasi yang menentukan kelengkapan struktural
  • Game-game yang ada umumnya menggunakan spline Bezier untuk merepresentasikan jalan, tetapi pendekatan ini memiliki keterbatasan dalam menjaga kelengkungan dan paralelisme jalan nyata
  • Jalan di dunia nyata harus mencerminkan jarak antarsumbu kendaraan dan batasan tikungan, sedangkan metode Bezier mengalami distorsi bentuk saat di-offset sehingga menghasilkan tikungan yang tidak realistis
  • Untuk mengatasinya, penerapan kurva rekayasa seperti busur lingkaran (Circle Arc) dan klotoid (Clothoid) memungkinkan perubahan kelengkungan yang halus dan offset paralel tetap terjaga
  • Penulis membangun sistem jalan sendiri untuk mengatasi keterbatasan ini, dan berencana membagikan proses implementasi teknisnya di masa mendatang

Daya tarik jalan dan pola

  • Penulis menemukan kepuasan yang sama pada jalan seperti pada pola yang tampak acak di dalam keteraturan alam
    • Diibaratkan seperti sarang semut, sarang lebah, dan urat daun, tempat aturan sederhana menumpuk menjadi struktur yang kompleks
    • Jaringan jalan juga digambarkan sebagai salah satu pola paling menarik yang dibuat manusia
  • Dengan membayangkan jejak jaringan jalan yang tetap tersisa bahkan setelah kota menghilang, penulis menekankan keindahan strukturalnya

Evolusi jalan dalam game pembangunan kota

  • Dari SimCity 2000 hingga Cities: Skylines 2, sistem jalan terus berkembang
    • SimCity 4 mendukung elevasi dan jalan diagonal, SimCity 2013 menghadirkan jalan melengkung, dan Cities: Skylines mendukung penempatan bebas serta penyusunan persimpangan
  • Namun, masalah seperti kelengkungan yang masih terasa tidak alami, radius putar yang terlalu tajam, dan ramp jalan tol yang tidak realistis tetap ada
  • Melalui mod (Mod), kini dimungkinkan menghadirkan lajur, marka, dan tikungan yang lebih realistis, tetapi tetap belum bisa lepas dari batasan mendasar engine

Batasan spline Bezier

  • Kurva Bezier adalah alat matematika yang kuat untuk menghubungkan dua titik secara mulus, dan digunakan di sebagian besar game engine
  • Namun, kurva ini tidak mempertahankan bentuk dan kelengkungan saat di-offset, atau dengan kata lain, “offset dari kurva Bezier bukanlah kurva Bezier”
  • Akibatnya muncul ketidakcocokan antara kurva bagian dalam dan luar, perpotongan dengan dirinya sendiri, serta fenomena pinching
  • Hasil akhirnya, sulit mewujudkan kurva paralel yang mencerminkan lintasan kendaraan seperti pada jalan nyata

Penerapan busur lingkaran (Circle Arc) dan klotoid (Clothoid)

  • Busur lingkaran memberikan paralelisme sempurna yang mempertahankan bentuk yang sama bahkan setelah di-offset
    • Perhitungan perpotongan antara dua busur jauh lebih sederhana daripada Bezier, serta efisien dengan kompleksitas komputasi O(1)
    • Dengan menghubungkan busur yang memiliki jari-jari berbeda, dimungkinkan membentuk geometri jalan yang masuk akal secara rekayasa
  • Namun, busur lingkaran memiliki kelengkungan konstan, sehingga saat berpindah dari garis lurus ke tikungan terjadi perubahan mendadak pada percepatan lateral
  • Untuk melengkapinya, digunakan klotoid (Clothoid)
    • Kelengkungannya meningkat secara bertahap sehingga memberikan kemudi dan kenyamanan berkendara yang lebih alami
    • Secara matematis lebih rumit, tetapi esensial dalam perancangan jalan untuk kecepatan tinggi
  • Untuk area berkecepatan rendah seperti persimpangan di dalam kota, desain berbasis busur lingkaran saja sudah cukup untuk menghadirkan kesan realistis

Alasan membuat sistem jalan sendiri

  • Kebanyakan pemain tidak terlalu peduli pada akurasi kelengkungan persimpangan, tetapi sang pengembang menelitinya karena rasa ingin tahu dan tantangan teknis
  • Tingkat implementasi pada game komersial yang ada memang tinggi, tetapi materi atau aset yang dapat diakses pengembang indie masih kurang
  • Alih-alih jalan berbentuk grid yang sederhana, ia memilih membangun implementasi sendiri demi menciptakan sistem yang lebih presisi dan bisa dibagikan
  • Pada tulisan berikutnya, penulis akan membagikan detail teknis implementasinya, dan pembaruan dapat diikuti melalui langganan

1 komentar

 
GN⁺ 2026-02-09
Komentar Hacker News
  • Setelah membaca tulisan yang mengatakan bahwa jalan adalah inti dari game pembangunan kota, rasanya aku jadi paham kenapa para perencana kota bisa mimpi buruk
    Fondasi kota bukan road untuk mobil, melainkan street yang dipakai bersama oleh pejalan kaki, sepeda, dan transportasi umum
    Untuk konsep terkait, artikel Stroad layak dibaca

    • Aku belum pernah benar-benar memikirkan perbedaan dua kata itu, tapi setelah membaca penjelasan Wikipedia jadi masuk akal
      Road berpusat pada transportasi, sedangkan street berpusat pada interaksi publik
      Meski begitu, menurutku kutipan di tulisan asli dikritik terlalu keras. Masyarakat modern punya kebutuhan transportasi yang sangat besar, jadi jaringan road di dalam dan luar kota tetap menjadi kerangka kota
      Sebelum 1900-an, kota hanya bisa dibangun dekat jalur air, tetapi sekarang road memungkinkan kota berdiri juga di wilayah pedalaman
    • Street di San Francisco juga dirancang sejak abad ke-19 berdasarkan prinsip rekayasa sipil
      Kalau ingin membuat kota yang terasa realistis, menurutku pendekatan seperti ini lebih tepat daripada jalan palsu
    • Aku juga menyukai infrastruktur berpusat pada pejalan kaki (jalur sepeda, jalur pedestrian, transportasi umum), tetapi memang benar bahwa road pada awalnya dirancang untuk kereta kuda dan mobil
      Kadang aku membayangkan—seperti apa jadinya kalau sebuah peradaban yang hanya memakai sepeda dan berjalan kaki yang merancang kota?
  • Ada game yang mungkin disukai penulis, yaitu sandbox Junxions, yang berfokus pada pembuatan persimpangan jalan
    Subreddit terkait ada di sini. Sepertinya game ini bisa sangat memuaskan hasrat mendesain jalan

    • Aku adalah pembuat sistem jalan ini. Sejujurnya aku sendiri masih belum yakin mau dibawa ke mana—dirilis sebagai aset atau dijadikan game
      Aku juga suka Junxions, tapi pendekatanku berbeda. Mereka memakai struktur Bezier berbasis node, sedangkan aku membuat persimpangan otomatis lewat tabrakan antar segmen jalan
      Di tulisan blog berikutnya aku berencana membahas perbedaan dua pendekatan itu lebih detail
  • Katanya hanya 1% orang yang peduli pada radius sudut persimpangan, dan aku jelas termasuk 1% itu

  • Mendefinisikan jalan dengan kurva Bezier itu tidak mudah
    Terutama pada tikungan tajam, hasil visualnya bisa terlihat kurang bagus
    Tahun lalu aku mengalami masalah yang sama saat mengerjakan proyek Azoth, dan akhirnya menemukan solusi yang lebih sederhana
    Referensi: repositori Azoth, contoh Bezier

  • Hal-hal yang terlihat biasa saja di game sebenarnya merupakan hasil dari kerja keras dan perancangan yang luar biasa
    Misalnya jalan, pemain mungkin tidak memperhatikannya dengan saksama, tetapi kalau terlihat aneh langsung terasa janggal
    Aku merasakan itu saat baru-baru ini memainkan Kingdom Come 2—semuanya tampak alami seperti dunia nyata, padahal setiap detail dibuat dari keringat dan air mata para developer
    Karena itu aku jadi paham kenapa industri game terus dihantui crunch

    • Pintu di game juga masalah yang rumit. Ukurannya biasanya 30% lebih besar dari dunia nyata, dan kebanyakan memakai sliding door karena alasan pemrosesan fisika
      Artikel terkait: The Door Problem, artikel IGN
  • Tulisan seperti ini yang bikin aku terus membaca Hacker News. Rasanya ingin bilang ke penulis supaya terus menulis

    • Penulisnya di sini. Terima kasih sudah tertarik. Sebenarnya aku bahkan tidak tahu soal HN, baru sadar setelah trafik mendadak masuk
      Ternyata banyak orang punya minat yang mirip, jadi aku berencana akan lebih aktif ke depannya
  • Tulisan ini benar-benar sesuai seleraku. Aku juga punya obsesi pada jalan yang sama
    Kota tersusun oleh jalan seperti pembuluh darah, dan jalan-jalan kecil di Eropa dan Asia adalah kisah yang dibangun di atas jejak langkah
    Sebaliknya, jalan pedesaan di kampung halamanku membentang lurus lalu tiba-tiba berbelok kalau ada petani yang tidak mau menjual tanahnya
    Hanya kota era kolonial atau sebagian kota terencana yang berbentuk grid, sementara kebanyakan berubah arah mengikuti aliran sungai atau bentuk lahan
    Titik pertemuan antar grid seperti inilah bagian kota yang paling indah dan paling menarik secara arsitektural
    Andai ada game yang mensimulasikan perubahan pertumbuhan kota, aku pasti suka sekali

    • Aku juga langsung kehilangan imersi saat game pembangunan kota berbasis sejarah memakai pola grid
      Kota nyata berkembang seperti sarang semut, dengan kompleksitas dalam keteraturan yang alami
      Topik ini rasanya ingin kutulis tersendiri nanti
  • Di game berikutnya, Canalpunk, aku akan tetap memakai spline Bezier
    Menurutku sistem bencana yang muncul saat jalur mengalami self-intersection akan sangat menarik

  • Aku sedang terobsesi mencoba menerapkan clothoid (curve transition) di editor rel kereta
    Di ruang kosong itu mudah, tetapi saat harus menyambungkan rel justru jadi sulit
    Aku pernah membuat materi penjelasan tentang ini: Euler Spiral Explanation

    • Ada hal yang membuatku penasaran. Kalau ada garis yang bercabang dua dari kiri ke kanan, bukankah kalau clothoid-nya diperpanjang ke belakang maka gelombangnya akan berpotongan?
      Aku ingin bereksperimen apakah titik potong itu bisa dipakai untuk menginterpolasi spline baru
      Gambar referensi: contoh visual
    • Penjelasannya sangat detail, jadi kusimpan dulu. Aku tidak menyangka menyambungkan clothoid bisa sesulit itu. Untuk implementasi sendiri aku masih belum cukup berani
  • Cara paling mudah ya buat saja jalan lurus seperti orang Romawi :-)
    Tentu saja, orang Romawi tidak terlalu peduli soal tanah milik pribadi. Di Lincolnshire, Inggris, tempat tinggalku, jalan Romawi masih dipakai sampai sekarang
    Satu-satunya pengecualian adalah saat perpanjangan landasan RAF Scampton, ketika jalan itu akhirnya dibelokkan

    • Sebenarnya orang Romawi juga mengalami masalah kepemilikan tanah pribadi. Misalnya, pembangunan akuaduk kedua sempat tertunda karena Crassus sebagai pemilik lahan menolak melepas tanahnya
      Detailnya bisa dilihat di Roman aqueduct
    • Jalan di daerahku sejak Abad Pertengahan memang dibangun dengan menghubungkan menara gereja ke menara gereja
      Bahkan sekarang garis tengah jalan masih sejajar sempurna dengan arah menara gereja. Konsep lahan yang berpusat pada gereja terasa mirip dengan Romawi