నా పరిపూర్ణ టెట్రిస్

ప్రాజెక్ట్ యొక్క GitHub రిపాజిటరీ



ఇది ఏమిటి

Tetris ఒక పురాణాత్మకమైన గేమ్, నేను ఎంతో ఇష్టపడే గేమ్ కూడా. నాకు ఈ గేమ్ అంటే నిజంగా చాలా ఇష్టం, దాన్ని ఆడటం ఆనందంగా ఉంటుంది. ఇది ఒత్తిడిని తగ్గించడానికి గొప్ప మార్గం. సరదా వారాంతపు ప్రాజెక్ట్‌గా, వైబ్ కోడింగ్ సూత్రాలను ఉపయోగించి, డెస్క్‌టాప్ మరియు మొబైల్ రెండింటి కోసం రూపొందించిన బ్రౌజర్ గేమ్/యాప్‌గా ఈ గేమ్‌ను నిర్మించాలని నిర్ణయించుకున్నాను. ఈ సంస్కరణలోని మొబైల్ భాగానికి Play-Tetris స్ఫూర్తినిచ్చింది. ఇందులో స్వైప్ ఆధారిత నియంత్రణలతో చాలా చక్కని మొబైల్ ఏర్పాటుంది. నా టెట్రిస్ అమలును ఇక్కడ చూడండి మరియు ఆడండి; ఇది టెట్రిస్ యొక్క నాకు అనిపించిన అత్యంత “పరిపూర్ణమైన” సంస్కరణ.



నా టెట్రిస్ సంస్కరణ గేమ్‌ప్లే, మీరే ఆడటానికి ఇక్కడ చూడండి

కోడ్‌కు ఆవల

పోర్ట్‌ఫోలియో ప్రాజెక్ట్‌గా లేదా కొత్తది నేర్చుకోవడానికి టెట్రిస్ క్లోన్‌ను నిర్మించాలని నేను మొదట అనుకోలేదు. నాకు నిజంగా అది అవసరమైంది కాబట్టి నిర్మించాను. నేను ఒత్తిడిలో ఉన్నప్పుడు, అది పనిలో కష్టమైన వారం అయినా లేదా జీవితం ఒకేసారి పేరుకుపోయిన సమస్యలైనా, నన్ను మళ్లీ సాధారణ స్థితికి తీసుకురావడంలో నిజంగా సహాయపడే ఆరోగ్యకరమైన విషయాల్లో టెట్రిస్ ఒకటి. నేను ఒత్తిడిలో ఉన్నప్పుడు చాలా తినే అలవాటు ఉంది, అది కాలక్రమేణా పెరుగుతుంది. కాబట్టి ఎలాంటి ప్రతికూలతలు లేకుండా పనిచేసే ఏదైనా ఉండటం నాకు చాలా ముఖ్యమైన విషయం. కేవలం 10 నుండి 30 నిమిషాలు బ్లాక్‌లను కిందికి దింపితే నా మెదడు కొంచెం శుభ్రం చేసినట్టుగా అనిపిస్తుంది. నాకు ఇది కేవలం సాధారణ విశ్రాంతి కాదు; ఆ ఒత్తిడిని పోయడానికి సులభమైన, ఏకాగ్రతతో కూడిన ఏదో ఒకటి ఉండే మార్గం. టెట్రిస్ మెదడు చొరబడే జ్ఞాపకాలను మరియు ఒత్తిడిని నిర్వహించే విధానాన్ని ప్రభావితం చేయగలదని చూపించే ఆసక్తికరమైన పరిశోధన కూడా ఉంది. ఉదాహరణకు, గాయం కలిగించే చిత్రాల ప్రయోగాల్లో, నిజమైన ప్రమాదాల తర్వాత చికిత్స పొందిన వ్యక్తుల్లో, మరియు కొలిచగల మెదడు మార్పులతో చికిత్సకు అనుబంధంగా ఇది కనిపించింది. నేను ఈ గేమ్‌ను వైద్య చికిత్సగా మార్చాలని ప్రయత్నించడం లేదు. కానీ నేను ఇప్పటికే అనుభవిస్తున్న విషయానికి, అంటే టెట్రిస్ ప్రజలకు ఒత్తిడిని ఎదుర్కోవడంలో నిజంగా సహాయపడగలదనే విషయానికి, నిజమైన శాస్త్రం మద్దతు ఇస్తుండవచ్చని చూడటం ఆనందంగా ఉంది.

