3 poin oleh GN⁺ 2025-05-08 | 1 komentar | Bagikan ke WhatsApp
  • Kode sumber game indie VVVVVV tahun 2010 telah dirilis; game ini dibuat oleh Terry Cavanagh, dengan musik oleh Magnus Pålsson
  • Kode sumber versi desktop ada di folder desktop_version dalam repositori
  • VVVVVV masih dijual secara komersial, tetapi build untuk penggunaan pribadi dapat dikompilasi dengan bebas
  • Jika ingin mendistribusikan versi yang sudah dikompilasi, periksa LICENSE.md di repositori
  • Diskusi terkait pembaruan VVVVVV terutama berlangsung di kanal vvvvvv-code di VVVVVV Discord tidak resmi

Kode sumber yang dirilis

  • Repositori ini berisi kode sumber game indie VVVVVV tahun 2010 karya Terry Cavanagh
  • Pengumuman perilisan kode sumber dapat dilihat di pengumuman blog Terry: announcement
  • Kode sumber versi desktop ada di folder desktop_version

Ketentuan penggunaan dan distribusi

  • VVVVVV masih dapat dibeli secara komersial di thelettervsixtim.es
  • Untuk penggunaan pribadi, Anda dapat mengompilasi game ini sendiri
  • Jika ingin mendistribusikan versi game yang sudah dikompilasi, periksa LICENSE.md

Kanal diskusi pembaruan

  • Diskusi pembaruan VVVVVV terutama berlangsung di VVVVVV discord tidak resmi
  • Kanal terkait adalah vvvvvv-code

