Kod sumber permainan rentak: carta not, masa dan menambah lagu
Bagaimana Riffvolt menyimpan 12 lagu dan 48 carta not, di mana masa dan skor ditentukan, dan apa yang diperlukan untuk menambah lagu sendiri.

Kod sumber permainan rentak sebenarnya terdiri daripada dua perkara: kod yang menilai ketepatan masa, dan data yang menentukan bila setiap not tiba. Pembeli hampir selalu mahu mengubah yang kedua, kerana lagu baharu itulah yang menjadikan permainan rentak milik mereka. Riffvolt, templat permainan rentak rock empat lorong kami, menyimpan senarai lagu dalam satu fail manifest dan setiap carta not dalam failnya sendiri, jadi menambah lagu ialah kerja data dengan senarai semak yang jelas.
Panduan ini menelusuri pakej: apa yang dimainkan, di mana masa dan skor diuruskan, cara menambah lagu, cara build semula dan mengehos, apa yang lesen benarkan, dan apa yang tiada dalam edisi ini. Nama fail diambil daripada panduan pembeli yang disertakan bersama permainan.
Satu fakta untuk diingat dari awal: tidak seperti sesetengah templat kami, Riffvolt memerlukan build semula selepas anda mengubah kod sumber atau menambah lagu. Mengehos folder game yang dibekalkan pula tidak memerlukan apa-apa selain hos web statik.
Apa yang dimainkan oleh kod sumber permainan rentak ini
Riffvolt ialah permainan rentak rock empat lorong yang lengkap untuk pelayar. Pemain menekan not tepat pada masanya, menahan not panjang hingga habis, membengkokkannya dengan whammy dan mengisi tolok ROCK yang memulakan overdrive, iaitu pertunjukan cahaya yang tidak menambah mata dan tamat sebaik sahaja tersasar. Ketepatan masa membina skor dan kombo.
- 12 lagu penuh, setiap satu dengan carta Easy, Normal dan Hard, serta Rock God yang dibuka selepas jelajah: 48 carta not kesemuanya.
- Jelajah melalui empat lokasi (Garage, The road, Festival dan Arena), tiga lagu setiap satu. Bintang daripada dua lagu pertama membuka lagu encore, dan menamatkan encore membuka lokasi seterusnya, dengan babak cerita dan ganjaran kosmetik seperti jejak dan bingkai.
- Main bebas: mana-mana lagu pada mana-mana kesukaran, dengan rekod peribadi disimpan lagu demi lagu dalam pelayar.
- Kawalan: D, F, J dan K secara lalai, ketik lorong pada skrin sentuh, atau gamepad. Tetapan kekunci dalam Settings.
- Keselesaan: kalibrasi audio untuk ofset, yang membantu dengan fon kepala Bluetooth, gerakan dikurangkan dan mod fotosensitif yang meredakan kilauan dan kilat.
- 14 bahasa antara muka.
Lihat halaman Riffvolt, demo dan manual
Bagaimana fail disusun
Muat turun mengandungi game/ (fail untuk diterbitkan), source/ (projek TypeScript), documentation/ (manual bergambar dalam bahasa Inggeris dan Portugis) dan licenses/ (notis pihak ketiga). Dalam source/, data lagu dan logik permainan dipisahkan dengan kemas.
- public/manifest.json: katalog lagu, dengan tempoh, versi audio dan laluan carta setiap lagu.
- public/charts/: 48 carta not.
- public/audio/: rakaman lagu.
- src/core/chartValidate.ts: skema carta dan pengesahan masa.
- src/core/judge.ts: penilaian ketepatan masa.
- src/core/scoring.ts: peraturan skor dan kombo.
- src/game/campaign.ts: kemajuan jelajah.
- src/game/session.ts: kitaran hayat sebuah lagu dan pengiraan keputusan.
- src/i18n/locales.ts: 14 kamus antara muka.
- src/net/localRecords.js: rekod peribadi tempatan.
- src/ui/style.css: antara muka dan susun atur responsif.
Oleh sebab penilaian dan skor berada dalam fail berasingan, anda boleh menjadikan tetingkap masa lebih ketat atau lebih longgar tanpa menyentuh cara mata dikira, dan sebaliknya. Itulah pemisahan yang patut dicari dalam mana-mana kod permainan rentak.
Menambah lagu sendiri, langkah demi langkah
Inilah perubahan yang paling awal ditanya oleh pembeli permainan rentak. Tiada editor carta dalam pakej, jadi carta ditulis sebagai data, dan manual menyenaraikan dengan tepat apa yang diperlukan oleh setiap fail.
- Letakkan rakaman dalam public/audio/. Gunakan hanya audio yang anda pegang haknya untuk produk akhir anda.
- Cipta satu carta bagi setiap kesukaran yang disokong dalam public/charts/. Setiap carta memerlukan songId, difficulty, audioVersion, offset yang sepadan dan not mengikut urutan.
- Tambah lagu ke public/manifest.json dengan id unik, tempoh, BPM, tema, audioVersion dan laluan carta.
- Semak setiap carta dengan pengesah dalam chartValidate.ts.
- Mainkan keseluruhan lagu pada setiap kesukaran untuk mengesahkan penyegerakan. Pengesah menyemak struktur dan peraturan masa, bukan sama ada not terasa betul.
- Build semula, kemudian muat naik build baharu.
Jika anda mahukan runut bunyi baharu sepenuhnya dan bukan sekadar satu lagu tambahan, rancang kerja mengikut carta: 12 lagu pada empat kesukaran bermakna 48 carta, dan setiap satu patut dimainkan sepenuhnya sebelum dilancarkan.
Build semula dan perkara lain untuk diubah
Node.js 24 LTS disyorkan. Dalam source/, jalankan npm ci, kemudian npm run typecheck dan npm run build, dan terbitkan hanya kandungan dist/. npm run preview menghidangkan build tempatan untuk diperiksa. Jangan muat naik node_modules/. Vite menggunakan base relatif, jadi build berfungsi dalam subfolder. Runtime yang dihantar diformat untuk dibaca; manual meminta anda mengekalkan minify:false dan cssMinify:false semasa build semula, supaya orang seterusnya masih boleh membacanya.
- Jenama: warna dan susun atur dalam src/ui/style.css, serta logo anda. White label dibenarkan, jadi jenama anda boleh menggantikan jenama kami.
- Teks: src/i18n/locales.ts, untuk bahasa yang anda terbitkan.
- Jelajah: urutan lokasi dan apa yang membuka apa, dalam campaign.ts.
- Kesukaran: tetingkap masa dalam judge.ts, kemudian peraturan skor dan kombo dalam scoring.ts.
- Lagu: paling akhir, kerana setiap carta baharu perlu dimainkan sepenuhnya.
Buat sandaran sebelum menyunting, ubah satu ciri pada satu masa, dan uji menu, sebuah lagu, jeda, skrin keputusan dan muat semula selepas setiap perubahan. Kekalkan id item dan kunci simpanan supaya pemain sedia ada tidak kehilangan rekod mereka.
Mengehos, atau membenamkannya dalam portal
Muat naik kandungan game/ ke folder pada hos HTTP(S) anda, kekalkan laluan relatif, dan buka alamatnya. Tiada PHP, pangkalan data atau akaun diperlukan. Jangan buka index.html melalui file://; untuk ujian tempatan, jalankan python -m http.server 8765 dalam game/.
- Keperluan pelayar: JavaScript, modul ES, Canvas 2D dan Web Audio.
- Pelayar hanya membuka audio selepas ketikan atau klik pertama, jadi skrin pertama yang senyap adalah perkara biasa.
- Dalam iframe, benarkan skrin penuh dan autoplay.
- Hidangkan .js dengan jenis MIME JavaScript, jangan sekali-kali sebagai text/plain.
- Semua aset runtime, fon dan pustaka berada dalam build. Tiada CDN wajib, tetapi ini bukan aplikasi luar talian yang boleh dipasang.
Simpanan terikat pada origin pelayar, jadi memindahkan permainan ke domain lain menyebabkan pemain bermula semula. Edisi ini menggunakan kunci simpanannya sendiri, berasingan daripada edisi portal kami. Projek aplikasi natif tidak disertakan; terbitan di gedung aplikasi ialah kerja berasingan.
Apa yang tiada dalam edisi ini
Riffvolt ialah edisi pelayar tempatan. Ia tiada bilik dalam talian atau berbilang pemain, tiada kedudukan dalam talian atau papan pendahulu bersama, tiada SDK iklan atau akaun, tiada editor carta, tiada aplikasi natif dan tiada pengehosan. Rekod peribadi dan kemajuan jelajah kekal dalam pelayar pemain.
Jika permainan muzik sesuai dengan katalog anda, dua lagi templat kami yang berasaskan masa mungkin sesuai di sebelahnya.
Pinloop: permainan arked masa satu butang dengan 30 sasaran
Ricopop: permainan arked lantunan dengan 50 tahap
Lesen dan harga
Harga senarai Riffvolt ialah $49. Sehingga 30 November 2026, promosi Black Friday memberi potongan 15%, jadi harganya $41.65, dan membeli dua templat atau lebih dalam satu pesanan menambah diskaun pakej 5% hingga 20%. Lesennya kekal dan tidak eksklusif, untuk satu produk akhir, milik anda atau seorang pelanggan. Anda boleh mengubah kod, grafik dan audio, menggantikan jenama kami dengan jenama anda, dan menawarkan permainan secara percuma atau dengan iklan. Gunakan lagu yang disertakan sebagai sebahagian daripada produk akhir itu; anda tidak boleh menjual semula templat, kod atau asetnya secara bersendirian. Sokongan enam bulan disertakan, atau dua belas bulan dengan lanjutan; lagu baharu, integrasi dan pengehosan disebut harga secara berasingan.
Soalan lazim
Bolehkah saya menambah lagu sendiri ke dalam kod sumber permainan rentak ini?
Boleh. Tambah audio, satu carta bagi setiap kesukaran dan satu entri dalam public/manifest.json, sahkan carta, mainkan sepenuhnya, kemudian build semula. Editor carta tidak disertakan.
Adakah saya perlukan Node.js untuk menggunakan Riffvolt?
Tidak untuk mengehos folder game yang dibekalkan. Node.js 24 LTS hanya disyorkan untuk build semula selepas mengubah TypeScript atau menambah lagu.
Adakah ia berfungsi dengan skrin sentuh dan gamepad?
Ya. Pemain boleh mengetik lorong atau menggunakan gamepad, dan kawalan ditetapkan dalam Settings. Prestasi bergantung pada peranti, jadi uji pada peranti yang anda sasarkan.
Bagaimana dengan fon kepala Bluetooth dan kependaman?
Settings menyediakan kalibrasi audio yang menetapkan ofset audio dan membantu dengan fon kepala Bluetooth.
Adakah papan pendahulu dalam talian?
Tiada. Rekod peribadi disimpan mengikut lagu dan kesukaran dalam pelayar pemain. Tiada lawan jarak jauh atau kedudukan bersama.
Siapa yang patut membelinya
Riffvolt sesuai untuk portal atau laman yang mahukan permainan muzik dalam katalognya, studio yang menyerahkan permainan rentak berjenama kepada seorang pelanggan, dan pembangun yang mahu membaca bagaimana permainan Canvas 2D dan Web Audio menilai masa dalam TypeScript. Ia kurang sesuai jika anda memerlukan editor carta visual untuk bukan pembangun atau pertandingan dalam talian; kedua-duanya kerja tersuai.