అందుకే ఆడటానికి టెట్రిస్ యొక్క మంచి సంస్కరణ కోసం వెతకడం ప్రారంభించాను. కానీ సమస్య ఏమిటంటే, నేను ఆడాలనుకున్న విధానానికి అక్కడ ఉన్న ఏదీ సరిపోలలేదు. iOS యాప్ స్టోర్‌లోని మొబైల్ యాప్‌లు ప్రకటనలు మరియు సూక్ష్మ లావాదేవీలతో నిండి ఉన్నాయి. వెబ్ సంస్కరణలు నెమ్మదిగా ఉండేవి లేదా ఫోన్‌లో చాలా చెత్తగా అనిపించేవి. క్లాసిక్ NES సంస్కరణ గొప్పదే, కానీ దానికి ఎమ్యులేటర్ మరియు అదనపు హార్డ్‌వేర్ అవసరం. సమస్యను పరిష్కరిస్తుందని అనుకుని నేను Miyoo Mini కూడా కొన్నాను. చివరికి టెట్రిస్ ఆడటానికి రెండవ పరికరాన్ని వెంట తీసుకెళ్లడం మాత్రమే మిగిలింది. సరైన సంస్కరణ కోసం వెతకడానికి పట్టే సమయం కంటే, ఒకదాన్ని స్వయంగా నిర్మించడానికి తక్కువ సమయం పడుతుందని ఒక దశలో నాకు అర్థమైంది.

ఆధునిక బ్రౌజర్లు, Claude Code వంటి LLM సాధనాలు, వైబ్ కోడింగ్ వంటి వర్క్‌ఫ్లోలతో, నేను కోరుకున్న టెట్రిస్‌ను నేనే నిర్మించడానికి ఇదే సరైన సమయం అనిపించింది. వేగంగా, సరళంగా, ప్రకటనలు లేకుండా, ఖాతాలు లేకుండా, యాప్ స్టోర్ లేకుండా. నా ఫోన్‌లోను ల్యాప్‌టాప్‌లోను పనిచేసే, పూర్తిగా నా నియంత్రణలో ఉండే ఒక బ్రౌజర్ గేమ్ మాత్రమే. సుమారు ఒక రోజులో పనిచేసే సంస్కరణను తయారు చేశాను. డెస్క్‌టాప్ మరియు మొబైల్ రెండింటిలోనూ దాన్ని పటిష్ఠంగా చేసి, అనుభూతి సరిగ్గా ఉండేలా చేయడానికి సుమారు వారం రోజుల పాటు అప్పుడప్పుడు పని చేసిన తర్వాత, దానితో నేను సంతృప్తి చెందాను.

ఇది నాకు ఒత్తిడి తగ్గించడంలో సహాయపడినట్టే కనీసం ఇంకొక వ్యక్తికైనా సహాయపడితే, అది నాకు నిజంగా సంతోషాన్నిస్తుంది. ఇది చిన్న విషయం, కానీ కొన్నిసార్లు మీకు అవసరమైనది ఖచ్చితంగా ఒక చిన్న విషయమే.

