2 poin oleh GN⁺ 2024-08-27 | 1 komentar | Bagikan ke WhatsApp
  • Vim Racer adalah game online untuk cepat mencapai titik target di dalam teks menggunakan perintah gerakan Vim, sekaligus membantu berlatih dalam format kompetisi catatan waktu berdasarkan penguasaan perintah
  • Setiap kali target tercapai, target berikutnya akan muncul, dan balapan 12 target dijalankan dengan mengombinasikan perintah gerakan Vim seperti w, 3j
  • Jika pengaturan relative lines diaktifkan, latihan perpindahan berbasis nomor baris relatif menjadi lebih mudah, sehingga membantu mengurangi kebutuhan memasukkan nomor baris absolut yang panjang di file besar
  • Leaderboard menolak catatan di bawah 1 detik untuk mengukur kemampuan navigasi manual, dan perubahan nama pengguna juga dibatasi hanya sekali per jam
  • Anda bisa melihat input tombol dari peraih skor tinggi dan tips per balapan, sehingga dapat dimanfaatkan bukan hanya sebagai game, tetapi juga sebagai materi pembelajaran gerakan Vim

Game kecepatan yang beradu dengan perintah gerakan Vim

  • Tujuan Vim Racer adalah bergerak ke semua target secepat mungkin
    • Saat target tercapai, target berikutnya akan muncul
    • Target ditampilkan seperti A
    • Semua perintah gerakan Vim dapat digunakan, sehingga catatan waktu cepat sangat ditentukan oleh pemilihan perintah gerakan yang efisien
  • Untuk memulai balapan, klik reset
    • Setelah diklik, fokus browser akan berpindah ke editor sehingga Anda bisa langsung memakai perintah gerakan Vim seperti w
  • Layar saat ini menampilkan Race Level: 12 Targets (Burn Detector), Race Mode: Standard, Navigations: 0/12
  • Umpan balik diterima melalui komunitas Reddit

Pengaturan dan batasan operasional

  • relative lines dapat diaktifkan dari pengaturan ikon roda gigi di kiri atas editor
    • Berguna jika Anda lebih suka menambahkan jumlah perpindahan relatif di depan perintah seperti 3j
    • Pada file besar, ini bisa lebih cepat daripada mengetik 1230gg
    • Contoh pengaturan lokalnya adalah hanya menampilkan nomor baris absolut pada baris kursor, sementara sisanya memakai nomor baris relatif
  • Donasi saat ini digunakan untuk pendanaan upgrade server dan database vim-racer
    • Database yang digunakan saat ini adalah DynamoDB
    • DynamoDB punya free tier yang berguna untuk memulai situs kecil, tetapi ada keterbatasan fitur sebagai konsekuensi dari efisiensi biaya
    • Tujuan utama saat ini adalah upgrade ke database SQL, dan biaya instance terkecil sekitar 100 dolar per tahun
    • Donasi sebelumnya sedang diinvestasikan kembali ke sumber pendapatan berulang vim-racer
    • Donatur pertama adalah ThePrimeagen

Leaderboard dan pemanfaatan untuk belajar

  • Leaderboard menolak catatan di bawah 1 detik
    • Pengguna how menunjukkan bahwa catatan di bawah 2 detik pun bisa sah
    • Game ini bertujuan mengukur seberapa baik pengguna menavigasi teks secara manual
    • Catatan <20ms memang menunjukkan kemampuan memakai Vim, tetapi tidak sesuai dengan tujuan game
    • Ke depannya, selain variasi target, mungkin akan ada tipe game lain atau leaderboard capped/uncapped
    • Saat ini, karena sumber daya pengembangan terbatas, arahnya adalah hanya menyimpan skor yang diperoleh dari navigasi murni di leaderboard
  • Nama pengguna hanya dapat diubah sekali per jam alih-alih membuat akun penuh
    • Batasan ini dimaksudkan untuk mencegah leaderboard terisi secara berlebihan
  • Vim Racer juga bisa digunakan untuk belajar gerakan Vim
    • Setiap jenis balapan menyediakan tips untuk mempelajari rute perpindahan target yang efisien
    • Setiap entri leaderboard menyertakan input tombol yang digunakan peraih skor tinggi
    • Pengguna dapat menganalisis urutan tombol tersebut untuk mempelajari perintah gerakan Vim baru dan meningkatkan kemampuan navigasi

