Cod sursă tenis de masă: fișierele, fizica și campania Sunset Rally
Un joc 3D de ping-pong pentru browser, deschis fișier cu fișier: unde trăiesc fizica, scorul, campania și locurile și ce schimbi primul.

Dacă ai nevoie de cod sursă pentru un joc de tenis de masă pe care îl poți găzdui și modifica, Sunset Rally este un joc 3D de ping-pong finalizat, pentru browser, cu o campanie de nouă meciuri, trei adversari CPU, un atelier și proiectul TypeScript complet, la prețul de listă de 39 USD. Dosarul jocului este deja compilat și nemicșorat, deci îl poți încărca mai întâi și citi codul mai târziu.
Jocurile sportive sunt mai greu de adaptat decât par, pentru că distracția stă în fizică și în comenzi, nu în meniuri. Ghidul arată unde se află fiecare dintre acestea în proiectul Sunset Rally, ce poți schimba în siguranță și ce lasă în afară această ediție.
Cum se joacă jocul de ping-pong
Meciurile merg până la șapte puncte împotriva unui adversar CPU. Jucătorii mișcă indicatorul sau trag pentru a controla racheta, iar loviturile sunt automate. Împingerea în sus adaugă putere, mișcarea laterală plasează mingea, tragerea în jos joacă o lovitură scurtă, iar o minge ridicată este făcută să fie smecheruită.
Un ajutor opțional, pe care jucătorii îl pot activa și dezactiva în timpul unui meci, ajută racheta să găsească înălțimea mingii. Asta contează pentru un site public: un jucător nou pe telefon poate totuși să returneze mingea.
Există trei adversari CPU, fiecare cu stilul lui: Capi, răbdător, Nori, jucăușă, și Miso, precisă, fiecare pe Easy (ușor), Normal (normal) sau Hard (greu). Modul Training (antrenament) îți oferă un partener care returnează fiecare minge. După un meci, un replay arată din nou punctul decisiv.
Ce conține pachetul cu codul sursă pentru tenis de masă
- Un dosar game/ gata de găzduit, deja compilat și nemicșorat.
- Sursa TypeScript pentru dezvoltatori, cu configurarea Vite și resursele jocului, în source/.
- Manuale ilustrate, în engleză și portugheză, cu capturi de ecran reale.
- Fonturi și fișiere audio incluse în joc.
- Notele de licență ale componentelor terțe și un changelog.
Stiva este TypeScript, Three.js r184, Vite și WebGL2. Fișierele includ HTML, CSS, JavaScript, TypeScript și JSON. Interfața vine în 14 limbi: engleza, portugheza, spaniola, franceza, germana, italiana, olandeza, poloneza, turca, rusa, indoneziana, japoneza, coreeana și chineza simplificată. Manualele sunt doar în engleză și portugheză.
Conținutul din jurul meciurilor face și el parte din pachet: un Sunset Circuit (circuitul Sunset) de nouă meciuri în trei etape, trei locuri (grădina Sunset, grădina Sakura și cafeneaua de la mare) dimineața, după-amiaza, noaptea sau ploaia, și un atelier (Workshop) unde monedele din victorii cumpără culori de rachetă, cauciucuri, forme, mânere, lemne, bandă de margine, autocolante și stiluri pentru minge și masă.
Unde se află lucrurile în cod
Manualul leagă fiecare parte a jocului de un fișier. Aceasta este lista pe care să o ții deschisă când lucrezi:
- Campaign.ts: cele nouă meciuri ale campaniei și obiectivele lor de stele.
- Places.ts: cum arată fiecare loc.
- physics.ts: fizica mingii și a rachetei.
- match.ts: regulile de scor și de meci.
- i18n.ts: textul interfeței în engleză și portugheză; celelalte limbi sunt în dosarul locales.
- styles.css: stilul meniurilor și al ecranelor.
Fiecare meci al campaniei are până la trei stele: câștigă, lovește trei colțuri și joacă un schimb de zece lovituri. Asta face 27 de stele, iar terminarea fiecărui loc aduce un premiu din atelier. Pentru că condițiile stelelor stau într-un singur fișier de campanie, poți face campania mai ușoară sau mai grea fără să cauți prin cod.
Ce să schimbi primul într-un șablon de ping-pong
Îți sugerăm această ordine, de la risc mic la risc mare.
- Textul interfeței și numele jocului, în i18n.ts și în dosarul locales.
- Culorile și ecranele, în styles.css.
- Stilurile din atelier pentru rachete, mingi și mese, ca echipamentul să poarte brandul tău.
- Vizualul locurilor, în Places.ts.
- Meciurile campaniei și obiectivele de stele, în Campaign.ts.
- Fizica și scorul, în physics.ts și match.ts, doar dacă ai nevoie de altă senzație.
Manualul adaugă trei reguli care merită urmate. Păstrează stabile ID-urile de deblocare, ID-urile elementelor și cheile de salvare, altfel jucătorii pierd ce au câștigat. Fă o copie de rezervă înainte să începi. Schimbă câte o funcție o dată, ca să știi ce editare a produs ce efect.
Marca albă este permisă: numele și logo-ul tău, sau ale clientului tău, pot înlocui pe ale noastre.
Recompilare, găzduire și integrare
Ca să joci, nu trebuie compilat nimic. Încarcă conținutul dosarului game/ pe orice gazdă HTTP(S) care servește fișiere statice, păstrează căile relative și deschide adresa. Nu este nevoie de PHP, bază de date sau cont.
Ca să modifici sursa, ai nevoie de Node.js (se recomandă 24 LTS) și de npm. Editezi TypeScript-ul, recompilezi cu Vite și înlocuiești dosarul game/ găzduit cu rezultatul nou.
Browserul are nevoie de JavaScript, module ES și WebGL2. Comenzile tactile și cele cu mouse sunt suportate, iar comenzile se adaptează la dimensiunea ecranului. Performanța depinde de browser și de dispozitiv, deci testează pe telefoanele pe care le folosesc jucătorii tăi.
- Încarcă game/ într-un dosar de test de pe gazda ta.
- Joacă un meci pe browserul de desktop și unul pe telefon.
- Fă modificările de text și de stil în source/ și recompilează.
- Înlocuiește tot dosarul de test, apoi joacă din nou.
- Mută-l la adresa finală.
Ce nu include această ediție
Această ediție se joacă împotriva CPU-ului: campania, meciul liber și antrenamentul. Multiplayer online, camere online, clasamente online și conturi în cloud nu fac parte din pachet, iar nu există mod pentru doi jucători. Nu există SDK-uri de publicitate sau conturi, iar aplicațiile native și găzduirea nu sunt incluse.
Progresul rămâne în browserul jucătorului: stelele din campanie, rezultatele, statisticile, replay-urile și obiectele din atelier. Nu se folosește niciun server sau cont, deci nu există nimic de întreținut după lansare.
Dacă ai nevoie de un mod online, de un SDK de portal, de o versiune pentru magazinele de aplicații sau de instalare pe serverul tău, acesta este un serviciu separat, cotat pe proiect.
Cere o ofertă pentru lucrări personalizate
Licență, suport și preț, într-un singur paragraf
O singură achiziție oferă o licență perpetuă, neexclusivă, pentru un produs final, al tău sau al unui client, pe care jucătorii îl pot folosi gratuit sau cu monetizare prin publicitate. Poți modifica codul, grafica și audio din acel produs, dar nu poți revinde sau distribui separat șablonul, codul sursă sau activele lui. Suportul durează 6 luni, sau 12 cu extensia de la finalizarea comenzii, și acoperă instalarea și utilizarea fișierelor, precum și remedierea defectelor reproductibile; personalizarea, găzduirea și integrarea SDK-ului sau a portalului se cotează separat. Prețul de listă este de 39 USD; până pe 30 noiembrie 2026 o promoție Black Friday scade cu 15% fiecare șablon, deci Sunset Rally costă 33,15 USD, iar din 1 decembrie prețurile revin la listă.
Întrebări frecvente
Trebuie să compilez ceva ca să folosesc acest joc de ping-pong?
Nu. Dosarul game/ este deja compilat. Încarci conținutul lui pe o gazdă web statică și deschizi adresa. Node.js și npm sunt necesare doar dacă schimbi TypeScript-ul și recompilezi.
Există un mod pentru doi jucători sau online?
Nu. Această ediție se joacă împotriva CPU-ului, în campanie, în meciuri libere și în antrenament.
Pot schimba campania și obiectivele de stele?
Da. Meciurile și condițiile stelelor sunt în Campaign.ts. Recompilezi după aceea cu Node.js.
Pot schimba felul în care se comportă mingea?
Da. Fizica este în physics.ts, iar regulile de scor în match.ts. Schimbă câte un lucru o dată și testează împotriva fiecărui adversar.
Funcționează pe telefoane?
Da, cu comenzi tactile care se adaptează la ecran. WebGL2 este necesar, iar performanța depinde de dispozitiv, deci testează pe telefoanele pe care le vizezi.
Unde se salvează progresul?
În browserul jucătorului. Nu se folosește niciun server sau cont.
Alte șabloane sportive de comparat
Dacă construiești un colț sportiv pentru un site, alte două șabloane se potrivesc bine lângă Sunset Rally. Velvet Pool este un joc de biliard 8-ball cu adversar CPU și mod local pentru doi jucători, scris în JavaScript simplu cu WebGL2, la prețul de listă de 39 USD. Puttide este un joc 3D de mini golf cu 30 de găuri, construit pe Three.js și Rapier, la prețul de listă de 39 USD. Amândouă au 14 limbi de interfață.
Sunset Rally se potrivește portalurilor și site-urilor care vor un joc sportiv cu meciuri scurte, studiourilor care livrează un joc cu brand unui singur client și dezvoltatorilor care vor un proiect TypeScript și Three.js lizibil din care să învețe sau pe care să-l extindă. Dacă ai nevoie de doi jucători pe același dispozitiv, Velvet Pool are acest mod, iar Sunset Rally nu.
Vezi Velvet Pool, jocul 8-ball
Vezi Puttide, jocul 3D de mini golf
Cumpărarea a două sau mai multor șabloane în aceeași comandă reduce fiecare licență: 5% pentru două, 10% pentru trei, 15% pentru patru și 20% pentru cinci sau mai multe.