ఫీచర్లు

  • క్లాసిక్ 10x20 టెట్రిస్ బోర్డు
  • డెస్క్‌టాప్‌లో పూర్తి కీబోర్డ్ నియంత్రణలు మరియు మొబైల్‌లో టచ్ సంజ్ఞ నియంత్రణలు
  • ప్రామాణిక ఏడు-బ్యాగ్ పీస్ రాండమైజర్
  • హోల్డ్ పీస్ మరియు తదుపరి పీస్ ప్రివ్యూలు
  • పీస్‌లు ఎక్కడ దిగుతాయో చూపించే ఘోస్ట్ పీస్ ప్రొజెక్షన్
  • డైనమిక్ లాక్ ఆలస్యంతో స్థాయి ఆధారిత వేగ వక్రరేఖ
  • స్కోర్, లైన్లు, స్థాయి మరియు అత్యధిక స్కోర్ ట్రాకింగ్, లోకల్ స్టోరేజ్‌లో భద్రపరచబడుతుంది
  • సాఫ్ట్ డ్రాప్ మరియు హార్డ్ డ్రాప్ స్కోరింగ్
  • కొనసాగించడం, పునఃప్రారంభించడం, నిష్క్రమించడం, సంగీతం/SFX మ్యూట్ చేయడం మరియు సోర్స్ కోడ్ లింక్‌తో కూడిన గేమ్‌లోని మెనూ
  • సౌండ్ ఎఫెక్ట్‌తో లైన్ క్లియర్ ఫ్లాష్ యానిమేషన్
  • iOS సేఫ్ ఏరియా మద్దతు (డైనమిక్ ఐలాండ్, నాచ్, హోమ్ ఇండికేటర్)
  • సర్వీస్ వర్కర్ ద్వారా ఆఫ్‌లైన్ మద్దతు (మొదటి సందర్శన తర్వాత ఇంటర్నెట్ లేకుండానే పనిచేస్తుంది)
  • PWAగా ఇన్‌స్టాల్ చేసుకోవచ్చు (యాప్‌లాంటి అనుభవం కోసం iOS/Androidలో హోమ్ స్క్రీన్‌కు జోడించండి)

నియంత్రణలు

డెస్క్‌టాప్ (కీబోర్డ్)

చర్య కీలు
కదలిక ← → లేదా A D
సాఫ్ట్ డ్రాప్ ↓ లేదా S
హార్డ్ డ్రాప్ Space
సవ్యదిశలో తిప్పడం ↑ W X
అపసవ్యదిశలో తిప్పడం Z
హోల్డ్ C లేదా LShift
మెనూ Esc లేదా M
సోర్స్ కోడ్ G (టైటిల్ స్క్రీన్‌లో)

మొబైల్ (టచ్)

చర్య సంజ్ఞ
కదలిక ఎడమకు / కుడికి స్వైప్ చేయండి
సాఫ్ట్ డ్రాప్ పట్టుకుని కిందికి లాగండి
హార్డ్ డ్రాప్ త్వరగా కిందికి ఫ్లిక్ చేయండి
సవ్యదిశలో తిప్పడం ట్యాప్ చేయండి
హోల్డ్ త్వరగా పైకి ఫ్లిక్ చేయండి

కఠినతా వక్రరేఖ

ఈ సంస్కరణలోని వేగ వక్రరేఖ మరియు లాక్ ఆలస్యం, క్లాసిక్ మరియు ఆధునిక టెట్రిస్ గేమ్‌లు కఠినతను ఎలా పెంచుతాయనే దానిపై చేసిన పరిశోధనను ఉపయోగించి సర్దుబాటు చేయబడ్డాయి. అసలు NES Tetrisలో, 29వ స్థాయిలో గురుత్వాకర్షణ ప్రతి ఫ్రేమ్‌కు ఒక వరుసకు చేరుకుంటుంది. ఇది ప్రసిద్ధ “కిల్ స్క్రీన్”గా మారింది, అక్కడ చాలా మంది మనుషులకు గేమ్ వాస్తవంగా ఆడలేనిదిగా మారుతుంది. అది నిజంగా రూపొందించిన ముగింపు కాదు; హార్డ్‌వేర్ ప్రభావం మరియు DAS (Delayed Auto Shift) పడే వేగాన్ని అందుకోలేనంత నెమ్మదిగా ఉండటం వల్ల ఏర్పడిన పర్యవసానం మాత్రమే. 2024లో విల్లిస్ గిబ్సన్ దీనిని నిరూపించాడు. అతను దాన్ని దాటి 157వ స్థాయిలో గేమ్‌ను క్రాష్ చేశాడు.