1 komentar

 
GN⁺ 2024-08-27
Pendapat di Hacker News
  • Saya masuk papan peringkat dengan level jpeg dalam 17 detik, dan sebagai game kompetitif ini benar-benar seru
    Saya bermain dengan bergerak secara naluriah untuk menuju posisi yang diminta tanpa optimasi, tetapi tetap menyenangkan. Terutama fitur yang menampilkan proses pergerakan pada permainan di papan peringkat tampaknya berguna juga sebagai materi belajar
    Namun ada catatan 1 detik di posisi atas, dan karena kurang dari 0,05 detik per gerakan, rasanya tidak mungkin secara manusiawi. Sepertinya memakai input skrip, dan di antarmuka ini mungkin sulit dicegah. Jadi jika peringkat dibuat berdasarkan jumlah input tombol, bukan waktu berlalu, yang naik bukan orang tercepat melainkan yang paling efisien, dan kecurangan dengan skrip juga akan berkurang maknanya

    • Kombinasi perintah terpendek untuk mencapai posisi itu sampai batas tertentu bisa dicari
    • Penasaran apakah memakai %. Saya, meski masih kikuk, bisa turun sampai 6,5 detik
    • VimGolf melakukannya dengan cara seperti itu
  • Benar-benar bagus
    Akan bagus kalau ada mode untuk meminimalkan jumlah input tombol, bukan kecepatan. Dengan begitu yang dipertandingkan adalah solusi optimal ala Vim golf, bukan menekan hjkl cepat-cepat
    Bug sederhana: di papan peringkat, karakter ` ditampilkan sebagai “Unsupported”. Ini sangat terlihat saat mengikuti Duff's device yang memakai mark

    • Temuan besar, terima kasih. Saya belum yakin apa yang terlewat
      Mungkin karena diproses berbasis daftar yang diizinkan, jadi sepertinya cukup menambahkannya ke sana
  • Game yang kalau sudah mulai tidak bisa berhenti

    • Karena tidak bisa keluar dari Vim? :-)
    • Mungkin suatu hari harus menambahkan easter egg :q
  • Benar-benar menyenangkan. Penasaran apakah ada game Vim lain seperti ini
    Saya selalu ingin memakai Vim, tetapi karena pengguna Emacs evil mode, saya belum cepat

  • Situsnya sepertinya rusak entah di mana. Apa pun yang dilakukan tidak ada respons, sudah dicoba di Chrome dan Firefox

    • Saat pertama kali mengenal Vim juga rasanya seperti ini, jadi mungkin ini implementasi yang realistis
    • Maaf. Sepertinya ada masalah di pipeline deployment
      Dulu pergantiannya mulus, tetapi sekarang cache harus diinvaliasi secara manual. Tampaknya hanya terjadi pada sebagian deployment
    • Saya mengalami masalah yang sama. Di Chrome CPU juga banyak terpakai, tetapi tidak terjadi apa-apa, dan tombol apa pun yang ditekan tidak ada respons
  • Benar-benar keren. Namun ketika saya menghapus baris yang akan dijadikan target oleh program di tahap berikutnya, terjadi crash

    • Itu bug yang sulit diperbaiki. Secara pengaturan seharusnya penghapusan tidak mungkin dilakukan, tetapi sepertinya library key binding VIM menimpanya
      Meski begitu, terima kasih sudah memberi tahu; ini membantu menentukan prioritas
  • Fitur untuk melihat bagaimana orang lain melakukannya lewat papan peringkat sangat berguna

  • Saya ingin mencobanya, tetapi nomor baris mengikuti kursor. Terlihat seperti bug, apakah saya melewatkan sesuatu? Saya belum banyak memakai Vim, tetapi biasanya meski lambat tetap bisa bergerak
    Sudah dicoba di Chrome dan Firefox

    • Itu adalah opsi Vim bernama nomor baris relatif
    • Sekarang pengaturan itu sudah dibuat bisa dikonfigurasi, dan default-nya diubah menjadi nomor baris Vim biasa
      Berkat feedback ini, prioritas pengerjaannya naik
    • Di Vim lokal, bisa coba begini:
      set rnu
      Sangat praktis untuk gerakan relatif seperti 5j atau 12k :)
  • Seru. Akan hebat kalau ditambahkan tampilan jumlah input tombol dan mode yang mengharuskan meminimalkan jumlah input tombol alih-alih bergerak lebih cepat
    Akan bagus juga jika penjelasan game lebih memperjelas apa itu “target”

    • Poin bagus. Di rilis berikutnya akan saya masukkan penjelasan yang lebih baik
      Jumlah input tombol masih saya pertimbangkan. Karena saya benar-benar ingin fokus game ini ada pada kecepatan. VimGolf sudah menangani puzzle dan skenario semacam itu dengan baik, dan pembeda di sini adalah kecepatan
      Sebagai gantinya, saya ingin menganalisis data input tombol. Misalnya, bisa saja hasilnya www lebih cepat daripada f. Hipotesis awal saya adalah pencarian dengan f dan F tidak lebih efisien daripada gerakan umum seperti w, e, h, j, tetapi tampaknya itu sudah terbukti salah. Namun mungkin harus dinyatakan sebatas “cukup banyak pemain papan atas memakai f dan F”, yang bisa berarti mereka memang cepat atau setidaknya tombol-tombol itu bukan kerugian besar
    • Saya sangat ingin minimisasi input tombol dimasukkan sebagai unsur kompetitif. Daya tarik Vim memang ada pada kecepatan, tetapi juga besar karena mengurangi input tombol yang diperlukan untuk pergi ke suatu tempat atau melakukan sesuatu
      Meski ini tidak sama dengan kecepatan murni, dibanding editor lain hal itu membuat penggunaan terasa nyaman dan sangat penting bagi pengalaman mengetik
  • Game yang buruk, tetapi satu hal ditunjukkannya dengan baik. Navigasi Vim tanpa Easymotion itu seperti balapan dengan berjalan kaki, bukan dengan mobil balap