Izvorna koda ritmične igre: zapisi not, časovanje in dodajanje pesmi
Kako Riffvolt hrani 12 skladb in 48 zapisov not, kje se odloča o časovanju in točkovanju ter kaj je treba za dodajanje lastne pesmi.

Izvorna koda ritmične igre je pravzaprav dve stvari: koda, ki presodi časovanje, in podatki, ki povedo, kdaj pride vsaka nota. Kupci skoraj vedno hočejo spremeniti drugo, ker so nove pesmi tisto, zaradi česa ritmična igra postane njihova. Riffvolt, naša ritmična predloga za rock s štirimi pasovi, hrani seznam pesmi v enem manifestu, vsak zapis not pa v svoji datoteki, zato je dodajanje pesmi delo s podatki z jasnim kontrolnim seznamom.
Ta vodnik gre skozi paket: kaj predvaja, kje živita časovanje in točkovanje, kako dodati pesem, kako ponovno zgraditi in gostiti igro, kaj dovoljuje licenca in kaj izdaja ne vključuje. Imena datotek prihajajo iz vodnika za kupca, ki je priložen igri.
Ena stvar za začetek: za razliko od nekaterih naših predlog Riffvolt po spremembi izvorne kode ali dodajanju pesmi potrebuje ponovno gradnjo. Gostovanje priložene mape igre potrebuje samo statični spletni gostitelj.
Kaj predvaja ta izvorna koda ritmične igre
Riffvolt je pripravljena ritmična igra za rock s štirimi pasovi za brskalnik. Igralci zadenejo note ob pravem času, dolge note držijo do konca, jih upogibajo z whammy (ročico za upogibanje) in polnijo merilnik ROCK, ki sproži overdrive (pretirani način), svetlobno predstavo, ki ne prinaša točk in se konča ob vsakem zgrešenem zadetku. Natančnost časovanja gradi točke in combo (zaporedje).
- 12 celotnih skladb, vsaka z zapisi Easy (lahko), Normal (normalno) in Hard (težko), plus Rock God, ki se odpre po turneji: skupaj 48 zapisov not.
- Turneja skozi štiri prizorišča, Garage, The road, Festival in Arena (arena), po tri pesmi na prizorišče. Zvezdice iz prvih dveh odprejo encore (dodatek), dokončanje dodatka pa odpre naslednje prizorišče, z zgodbenimi prizori in kozmetičnimi nagradami, kot so sledi in okvirji.
- Prosto igranje: katera koli pesem na kateri koli težavnosti, osebni rekordi pa se shranjujejo po pesmih v brskalniku.
- Upravljanje: tipke D, F, J in K privzeto, dotik pasov na dotikalnem zaslonu ali gamepad. Nastavitve tipk so v meniju Settings (nastavitve).
- Udobje: kalibracija zvoka za zamik (offset), ki pomaga pri slušalkah Bluetooth, zmanjšano gibanje in način za fotoobčutljive, ki omili bliske in strele.
- 14 jezikov vmesnika.
Oglej si izdajo Riffvolt, demo in priročnike
Kako so datoteke organizirane
Prenos vsebuje mapo game/ (datoteke za gostovanje), source/ (projekt TypeScript), documentation/ (ilustrirani priročniki v angleščini in portugalščini) in licenses/ (obvestila tretjih oseb). V source/ je delitev med podatki o pesmih in logiko igre čista.
- public/manifest.json: katalog pesmi, s trajanjem vsake pesmi, različico zvoka in potmi do zapisov.
- public/charts/: 48 zapisov not.
- public/audio/: posnetki skladb.
- src/core/chartValidate.ts: shema zapisov in preverjanje časovanja.
- src/core/judge.ts: ocene časovanja.
- src/core/scoring.ts: pravila za točke in combo.
- src/game/campaign.ts: napredek po turneji.
- src/game/session.ts: življenjski cikel pesmi in izračun rezultata.
- src/i18n/locales.ts: 14 slovarjev vmesnika.
- src/net/localRecords.js: lokalni osebni rekordi.
- src/ui/style.css: vmesnik in odzivna postavitev.
Ker sta sodnik in točkovanje ločeni datoteki, lahko časovna okna naredite strožja ali prizanesljivejša, ne da bi se dotaknili tega, kako se točke seštevajo, in obratno. To je delitev, ki jo iščete v vsaki kodi za ritem.
Dodajanje lastne pesmi, korak za korakom
To je sprememba, o kateri kupci ritmičnih iger najprej vprašajo. V paketu ni urejevalnika zapisov, zato so zapisi zapisani kot podatki, priročnik pa natančno navaja, kaj potrebuje vsaka datoteka.
- Posnetek daj v public/audio/. Uporabljaj samo zvok, za katerega imaš pravice za svoj končni izdelek.
- Ustvari en zapis na podprto težavnost v public/charts/. Vsak zapis potrebuje ustrezen songId, difficulty, audioVersion, offset in note v zaporedju.
- Pesem dodaj v public/manifest.json z edinstvenim id, trajanjem, BPM, temo, audioVersion in potmi do zapisov.
- Vsak zapis preveri z validatorjem v chartValidate.ts.
- Odigraj celotno skladbo na vsaki težavnosti in potrdi sinhronizacijo. Validator preverja strukturo in pravila časovanja, ne pa tega, ali se nota zdi pravilna.
- Ponovno zgradi in naloži novo gradnjo.
Če želiš celoten nov zvočni posnetek in ne le eno dodatno pesem, načrtuj delo po zapisih: 12 pesmi na štiri težavnosti je 48 zapisov, vsak pa si zasluži celoten prehod pred izdajo.
Ponovna gradnja in kaj še spremeniti
Priporočen je Node.js 24 LTS. V source/ zaženi npm ci, nato npm run typecheck in npm run build, in objavi samo vsebino mape dist/. npm run preview streže lokalno gradnjo za pregled. Ne nalagaj node_modules/. Vite uporablja relativno osnovo, zato gradnja deluje tudi v podmapi. Dostavljeni izvajalni del je oblikovan za branje; priročnik priporoča, da pri ponovni gradnji ohraniš minify:false in cssMinify:false, da ga bo naslednji oseba še lahko brala.
- Blagovna znamka: barve in postavitev v src/ui/style.css ter tvoj logotip. Beli označevalnik (white label) je dovoljen, zato lahko tvoja blagovna znamka nadomesti našo.
- Besedila: src/i18n/locales.ts za jezike, ki jih ponujaš.
- Turneja: vrstni red prizorišč in kaj odklene kaj, v campaign.ts.
- Težavnost: časovna okna v judge.ts, nato pravila za točke in combo v scoring.ts.
- Pesmi: na koncu, ker vsak nov zapis potrebuje celoten prehod.
Pred urejanjem naredi varnostno kopijo, spreminjaj eno funkcijo naenkrat in po vsaki spremembi preizkusi meni, pesem, pavzo, zaslon z rezultatom in ponovno nalaganje. Ohrani ID-je predmetov in ključe shranjevanja stabilne, da ohranjajo rekorde obstoječi igralci.
Gostovanje ali vdelava v portal
Naloži vsebino mape game/ v mapo na tvojem gostitelju HTTP(S), ohrani relativne poti in odpri naslov. Ni potrebnega PHP, baze podatkov ali računa. Ne odpiraj index.html prek file://; za lokalni preizkus zaženi python -m http.server 8765 v mapi game/.
- Brskalnik potrebuje: JavaScript, ES module, Canvas 2D in Web Audio.
- Brskalniki odklenejo zvok šele po prvem dotiku ali kliku, zato je tih prvi zaslon običajen.
- V iframeu dovoli celozaslonski način in samodejno predvajanje.
- Streži .js z JavaScript MIME tipom, nikoli kot text/plain.
- Vsa sredstva med izvajanjem, pisave in knjižnice so znotraj gradnje. CDN ni obvezen, vendar to ni aplikacija za namestitev brez povezave.
Shranjevanja pripadajo izvoru brskalnika, zato premik igre na drugo domeno začne igralce od začetka. Ta izdaja uporablja lastne ključe shranjevanja, ločene od naših izdaj za portale. Projekti nativnih aplikacij niso vključeni; objava v trgovini je ločeno delo.
Kaj izdaja ne vključuje
Riffvolt je lokalna izdaja za brskalnik. Nima spletnih sob ali večigralca, spletne ali skupne lestvice, SDK za oglase ali računa, urejevalnika zapisov, nativnih aplikacij in gostovanja. Osebni rekordi in napredek turneje ostanejo v brskalniku igralca.
Če se ritmična igra ujema s tvojim katalogom, lahko poleg nje pristajata še dve drugi predlogi z lastnim časovanjem.
Pinloop: arkadna igra z enim gumbom in 30 tarčami
Ricopop: arkadna igra z odbijanjem in 50 nivoji
Licenca in cena
Riffvolt stane 49 $. Do 30. novembra 2026 promocija črni petek odstrani 15 %, zato stane 41,65 $, naročilo dveh ali več predlog pa doda popust za paket od 5 do 20 %. Licenca je trajna in nekskluzivna, za en končni izdelek, tvojega ali enega naročnika. Kodo, grafiko in zvok lahko spremeniš, našo blagovno znamko zamenjaš s svojo in igro ponudiš brezplačno ali z oglasi. Vključene skladbe uporabljaj kot del tega končnega izdelka; predloge, njene kode ali sredstev same po sebi ne smeš preprodajati. Šest mesecev podpore je vključenih, z dodatnim podaljšanjem ob blagajni pa dvanajst; nove pesmi, integracije in gostovanje se ponudijo posebej.
Preberi celotne pogoje licence
Pogosta vprašanja
Ali lahko v izvorno kodo ritmične igre dodam lastne pesmi?
Da. Dodaj zvok, en zapis na težavnost in vnos v public/manifest.json, preveri zapise, odigraj jih in nato ponovno zgradi. Urejevalnik zapisov ni vključen.
Ali za uporabo Riffvolta potrebujem Node.js?
Ne za gostovanje priložene mape igre. Node.js 24 LTS je priporočen le za ponovno gradnjo po spremembi TypeScripta ali dodajanju pesmi.
Ali deluje z dotikalnimi zasloni in gamepadi?
Da. Igralci lahko tapnejo pasove ali uporabijo gamepad, kontrole pa se nastavijo v meniju Settings. Zmogljivost je odvisna od naprave, zato preizkusi na tistih, ki jih ciljaš.
Kaj pa slušalke Bluetooth in zakasnitev?
V meniju Settings je kalibracija zvoka, ki nastavi zamik zvoka in pomaga pri slušalkah Bluetooth.
Ali obstaja spletna lestvica?
Ne. Osebni rekordi se shranjujejo po pesmi in težavnosti v brskalniku igralca. Ni oddaljenih tekmecev ali skupnih uvrstitev.
Kdo naj jo kupi
Riffvolt ustreza portalu ali spletnemu mestu, ki želi glasbeno igro v svojem katalogu, studiu, ki enemu naročniku dostavi ritmično igro z blagovno znamko, in razvijalcu, ki želi prebrati, kako igra na Canvas 2D in Web Audio presoja časovanje v TypeScriptu. Slabše ustreza, če potrebuješ vizualni urejevalnik zapisov za nerazvijalce ali spletno tekmovanje; oboje je delo po meri.
Igraj demo Riffvolt in kupi licenco
Nove pesmi ali različica z blagovno znamko? Zahtevaj ponudbo