క్లాసిక్ 1989 NES టెట్రిస్ గేమ్‌ప్లే (అసలు మూలం)

TGM (Tetris: The Grand Master) వంటి ఆధునిక గేమ్‌లు దీనిని వేరే విధంగా పరిష్కరించాయి. గేమ్ విరిగిపోయే వరకు పీస్‌లు మరింత వేగంగా పడేలా చేయడం బదులుగా, TGM గురుత్వాకర్షణను 20Gకి (తక్షణ డ్రాప్) పరిమితం చేసి, ఆపై కఠినతను పెంచడానికి లాక్ ఆలస్యం మరియు DAS వంటి ఇతర సమయ పరిమితులను తగ్గిస్తుంది. Tetris Guideline ప్రమాణం 15 వరకు కదలిక రీసెట్‌లతో 500ms లాక్ ఆలస్యాన్ని ఉపయోగిస్తుంది, ఈ సంస్కరణ కూడా అదే విధానాన్ని అనుసరిస్తుంది. TGM2 Death mode మరియు TGM3 Shiraseపై చేసిన పరిశోధన ప్రకారం, వేగవంతమైన DASతో పోటీ ఆటకు ఆచరణాత్మక కనిష్ఠం సుమారు 250ms లాక్ ఆలస్యం. 133ms కంటే తక్కువ ఏదైనా నిపుణుల పరిధిలోకి వస్తుంది.

ఇవన్నింటి ఆధారంగా, ఇక్కడి వేగ వక్రరేఖ గురుత్వాకర్షణను తక్షణ డ్రాప్‌కు తీసుకెళ్లకుండా, ఒక్కో వరుసకు 33ms వద్ద పరిమితం చేస్తుంది (NES స్థాయిలు 19 నుండి 28 వంటిది). అలాగే, అధిక స్థాయిలలో DAS 170ms నుండి 100ms వరకు తగ్గుతుంది, తద్వారా లాక్ ఆలస్యం సమయంలో మీరు బోర్డును దాటగలుగుతారు. అధిక స్థాయిలు భయంకరంగా వేగంగా ఉన్నప్పటికీ న్యాయంగా అనిపించాలనేదే లక్ష్యం. ముడి వేగం మీ ఇన్‌పుట్‌లను మించిపోయేలా చేసే అసలు NES విధానానికి బదులుగా, Tetris 99 మరియు TGM ఎండ్‌గేమ్ కఠినతను నిర్వహించే విధానానికి ఇది దగ్గరగా ఉంటుంది.

