Ritmusjáték forráskód: jegyzetláncok, időzítés és saját dalok
Hogyan tárolja a Riffvolt 12 számot és 48 láncot, hol dől el az időzítés és a pontozás, és mihez kell egy saját dal.

A ritmusjáték forráskód valójában két dolog: a kód, amely megítéli az időzítést, és az adat, amely megmondja, mikor érkezik minden jegyzet. A vevők szinte mindig a másodikat akarják átírni, mert az új dalok teszik a ritmusjátékot a magukévá. A Riffvolt, a négysávos rockos ritmussablonunk, a dalok listáját egyetlen manifeszt fájlban tartja, minden jegyzetláncot pedig külön fájlban, így egy dal hozzáadása egy adatfeladat egyértelmű ellenőrzőlistával.
Ez az útmutató végigvezet a csomagon: mit játszik le, hol van az időzítés és a pontozás, hogyan adsz hozzá dalt, hogyan építed és tárhelyezed, mit enged a licenc, és mit nem tartalmaz a kiadás. A fájlnevek a játékkal szállított vásárlói útmutatóból származnak.
Egy dolgot az elején érdemes tudni: a Riffvolt a többi sablonunktól eltérően újraépítést igényel, ha módosítod a forrást vagy új dalokat adsz hozzá. A kész játékmappa tárhelyre töltéséhez csak statikus webtárhely kell.
Mit játszik le ez a ritmusjáték forráskód
A Riffvolt kész, négysávos rockos ritmusjáték böngészőre. A játékosok időben ütik a jegyzeteket, a hosszú jegyzeteket a végéig tartják, whammy (hangmagasság-hajlító) karral hajlítják, és egy ROCK mérőt töltenek fel, amely overdrive-ot (túlhajtás) indít. Az overdrive egy fényshow, amely nem ad pontot, és bármilyen hibánál véget ér. Az időzítés pontossága adja a pontszámot és a kombót.
- 12 teljes szám, mindegyikhez Easy (könnyű), Normal (normál) és Hard (nehéz) lánc, plusz a turné után nyíló Rock God (rockisten) lánc: összesen 48 jegyzetlánc.
- Turné négy helyszínen: Garage (garázs), The road (az út), Festival (fesztivál) és Arena (aréna), helyszínenként három dal. Az első kettőből gyűjtött csillagok megnyitják az Encore (ráadás) részt, a ráadás teljesítése pedig a következő helyszínt nyitja meg, történetjelenetekkel és kozmetikai jutalmakkal, például nyomokkal és keretekkel.
- Szabad játék: bármelyik dal bármelyik nehézségen, a személyes rekordok dalonként a böngészőben mentődnek.
- Vezérlés: alapértelmezetten a D, F, J és K billentyűk, érintőképernyőn a sávok koppintása, vagy gamepad. A billentyűkiosztás a Settings (beállítások) menüben van.
- Kényelem: hangkalibrálás az eltolás beállításához, ami Bluetooth-fejhallgatónál segít, csökkentett mozgás és egy fényérzékeny mód, amely tompítja a villanásokat és a villámokat.
- 14 felületi nyelv.
Nézd meg a Riffvolt termékoldalt, a demót és a kézikönyveket
Hogyan vannak szervezve a fájlok
A letöltés tartalmazza a game/ mappát (a tárhelyre feltölthető fájlokat), a source/ mappát (a TypeScript projektet), a documentation/ mappát (illusztrált kézikönyvek angolul és portugálul) és a licenses/ mappát (harmadik féltől származó értesítések). A source/ mappán belül a dalok adata és a játéklogika tisztán szét van választva.
- public/manifest.json: a dalkatalógus, minden dal hosszával, hangverziójával és láncútvonalaival.
- public/charts/: a 48 jegyzetlánc.
- public/audio/: a számok hangfelvételei.
- src/core/chartValidate.ts: a lánc sémája és az időzítés ellenőrzése.
- src/core/judge.ts: az időzítési minősítések.
- src/core/scoring.ts: a pontszám- és kombószabályok.
- src/game/campaign.ts: a turné haladása.
- src/game/session.ts: egy dal életciklusa és az eredmény kiszámítása.
- src/i18n/locales.ts: a 14 felületi szótár.
- src/net/localRecords.js: a helyi személyes rekordok.
- src/ui/style.css: a felület és a reszponzív elrendezés.
Mivel a bíró és a pontozás külön fájlban van, az időzítési ablakokat szigorúbbá vagy elnézőbbé teheted anélkül, hogy a pontok összeadásához nyúlnál, és fordítva. Ez a szétválasztás a keresett szempont bármilyen ritmuskódban.
Saját dal hozzáadása lépésről lépésre
Ezt a változtatást kérdezik először a ritmusjáték-vevők. A csomagban nincs jegyzetszerkesztő, ezért a láncok adatként íródnak, és a kézikönyv pontosan felsorolja, mit igényel minden fájl.
- Tedd a felvételt a public/audio/ mappába. Csak olyan hangot használj, amelyhez van jogod a végtermékedhez.
- Készíts egy láncot minden támogatott nehézséghez a public/charts/ mappában. Minden láncnak kell a megfelelő songId, difficulty, audioVersion, offset, és a jegyzetek sorrendben.
- Vedd fel a dalt a public/manifest.json fájlba egyedi id-val, hosszal, BPM-mel, témával, audioVersion-nel és a láncútvonalakkal.
- Ellenőrizd minden láncot a chartValidate.ts validátorával.
- Játszd végig az egész számot minden nehézségen, hogy megerősítsd a szinkront. A validátor a szerkezetet és az időzítési szabályokat ellenőrzi, nem azt, hogy egy jegyzet jól érződik-e.
- Építs újra, majd töltsd fel az új buildet.
Ha egy teljesen új szám-válogatást szeretnél egyetlen extra dal helyett, a munkát lánconként tervezd: 12 dal négy nehézségen 48 lánc, és mindegyiknek megérdemel egy teljes végigjátszást a kiadás előtt.
Újraépítés és további módosítások
A Node.js 24 LTS-t javasoljuk. A source/ mappában futtasd az npm ci parancsot, majd az npm run typecheck és az npm run build parancsokat, és csak a dist/ mappa tartalmát tedd közzé. Az npm run preview a helyi buildet szolgálja ki ellenőrzésre. Ne töltsd fel a node_modules/ mappát. A Vite relatív alapot használ, így a build almappában is működik. A kiszállított futásidejű kód olvashatóra van formázva; a kézikönyv azt kéri, hogy újraépítéskor tartsd meg a minify:false és cssMinify:false beállítást, hogy a következő ember is el tudja olvasni.
- Márka: színek és elrendezés a src/ui/style.css fájlban, plusz a logód. A fehér címkézés megengedett, így a te márkád lehet a mienk helyén.
- Szövegek: src/i18n/locales.ts, a szállított nyelvekhez.
- Turné: a helyszínek sorrendje és az, mi mit nyit meg, a campaign.ts fájlban.
- Nehézség: az időzítési ablakok a judge.ts-ben, utána a pont- és kombószabályok a scoring.ts-ben.
- Dalok: utoljára, mert minden új láncnak teljes végigjátszás kell.
Szerkesztés előtt készíts biztonsági másolatot, egyszerre egy funkciót változtass, és minden változtatás után teszteld a menüt, egy dalt, a szünetet, az eredményképernyőt és az újratöltést. A változtatások után is tartsd stabilan az elem-azonosítókat és a mentési kulcsokat, hogy a játékosok meglévő rekordjai megmaradjanak.
Tárhelyre töltés vagy portálba ágyazás
Töltsd fel a game/ tartalmát a HTTP(S) tárhelyed egy mappájába, tartsd meg a relatív útvonalakat, és nyisd meg a címet. Nincs szükség PHP-re, adatbázisra vagy fiókra. Ne nyisd meg az index.html-t file:// protokollon; helyi teszthez futtasd a python -m http.server 8765 parancsot a game/ mappában.
- A böngészőnek kell: JavaScript, ES-modulok, Canvas 2D és Web Audio.
- A böngészők csak az első érintés vagy kattintás után engedélyezik a hangot, ezért a néma első képernyő normális.
- Iframe-ben engedélyezd a teljes képernyőt és az automatikus lejátszást.
- A .js fájlokat JavaScript MIME-típussal szolgáld ki, sosem text/plain típussal.
- Minden futásidejű eszköz, betűtípus és könyvtár a buildben van. Nincs kötelező CDN, de ez nem telepíthető offline alkalmazás.
A mentések a böngésző origójához tartoznak, így a játék más domainre költöztetése új kezdést jelent a játékosoknak. Ez a kiadás saját mentési kulcsokat használ, a mi portálkiadásainktól elkülönítve. Natív appprojekt nincs benne; az áruházi kiadás külön munka.
Mit nem tartalmaz ez a kiadás
A Riffvolt a helyi böngészős kiadás. Nincs online szoba vagy többjátékos mód, nincs online ranglista vagy közös toplista, nincs reklám-SDK vagy fiók, nincs jegyzetszerkesztő, nincs natív app és nincs tárhely. A személyes rekordok és a turné haladása a játékos böngészőjében maradnak.
Ha egy zenei játék illik a katalógusodba, két másik, időzítésre épülő sablonunk is jól mellé illhet.
Pinloop: egy egygombos időzítős arkádjáték 30 céllal
Ricopop: egy pattogós arkádjáték 50 pályával
Licenc és ár
A Riffvolt listaára 49 USD. 2026. november 30-ig a Black Friday akció 15%-ot kedvezményez, így 41,65 USD-be kerül, két vagy több sablon egy rendelésben pedig 5–20% csomagkedvezményt ad. A licenc határozatlan idejű és nem kizárólagos, egy végtermékre szól, a tiédre vagy egy ügyfeledére. A kódot, a grafikát és a hangot módosíthatod, a mi márkánkat lecserélheted a sajátodra, és a játékot ingyen vagy reklámokkal ajánlhatod. A mellékelt számokat a végtermék részeként használhatod; a sablont, a kódját vagy az eszközeit önmagukban nem adhatod tovább. Hat hónap támogatás jár, a bővítménnyel tizenkét hónap; az új dalokat, az integrációkat és a tárhelyet külön árazzuk.
Olvasd el a teljes licenc-feltételeket
Gyakran ismételt kérdések
Hozzáadhatok saját dalokat a ritmusjáték forráskódhoz?
Igen. Adj hozzá hangfájlt, egy láncot nehézségenként és egy bejegyzést a public/manifest.json fájlban, validáld a láncokat, játszd végig őket, majd építs újra. Jegyzetszerkesztő nincs a csomagban.
Kell Node.js a Riffvolt használatához?
A kész játékmappa tárhelyre töltéséhez nem. A Node.js 24 LTS-t csak akkor javasoljuk, ha a TypeScriptet módosítod vagy dalokat adsz hozzá, és újra akarsz építeni.
Működik érintőképernyővel és gamepaddel?
Igen. A játékosok koppinthatnak a sávokra, vagy gamepadet használhatnak, a vezérlést pedig a Settings menüben állítják be. A teljesítmény az eszköztől függ, ezért teszteld azokat, amelyekre célzol.
Mi a helyzet a Bluetooth-fejhallgatóval és a késleltetéssel?
A Settings tartalmaz hangkalibrálást, amely az audio-eltolást állítja be, és segít Bluetooth-fejhallgatóval.
Van online toplista?
Nincs. A személyes rekordok dalonként és nehézségenként a játékos böngészőjében mentődnek. Nincsenek távoli ellenfelek vagy közös rangsorok.
Kinek való
A Riffvolt olyan portálnak vagy oldalnak való, amely zenei játékot akar a kínálatába, olyan stúdiónak, amely márkás ritmusjátékot szállít egy ügyfélnek, és olyan fejlesztőnek, aki el szeretné olvasni, hogyan ítéli meg egy Canvas 2D és Web Audio játék az időzítést TypeScriptben. Gyengébben illik, ha nem fejlesztőknek szóló vizuális jegyzetszerkesztőre vagy online versenyre van szükséged; mindkettő egyedi munka.
