Rytmipelin lähdekoodi: nuotit, ajoitus ja kappaleiden lisääminen
Miten Riffvolt tallentaa 12 kappaletta ja 48 nuottikarttaa, missä ajoitus ja pisteytys päätetään ja mitä vaaditaan oman kappaleen lisäämiseen.

Rytmipelin lähdekoodi on oikeastaan kaksi asiaa: koodi, joka arvioi ajoituksen, ja data, joka kertoo, milloin jokainen nuotti saapuu. Ostajat haluavat lähes aina muuttaa jälkimmäistä, koska uudet kappaleet tekevät rytmipelistä oman. Riffvolt, neljän kaistan rock-rytmipohjamme, pitää kappalelistan yhdessä manifest-tiedostossa ja jokaisen nuottikartan omassa tiedostossaan, joten kappaleen lisääminen on datatehtävä selkeällä tarkistuslistalla.
Tämä opas käy paketin läpi: mitä se soittaa, missä ajoitus ja pisteytys ovat, miten kappale lisätään, miten peli käännetään ja isännöidään, mitä lisenssi sallii ja mitä versio jättää pois. Tiedostonimet tulevat pelin mukana tulevasta ostajan oppaasta.
Yksi asia kannattaa pitää mielessä alusta lähtien: toisin kuin jotkin pohjistamme, Riffvolt tarvitsee uudelleenkäännöksen, kun muutat lähdekoodia tai lisäät kappaleita. Toimitetun pelikansion isännöintiin riittää pelkkä staattinen web-palvelin.
Mitä tämä rytmipelin lähdekoodi soittaa
Riffvolt on valmis nelikaistainen rock-rytmipeli selaimeen. Pelaajat osuvat nuotteihin ajoissa, pitävät pitkiä nuotteja loppuun asti, taivuttavat niitä whammylla (vipu) ja täyttävät ROCK gauge -mittarin, joka käynnistää Overdriven (ylikäyttö). Overdrive on valoshow, joka ei lisää pisteitä ja päättyy jokaiseen virheeseen. Ajoituksen tarkkuus kerryttää pisteitä ja combo-kerrointa.
- 12 täyttä kappaletta, joista jokaisella on Easy-, Normal- ja Hard-kartat, sekä Rock God (rock-jumala), joka avautuu kiertueen jälkeen: 48 nuottikarttaa yhteensä.
- Kiertue neljän paikan läpi (Garage, The road, Festival ja Arena), kolme kappaletta kussakin. Ensimmäisistä kahdesta paikasta kerätyt tähdet avaavat encoren, ja encoren läpäisy avaa seuraavan paikan tarinakohtauksineen ja kosmeettisine palkintoineen, kuten jälkineen ja kehyksineen.
- Vapaa pelaaminen: mikä tahansa kappale millä tahansa vaikeustasolla, henkilökohtaiset ennätykset tallennetaan kappaleittain selaimeen.
- Ohjaus: oletuksena D, F, J ja K, kosketusnäytöllä kaistojen napauttaminen tai peliohjain. Näppäinasetukset ovat Asetuksissa.
- Mukavuus: äänen kalibrointi offsetille, joka auttaa Bluetooth-kuulokkeilla, vähennetty liike ja valoherkkä tila, joka vaimentaa välähdyksiä ja salamointia.
- 14 käyttöliittymän kieltä.
Katso Riffvoltin sivu, demo ja käsikirjat
Miten tiedostot on järjestetty
Lataus sisältää kansiot game/ (julkaistavat tiedostot), source/ (TypeScript-projekti), documentation/ (kuvitetut käsikirjat englanniksi ja portugaliksi) ja licenses/ (kolmannen osapuolen huomautukset). Kansiossa source/ jako kappaledatan ja pelilogiikan välillä on selkeä.
- public/manifest.json: kappalekatalogi, jossa on jokaisen kappaleen kesto, äänen versio ja karttapolut.
- public/charts/: 48 nuottikarttaa.
- public/audio/: kappaleiden äänitykset.
- src/core/chartValidate.ts: kartan rakenteen ja ajoituksen tarkistus.
- src/core/judge.ts: ajoituksen arviointi.
- src/core/scoring.ts: pisteiden ja combon säännöt.
- src/game/campaign.ts: kiertueen eteneminen.
- src/game/session.ts: kappaleen elinkaari ja tuloksen laskenta.
- src/i18n/locales.ts: 14 käyttöliittymän sanakirjaa.
- src/net/localRecords.js: paikalliset henkilökohtaiset ennätykset.
- src/ui/style.css: käyttöliittymä ja responsiivinen asettelu.
Koska arvioija ja pisteytys ovat erillisiä tiedostoja, voit tehdä ajoitusikkunoista tiukempia tai anteliaampia koskematta pisteiden kertymiseen, ja päinvastoin. Tuo jako on se, mitä kannattaa etsiä mistä tahansa rytmikoodista.
Oman kappaleen lisääminen vaihe vaiheelta
Tämä on muutos, josta rytmipelin ostajat kysyvät ensimmäisenä. Paketissa ei ole nuottieditoria, joten kartat kirjoitetaan datana, ja käsikirja listaa tarkasti, mitä kukin tiedosto tarvitsee.
- Laita äänite kansioon public/audio/. Käytä vain ääntä, johon sinulla on oikeudet lopputuotteelle.
- Luo yksi kartta jokaiselle tuetulle vaikeustasolle kansioon public/charts/. Jokaisessa kartassa pitää olla vastaava songId, difficulty, audioVersion, offset ja nuotit järjestyksessä.
- Lisää kappale tiedostoon public/manifest.json yksilöllisellä id:llä, kestolla, BPM:llä, teemalla, audioVersionilla ja karttapoluilla.
- Tarkista jokainen kartta chartValidate.ts:n validaattorilla.
- Pelaa koko kappale jokaisella vaikeustasolla varmistaaksesi synkronoinnin. Validaattori tarkistaa rakenteen ja ajoitussäännöt, ei sitä, tuntuuko nuotti oikealta.
- Käännä uudelleen ja lataa uusi käännös.
Jos haluat kokonaan uuden äänimaailman yhden lisäkappaleen sijaan, suunnittele työ kartta kerrallaan: 12 kappaletta neljällä vaikeustasolla on 48 karttaa, ja jokainen ansaitsee täyden läpipelauksen ennen julkaisua.
Uudelleenkäännös ja muut muutokset
Node.js 24 LTS on suositeltu. Kansiossa source/ aja npm ci, sitten npm run typecheck ja npm run build, ja julkaise vain dist/-kansion sisältö. npm run preview tarjoaa paikallisen käännöksen tarkistettavaksi. Älä lataa node_modules/-kansiota. Vite käyttää suhteellista perusosoitetta, joten käännös toimii alikansiossa. Toimitettu ajonaikainen koodi on muotoiltu luettavaksi; käsikirja pyytää säilyttämään asetukset minify:false ja cssMinify:false uudelleenkäännöksessä, jotta seuraava ihminen voi yhä lukea sen.
- Brändi: värit ja asettelu tiedostossa src/ui/style.css sekä logosi. White label on sallittu, joten brändisi voi korvata meidän.
- Tekstit: src/i18n/locales.ts niille kielille, joita toimitat.
- Kiertue: paikkojen järjestys ja mikä avaa minkin tiedostossa campaign.ts.
- Vaikeus: ajoitusikkunat tiedostossa judge.ts, sitten pisteiden ja combon säännöt tiedostossa scoring.ts.
- Kappaleet viimeisenä, koska jokainen uusi kartta tarvitsee täyden läpipelauksen.
Varmuuskopioi ennen muokkaamista, muuta yhtä ominaisuutta kerrallaan ja testaa valikko, kappale, tauko, tulosnäkymä ja uudelleenlataus jokaisen muutoksen jälkeen. Pidä kohdetunnukset ja tallennusavaimet vakaina, jotta nykyiset pelaajat säilyttävät ennätyksensä.
Isännöinti tai upotus portaaliin
Lataa game/-kansion sisältö HTTP(S)-isännöintisi kansioon, säilytä suhteelliset polut ja avaa osoite. PHP:tä, tietokantaa tai tiliä ei tarvita. Älä avaa index.html:ää file://-osoitteella; paikallista testiä varten aja python -m http.server 8765 kansiossa game/.
- Selain tarvitsee: JavaScriptin, ES-moduulit, Canvas 2D:n ja Web Audion.
- Selaimet avaavat äänen vasta ensimmäisen napautuksen tai klikkauksen jälkeen, joten hiljainen ensimmäinen ruutu on normaali.
- iframessa salli koko näyttö ja automaattinen toisto.
- Tarjoa .js-tiedostot JavaScript-MIME-tyypillä, ei koskaan text/plain-tyypillä.
- Kaikki ajonaikaiset resurssit, fontit ja kirjastot ovat käännöksen sisällä. Pakollista CDN:ää ei ole, mutta kyse ei ole asennettavasta offline-sovelluksesta.
Tallennukset kuuluvat selaimen alkuperään, joten pelin siirtäminen toiseen domainiin aloittaa pelaajat alusta. Tämä versio käyttää omia tallennusavaimiaan, erillään portaaliversioistamme. Natiiviversioita ei ole mukana; kauppajulkaisu on erillinen työ.
Mitä versio ei sisällä
Riffvolt on paikallinen selainversio. Siinä ei ole verkkohuoneita tai moninpeliä, verkkotulostauluja tai jaettua tulostaulua, mainos-SDK:ta tai tiliä, nuottieditoria, natiiviversioita eikä isännöintiä. Henkilökohtaiset ennätykset ja kiertueen eteneminen jäävät pelaajan selaimeen.
Jos musiikkipeli sopii katalogiisi, kaksi muuta ajoitukseen perustuvaa pohjaamme voivat sopia sen viereen.
Pinloop: yhden napin ajoituspeli, jossa on 30 maalia
Ricopop: ricochet-arcade-peli, jossa on 50 tasoa
Lisenssi ja hinta
Riffvolt maksaa listahintaan 49 dollaria. Black Friday -tarjous antaa 15 % alennuksen 30. marraskuuta 2026 asti, joten se maksaa 41,65 dollaria, ja kahden tai useamman pelipohjan tilauksessa saa 5–20 % paketti-alennuksen. Lisenssi on ikuinen ja ei-yksinomainen yhteen lopputuotteeseen, omaasi tai yhden asiakkaasi. Saat muuttaa koodia, taidetta ja ääntä, korvata meidän brändimme omallasi ja tarjota pelin ilmaiseksi tai mainosten kanssa. Käytä mukana tulevia kappaleita osana kyseistä lopputuotetta; et saa myydä pohjaa, sen koodia tai omaisuutta erikseen. Kuuden kuukauden tuki sisältyy, tai 12 kuukautta laajennuksella. Uudet kappaleet, integraatiot ja isännöinti hinnoitellaan erikseen.
Usein kysytyt kysymykset
Voinko lisätä omia kappaleita rytmipelin lähdekoodiin?
Kyllä. Lisää ääni, yksi kartta per vaikeustaso ja merkintä tiedostoon public/manifest.json, validoi kartat, pelaa ne läpi ja käännä uudelleen. Nuottieditoria ei sisälly pakettiin.
Tarvitsenko Node.js:n Riffvoltin käyttämiseen?
Et toimitetun pelikansion isännöintiin. Node.js 24 LTS on suositeltu vain uudelleenkäännökseen, kun muutat TypeScriptiä tai lisäät kappaleita.
Toimiiko se kosketusnäytöillä ja peliohjaimilla?
Kyllä. Pelaajat voivat napauttaa kaistoja tai käyttää peliohjainta, ja ohjaimet asetetaan Asetuksissa. Suorituskyky riippuu laitteesta, joten testaa kohdelaitteesi.
Entä Bluetooth-kuulokkeet ja viive?
Asetuksissa on äänen kalibrointi, joka asettaa äänen offsetin ja auttaa Bluetooth-kuulokkeiden kanssa.
Onko verkkotulostaulua?
Ei. Henkilökohtaiset ennätykset tallennetaan kappaleittain ja vaikeustasoittain pelaajan selaimeen. Etäkilpailijoita tai jaettuja sijoituksia ei ole.
Kenelle tämä sopii
Riffvolt sopii portaalille tai sivustolle, joka haluaa musiikkipelin katalogiinsa, studiolle, joka toimittaa brändätyn rytmipelin yhdelle asiakkaalle, ja kehittäjälle, joka haluaa lukea, miten Canvas 2D:llä ja Web Audiolla tehty peli arvioi ajoituksen TypeScriptissä. Se sopii huonommin, jos tarvitset visuaalisen nuottieditorin ei-kehittäjille tai verkkokilpailun. Molemmat ovat mukautettua työtä.