అంతర్గత నిర్మాణం

  • డెస్క్‌టాప్ మరియు మొబైల్ (పోర్ట్రెయిట్) రెండింటి కోసం మెరుగుపరచబడిన ప్రతిస్పందించే డిజైన్
  • పనితీరు కోసం ముందే రెండర్ చేసిన బ్లాక్ స్ప్రైట్‌లు మరియు గ్రిడ్ నేపథ్యం
  • పీస్ తిప్పడానికి సూపర్ రొటేషన్ సిస్టమ్ (SRS) శైలి వాల్ కిక్‌లను ఉపయోగిస్తుంది
  • విశ్వసనీయమైన ఫ్లిక్ మరియు డ్రాగ్ భేదం కోసం వేగం ఆధారిత టచ్ సంజ్ఞ గుర్తింపు
  • గురుత్వాకర్షణ వేగం మరియు లాక్ ఆలస్యం కోసం స్థాయి ఆధారిత టైమింగ్ సిస్టమ్
  • అత్యధిక స్కోర్లు మరియు ఆడియో సెట్టింగ్‌లు localStorageలో భద్రపరచబడతాయి
  • నేపథ్య సంగీత మూలం NmCCQxVBfyM
  • లైన్ క్లియర్ సౌండ్ ఎఫెక్ట్ మూలం UMViM2tHrOk
  • ఈ ప్రాజెక్ట్ MIT License కింద పూర్తిగా ఓపెన్-సోర్స్
  • కింది AI సాధనాలతో నిర్మించబడింది:
    • Claude Code CLI - కోడింగ్/అభివృద్ధి
    • Gemini CLI - కోడింగ్/అభివృద్ధి
    • Cha CLI - కోడింగ్ మరియు రచన
    • xAI Grok - లోగోలు మరియు ఐకాన్‌లు
    • Perplexity - బగ్‌ల పరిశోధన
    • Google Search - SVGలు మరియు ఇతర ఆస్తులను కనుగొనడం
    • YouTube + yt-dlp - ఆడియో క్లిప్‌ల సేకరణ
    • FFmpeg - ఆడియో ఫైళ్ల ఎడిటింగ్

తుది ఆలోచనలు

ఇది ప్రేరణ సాంకేతికమైనది కాకుండా, వ్యక్తిగతమైన ప్రాజెక్టులలో ఒకటి. ప్రకటనలు లేకుండా, అదనపు హార్డ్‌వేర్ అవసరం లేకుండా, ఎప్పుడైనా అదృశ్యమైపోయే లేదా మారిపోగల మరొకరి యాప్‌పై ఆధారపడకుండా, నేను కోరుకున్న విధంగా పనిచేసే టెట్రిస్‌ యొక్క ఒక సంస్కరణ మాత్రమే నాకు కావాలనిపించింది. ఆధునిక ఏఐ సాధనాలు మరియు వైబ్ కోడింగ్‌ను ఉపయోగించి, మధ్యమధ్యలో చేసిన సుమారు వారం రోజుల పనిలో ఒక ఆలోచన నుంచి మెరుగుపరిచిన గేమ్‌ వరకు వెళ్లగలిగాననే విషయం, సాఫ్ట్‌వేర్ అభివృద్ధి విషయంలో మనం ప్రస్తుతం ఎక్కడ ఉన్నామో చాలా చెబుతుంది.

దీన్ని రూపొందించినప్పటి నుంచి నేను దాదాపు ప్రతిరోజూ ఈ సంస్కరణను ఉపయోగిస్తున్నాను, ఇప్పటికీ ఇది నాకు అవసరమైనదంతా సరిగ్గా చేస్తోంది. నన్ను ఒత్తిడికి గురిచేస్తున్న ఏదైనా విషయం నుంచి కొద్దిసేపు దూరంగా వెళ్లడానికి, కొన్ని నిమిషాల పాటు ఒక సరళమైన విషయంపై దృష్టి పెట్టడానికి, ఆ తర్వాత మరింత స్పష్టమైన మనసుతో తిరిగి రావడానికి ఇది నాకు సహాయపడుతుంది. మీరు దీన్ని ప్రయత్నించి, మీకూ అదే విధంగా ఉపయోగపడితే, నేను కోరగలిగిన అత్యుత్తమ ఫలితం అదే. మీరు దీన్ని ఫోర్క్‌ చేయాలనుకుంటే, వేగం పెరుగుదల విధానాన్ని మార్చాలనుకుంటే, నియంత్రణలను మార్చాలనుకుంటే లేదా దీని మీద నిర్మించాలనుకుంటే, తప్పకుండా చేయండి. మీకు ఏదైనా లోపం కనిపించినా లేదా సూచన ఉన్నా, గిట్‌హబ్ రిపాజిటరీలో ఒక ఇష్యూను తెరవడానికి సంకోచించకండి. దీన్ని ఓపెన్-సోర్స్‌గా రూపొందించడంలోని అసలు ఉద్దేశం అదే.