Lauatennise mängu lähtekood: Sunset Rallyi failid ja füüsika
3D pingpongimäng brauserile, avatud fail-faililt: kus asuvad füüsika, punktid, kampaania ja kohad ning mida muuta esimesena.

Kui vajad lauatennise mängu lähtekoodi, mida saad majutada ja muuta, on Sunset Rally valmis 3D pingpongimäng brauserile üheksa matšiga kampaania, kolme arvutivastase, töökoja ja täieliku TypeScripti projektiga. Tavahind on 39 $. Mängukaust on juba koostatud ja minimeerimata, seega saad selle kõigepealt üles laadida ja hiljem lugeda.
Spordimänge on raskem kohandada, kui paistab, sest lõbu peitub füüsikas ja juhtimises, mitte menüüdes. See juhend näitab, kus need Sunset Rallyi projektis asuvad, mida saab turvaliselt muuta ja mida see väljaanne ei sisalda.
Kuidas pingpongimäng mängib
Matšid lähevad seitsme punktini arvutivastase vastu. Mängijad liigutavad osutajat või lohistavad reketit, löögid on automaatsed. Üles liikumine lisab jõudu, külgsuunaline liikumine paigutab palli, alla tõmbamine mängib kukutuslöögi (drop shot), ja kõrgele jääv pall on selleks, et see smässida.
Valikuline abi, mida mängijad saavad matši ajal sisse ja välja lülitada, aitab reketil leida palli kõrguse. See on avalikul saidil oluline: esmakordne mängija telefonis saab ikka palli tagasi lüüa.
Arvutivastasi on kolm, igaühel oma stiil: kannatlik Capi, mänguline Nori ja täpne Miso, igaüks tasemel Easy (lihtne), Normal (tavaline) või Hard (raske). Treeningrežiim (Training mode) annab partneri, kes tagastab iga palli. Pärast matši näitab taasesitus otsustavat punkti uuesti.
Mida lauatennise mängu lähtekoodi pakend sisaldab
- Valmis majutatav game/ kaust, juba koostatud ja minimeerimata.
- TypeScripti arendajalähtekood koos Vite seadistuse ja mänguvaradega kaustas source/.
- Illustreeritud juhendid inglise ja portugali keeles, päris ekraanipiltidega.
- Fondid ja helifailid, mis on mänguga kaasas.
- Kolmandate osapoolte litsentsiteated ja muudatuste logi.
Tehnoloogiapinu on TypeScript, Three.js r184, Vite ja WebGL2. Failid hõlmavad HTML-i, CSS-i, JavaScripti, TypeScripti ja JSON-i. Liides on 14 keeles: inglise, portugali, hispaania, prantsuse, saksa, itaalia, hollandi, poola, türgi, vene, indoneesia, jaapani, korea ja lihtsustatud hiina keel. Juhendid on ainult inglise ja portugali keeles.
Matšide ümber olev sisu on samuti pakendis: Sunset Circuit (Sunseti ring) üheksa matšiga kolmes etapis, kolm kohta, Sunset aed, Sakura aed ja Seaside café, hommikul, pärastlõunal, öösel või vihmas, ning töökoda (Workshop), kus võidutest teenitud mündid ostavad reketi värve, kummi, kujusid, käepidemeid, puitu, servalinti, kleepse ning palli ja laua stiile.
Kus asjad koodis asuvad
Juhend seob mängu iga osa failiga. See on nimekiri, mis tuleb töötamise ajal lahti hoida:
- Campaign.ts: üheksa kampaaniamatši ja nende tähtede eesmärgid.
- Places.ts: kuidas iga koht välja näeb.
- physics.ts: palli ja reketi füüsika.
- match.ts: punktiarvestus ja matši reeglid.
- i18n.ts: inglise ja portugali liidese tekst; teised keeled on kaustas locales.
- styles.css: menüüde ja ekraanide kujundus.
Igal kampaaniamatšil on kuni kolm tähte: võida, taba kolme nurka ja pea kümne löögi vahetus. See teeb kokku 27 tähte, ja iga koha läbimine teenib töökoja auhinna. Kuna tähtede tingimused asuvad ühes kampaaniafailis, saad kampaaniat lihtsamaks või raskemaks muuta, otsimata koodi läbi.
Mida pingpongimalli puhul esmalt muuta
Soovitame seda järjekorda, madalast riskist kõrgeni.
- Liidese tekst ja mängu nimi failides i18n.ts ja kaustas locales.
- Värvid ja ekraanid failis styles.css.
- Töökoja stiilid reketitele, pallidele ja lauale, et varustus kannaks sinu brändi.
- Kohtade visuaal failis Places.ts.
- Kampaaniamatšid ja tähtede eesmärgid failis Campaign.ts.
- Füüsika ja punktiarvestus failides physics.ts ja match.ts, ainult siis, kui tahad teistsugust tunnet.
Juhend lisab kolm reeglit, mida tasub järgida. Hoia avamise ID-d, eseme ID-d ja salvestusvõtmed stabiilsena, muidu kaotavad mängijad teenitu. Tee enne algust varukoopia. Muuda korraga üht funktsiooni, et teaksid, milline muudatus mille põhjustas.
Valge silt (white label) on lubatud: sinu nimi ja logo või su kliendi oma võib meie asendada.
Koostamine, majutus ja manustamine
Mängimiseks pole midagi vaja koostada. Laadi game/ sisu mis tahes staatilist faili serveerivale HTTP(S) hostile, säilita suhtelised teed ja ava aadress. PHP-d, andmebaasi ega kontot pole vaja.
Lähtekoodi muutmiseks vajad Node.js-i (soovitatav 24 LTS) ja npm-i. Muuda TypeScripti, koosta Vite-ga uuesti ja asenda majutatud game/ kaust uue väljundiga.
Brauser vajab JavaScripti, ES-mooduleid ja WebGL2-t. Toetatud on nii puute- kui hiirejuhtimine ning juhtnupud kohanduvad ekraani suurusega. Jõudlus sõltub brauserist ja seadmest, seega testi neid telefone, mida su mängijad kasutavad.
- Laadi game/ üles testkaustale oma hostis.
- Mängi üks matš lauaarvuti brauseris ja teine telefonis.
- Tee oma tekst- ja stiilimuudatused kaustas source/ ja koosta uuesti.
- Asenda kogu testkaust ja mängi uuesti.
- Liiguta lõplikule aadressile.
Mida see väljaanne ei sisalda
See väljaanne mängitakse arvutivastasega: kampaania, vaba matš ja treening. Võrgumäng, võrgutoad, võrgus edetabelid ja pilvekontod ei ole paketi osa ning kahe mängija režiimi ei ole. Reklaami-SDK-sid ega kontosid ei ole, natiivseid rakendusi ja hostimist ei ole kaasas.
Edusammud jäävad mängija brauserisse: kampaania tähed, tulemused, statistika, taasesitused ja töökoja esemed. Serverit ega kontot ei kasutata, seega pole pärast starti midagi hooldada.
Kui vajad võrgurežiimi, portaali SDK-d, rakenduse poe versiooni või paigaldust oma serverisse, on see eraldi teenus, mida pakume projektipõhiselt.
Litsents, tugi ja hind ühes lõigus
Üks ost annab igavesti kehtiva, mitteeksklusiivse litsentsi ühele lõpptootele, kas sinu või ühe kliendi oma, mida mängijad võivad kasutada tasuta või reklaamitulu teenides. Selle toote piires võid muuta koodi, graafikat ja heli, kuid malli, selle lähtekoodi või varasid eraldi edasi müüa ei tohi. Tugi kestab 6 kuud või 12 kuud, kui ostes lisad laienduse, ja hõlmab failide paigaldamist ja kasutamist ning korduvate vigade parandamist; kohandamine, majutus ning SDK- või portaaliühendus pakutakse eraldi. Tavahind on 39 $. Kuni 30. novembrini 2026 kehtib Black Friday soodustus, mis annab kõigile mallidele 15% allahindluse, seega maksab Sunset Rally 33,15 $, ja 1. detsembrist naasevad hinnad tavahinnale.
Korduma kippuvad küsimused
Kas selle pingpongimängu kasutamiseks pean midagi koostama?
Ei. Kaust game/ on juba koostatud. Laadi sisu staatilisele veebihostile ja ava aadress. Node.js ja npm on vajalikud ainult siis, kui muudad TypeScripti ja koostad uuesti.
Kas on kahe mängija või võrgurežiim?
Ei. See väljaanne mängitakse arvutivastasega kampaanias, vabades matšides ja treeningus.
Kas saan muuta kampaaniat ja tähtede eesmärke?
Jah. Matšid ja tähtede tingimused asuvad failis Campaign.ts. Koosta pärast seda uuesti Node.js-iga.
Kas saan muuta palli käitumist?
Jah. Füüsika asub failis physics.ts ja punktiarvestuse reeglid failis match.ts. Muuda korraga üht asja ja testi iga vastase vastu.
Kas see töötab telefonides?
Jah, puutejuhtimisega, mis kohandub ekraaniga. Nõutav on WebGL2, jõudlus sõltub seadmest, seega testi telefone, mida sihid.
Kuhu edusammud salvestatakse?
Mängija brauserisse. Serverit ega kontot ei kasutata.
Teised spordimallid võrdluseks
Kui ehitad saidile spordinurka, sobivad Sunset Rallyi kõrvale hästi kaks teist malli. Velvet Pool on 8-palli bilardimäng arvutivastasega ja kohaliku kahe mängijaga, kirjutatud tavalises JavaScriptis WebGL2-ga, tavahind 39 $. Puttide on 3D minigolfimäng 30 augu ja Three.js-i ning Rapieriga, tavahind 39 $. Mõlemal on 14 liidese keelt.
Sunset Rally sobib portaalidele ja saitidele, mis tahavad lühikeste matšidega spordimängu, stuudiotele, mis tarnivad ühele kliendile brändiga mängu, ja arendajatele, kes tahavad õppida loetavast TypeScripti ja Three.js projektist või seda laiendada. Kui vajad kahte mängijat samal seadmel, on see režiim Velvet Poolil, Sunset Rallyil mitte.
Vaata Velvet Poolit, 8-palli mängu
Vaata Puttide'i, 3D minigolfimängu
Kahe või enama malli ostmine samas tellimuses odavdab iga litsentsi: kahe puhul 5%, kolme puhul 10%, nelja puhul 15% ja viie või enama puhul 20%.