1 komentar

 
GN⁺ 2025-05-08
Opini Hacker News
  • Menjelang akhir SMA, saat pergi ke London bersama keluarga, saya ingin menjadi pengembang game, jadi saya mengirim email ke Terry Cavanagh. Mengejutkannya, ia dengan senang hati setuju untuk makan siang bersama
    Ia sangat ramah dan memberi banyak nasihat hidup. Saya ingat ia bilang sebagian besar ide tidak datang dari visi besar, melainkan dari bereksperimen sambil mengutak-atik mekanik game. Pokoknya ia orang yang keren, dan saya senang ia merilis VVVVVV—yang ia sebut V—sebagai open source

    • Bagian “sebagian besar ide didapat dari bereksperimen sambil mengutak-atik mekanik” itu penting. Terlalu banyak orang mengira ide baru hanya muncul dari konsep abstrak, padahal ide juga bisa muncul dengan bermain-main dengan medianya sendiri
    • Saya belajar bahwa dua kalimat ini benar: kalau tidak bertanya, kamu bahkan tidak bisa ditolak, dan ungkapan “jangan bertemu pahlawanmu” itu ilusi
      Kamu perlu bertemu beberapa orang yang benar-benar mengecewakan agar bisa mengenali orang yang benar-benar baik
    • Keren sekali. Saya penasaran apakah pertemuan itu memengaruhi pilihan kariernya kemudian, apakah akhirnya ia menjadi pengembang game, atau setidaknya pernah mencobanya. Selalu menarik kalau ada penutup ceritanya
    • Saya penasaran apa tepatnya nasihat hidup yang ia berikan
  • Game yang benar-benar menyenangkan. Saya bukan tipe yang bermain game sangat banyak, tapi saya ingat membeli Humble Bundle demi mendapatkan game ini
    Ini salah satu dari sedikit game yang saya mainkan sampai tamat. Terry, terima kasih atas karya keren dan waktu yang menyenangkan. Selain itu, veni vidi vici benar-benar susah sampai bikin mengumpat dan butuh waktu lama
    https://www.youtube.com/watch?v=4CtiY5D6HCs

    • Saya membeli bundel itu dan berpikir, “sambil menunggu game-game yang lebih menarik dan berukuran besar selesai diunduh, coba main game platformer 2D ringan ini saja,” tapi akhirnya seluruh malam itu habis untuk game ini
    • Video ini tidak benar-benar menangkap pengalaman saat nyaris melewati tiap layar lalu tetap mendarat di sebelah kiri
    • Ia memang sudah meminta maaf. Soalnya ada layar bertuliskan “I’m sorry” :P
    • Kalau ingatan saya benar, saya baru berhasil menyelesaikannya setelah mencoba beberapa ratus kali. Berkat itu, saya jadi punya kesabaran untuk menyelesaikan dungeon Pitioss di Final Fantasy XV
      Pacar saya waktu itu adalah orang yang membelikan VVVVVV, dan ia sedang mencoba run tanpa mati dengan semua trinket. Saya benar-benar tidak paham bagaimana seseorang bisa sejago itu bermain game. Dan soundtrack VVVVVV, PPPPPP, masih sering saya dengarkan. Saya terutama suka track osu! stream yang terkait
    • Saya membeli Humble Bundle awal-awal, dan VVVVVV sejak itu hanya mengendap di library Steam saya. Sekarang sepertinya saya harus mencobanya
  • Ini beberapa tulisan terkait. Saya penasaran apakah ada yang lain
    Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - Januari 2021
    Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - Januari 2020
    VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - Januari 2020
    VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - Januari 2020
    VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - Maret 2011

  • Di komentar Graphics::print_level_creator(...) tertulis bahwa alih-alih “by {author}”, yang ditampilkan adalah wajah
    Alasannya: kata “by” bisa terasa janggal jika berbeda dari bahasa pembuatnya; dalam bahasa lain bisa menjadi lebih panjang dan melanggar batas level yang ada; “by” dan nama pembuat mungkin membutuhkan font yang tidak cocok satu sama lain; bisa menghindari masalah tata bahasa seperti gender dan infleksi nama; menampilkan wajah memang masuk akal; dan kalau ada orang yang sedih dengan keputusan ini, wajah tersenyum itu toh akan menyemangati mereka. Sulit dibantah

  • Di tulisan yang ditautkan dalam artikel, https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-..., disebutkan bahwa banyak bagian aneh di versi C++ baru bisa dipahami jika mengingat bahwa game ini pertama dibuat dengan Flash lalu di-porting sendiri apa adanya, termasuk cacat-cacatnya
    Misalnya, ia punya kebiasaan mendeklarasikan variabel sementara seperti i, j, k sebagai anggota tiap class agar tidak perlu mendeklarasikannya di dalam fungsi, karena di Flash, karena alasan yang membosankan, deklarasi di dalam fungsi itu merepotkan. Akibatnya muncul bug yang sulit dilacak, dan khususnya dalam penanganan tabrakan entitas, beberapa fungsi berbagi variabel i yang sama sehingga loop tak terbatas pun mungkin terjadi. Kedengarannya benar-benar buruk, dan mengonfirmasi prasangka bahwa kode game itu berantakan

    • Justru terdengar hebat, dan mengonfirmasi kecurigaan bahwa programmer game belajar lebih banyak daripada programmer biasa
    • Catatan sebelum saya lupa nanti: kode bisa berantakan tetapi tetap menyenangkan. Itu kasus ketika bug yang menarik dibuat dan ditemukan di dalam ide baru
      Kode bisa bagus tetapi membosankan. Seperti aplikasi kalkulator yang ditulis dengan baik tetapi implementasinya hambar. Kode juga bisa berantakan dan membosankan. Misalnya produk B2B yang kurang desain, berisi ratusan kondisi pengecualian, masing-masing dengan banyak bug yang mirip tetapi berbeda. Kode bisa bagus sekaligus menarik. Contohnya seperti Doom
    • Orang benar-benar melakukan ini? Tiba-tiba kewajiban menaruh this. di depan semua member di JavaScript terasa jauh lebih tidak mengganggu
  • Saya juga ingin menyebut Super Hexagon dari kreator yang sama. Gim yang sangat sederhana, tapi benar-benar seru dan sangat adiktif
    Saya ingat pernah membaca entah di mana bahwa pembuatnya hanya menghabiskan sekitar satu hari untuk membuatnya. Dan soundtrack VVVVVV, PPPPPP, juga keren

    • Kalau membahas gim dari kreator yang sama, Dicey Dungeons juga sangat seru. Mirip roguelike deck-building, tapi memakai dadu alih-alih kartu
      Ada sekitar enam karakter unik, beberapa tantangan untuk tiap karakter, dan aturannya terus berubah sehingga membuat kita memikirkan ulang permainan. Humornya juga banyak, dan masih ada DLC gratis serta konten mod yang belum sempat saya coba
    • Saya tidak tahu Super Hexagon dibuat oleh developer yang sama. Meski jenis gimnya benar-benar berbeda dari VVVVVV, gim itu sangat menyenangkan
      Selalu menarik ketika developer indie berbelok ke genre yang sama sekali baru setelah sukses awal, dan dari situ lahir permata-permata keren. Misalnya alur seperti Fallen London -> Sunless Sea -> Cultist Simulator
    • Tidak ada cara yang lebih pasti untuk masuk ke kondisi flow selain bermain Super Hexagon selama 10 menit
    • Saya setuju dengan rekomendasi ini. Gim yang proses belajarnya benar-benar menyenangkan
      Awalnya terlihat mustahil, tapi otak akan beradaptasi. Rasanya seperti melihat melampaui Matrix
    • Saya menghabiskan sangat banyak waktu hidup untuk gim ini
      Saya juga membagikannya ke beberapa orang sampai mereka semua ikut tergila-gila. Saya yakin masih ada sekitar 5–6 salinan di inventori Steam saya. Siapa tahu. Begitu juga V, SMB, Braid, dan banyak gim lain. Kadang sedikit inspirasi dan grafis yang seadanya saja sudah cukup
  • Ada masa ketika saya baru pindah dari Kanada ke California dan sangat membutuhkan pekerjaan, lalu mendapat pekerjaan door-to-door sales di Comcast
    Saya membenci pekerjaan itu, jadi saya sering duduk di mobil, menghindari tanggung jawab, dan memainkan VVVVVV di ponsel. Berkat Terry, saya bisa menarik napas sebentar

  • Gim yang keren. Sesuai gim indie pada masanya, kodenya benar-benar berantakan, dan itu enak dilihat

    • Ungkapan “benar-benar berantakan” memang tepat. Bagian favorit saya adalah fungsi Game::updatestate() sepanjang 3300 baris dan switch statement raksasa
    • Karena awalnya ditulis dengan Flash lalu di-port ke C++, sebagian kekacauannya bisa dijelaskan. Meski tidak semuanya
    • Kode ini sungguh memberi inspirasi. Pelajarannya adalah bahwa terlalu memuja kualitas kode tidak selalu menjadi yang terbaik
    • Tidak ada yang salah dengan kode ini. Ini disebut loop unrolling, dan membantu menjaga performa gim
  • Saya sudah mengemasnya untuk Zig, dan cukup menjalankan zig build untuk memainkan gim ini di Linux, macOS, dan Windows
    https://github.com/allyourcodebase/VVVVVV

  • Ia mengaku mendeklarasikan i, j, k di semua kelas karena tidak mau mendeklarasikannya setiap kali dipakai di dalam fungsi, dan seperti yang bisa diduga, itu menimbulkan bug yang kotor dan sulit
    Menakjubkan bahwa dari kode seperti itu ia bisa membuat gim yang bagus

    • Hampir semua gim berisi berbagai macam kode hacky yang mengerikan. Tentu saja, yang ini termasuk cukup parah dibandingkan yang pernah saya lihat