சொந்தத் தயாரிப்பு · Carrom

உண்மையான கேரம், நாங்களே எழுதிய இயற்பியலுடன்.

Carrom என்பது மரப் பலகையில், துல்லியமான வட்டு இயற்பியலுடன், தொலைபேசிக்கு முன்னுரிமை தரும் பலகை விளையாட்டு. இதில் ஐந்து ஆட்ட வகைகள் உள்ளன; வங்கதேசம், இந்தியா, பாகிஸ்தான் முழுவதும் ஆடப்படும் 29 Game, Tal Gach உட்பட. ஆன்லைன் 1 v 1, 2 v 2, bot-கள், pass-and-play ஆகியவையும் உண்டு. ஒரே TypeScript குறியீடு வலை, Android, iOS-இல் இயங்குகிறது; ஆன்லைன் ஆட்டம் எங்கள் சொந்த நிகழ்நேரச் சேவையகத்தில் இயங்குகிறது.

இணையத்திலும் App Store-இலும் (iPhone, iPad) Google Play-யிலும் (Android) இயங்குகிறது.

  • Web (PWA)
  • Android
  • iOS
  • iPadOS
ஆட்ட வகைகள்; ஒவ்வொன்றுக்கும் தனி விதி என்ஜின்
5
அடிகள்; உலாவி என்ஜின்கள் அனைத்திலும் bit-க்கு bit ஒன்றே
4,320
தானியங்கிச் சோதனைகள்: 396 unit, 150 உலாவிச் சோதனைகள்; ஒவ்வொரு உலாவிச் சோதனையும் மூன்று திரை அளவுகளில்
540+
வேகம் குறைக்கப்பட்ட Fast 3G-யில் முதல் ஏற்றம்
≤ 3 s

ஆப்புக்குள்

கடைப் பட்டியல்களில் தோன்றுவது போல், வெளியான ஆப்பின் உண்மைத் திரைகள்.

வீரர்கள் பெறுவது

  • ஐந்து ஆட்ட வகைகள்

    Classic, 29 Game (முதலில் 29), Tal Gach (19 காய்க் கோபுரத்தை உடை, முதலில் 170), Disc Pool, Freestyle; கூடவே தினசரிச் சவாலும் பயிற்சியும்.

  • ஆன்லைன் 1 v 1, 2 v 2

    ரேட்டிங் அடிப்படையிலான Quick Match; காலி இடங்களை நிரப்பும் bot-கள்; தனி அறைகள்; ஆப்பைத் திறக்கும் சவால் இணைப்புகள்; திறந்த அறைகளுக்கான லாபி; மறுபோட்டி; emote-கள்; 20 விநாடி முறைக் கடிகாரம்; ஒவ்வொரு ஆட்ட வகைக்கும் Elo ரேட்டிங்.

  • Bot-கள், pass-and-play

    4 நிலைகளில் (Easy முதல் Expert வரை) bot-கள், 4 குணநலன்கள் (சமநிலை, தாக்குதல், தற்காப்பு, தந்திர அடி); ஒவ்வொன்றுக்கும் தனிப் பெயரும் கொடியும். ஒரே சாதனத்தில் 2 அல்லது 4 பேருக்கு pass-and-play.

  • உங்களுடன் வரும் முன்னேற்றம்

    நாணயங்கள், அசையும் பலகைகள், ஸ்ட்ரைக்கர்கள், காய்த் தொகுப்புகள் கொண்ட கடை, சாதனைகள், புள்ளிவிவரங்கள், தினசரித் தொடர்கள். Google அல்லது Apple மூலம் உள்நுழைந்தால் எல்லாச் சாதனங்களிலும் இருக்கும்.

  • இயக்குநர் கருவிகள்

    எங்கள் நிர்வாகப் பலகை நேரடி ஆட்டங்களையும் வீரர்களையும் காட்டுகிறது, மிதமாக்கலைக் கையாள்கிறது, எந்த வீரரின் நாணயங்களையும் அவருக்குச் செய்தியுடன் சரிசெய்கிறது; ஆப் வெளியீடு இல்லாமலேயே விளம்பரங்கள், கட்டாயப் புதுப்பிப்புகள், மதிப்பீட்டு வேண்டுகோள்கள், ஜோடி சேர்க்கும் சுவிட்சுகள், பாணியையும் கூட மாற்றுகிறது.

  • ஒரே குறியீடு, எங்கும்

    ஒரே குறியீட்டிலிருந்து வலை, Android, iPhone, iPad; வலை ஆப்பாகவும் நிறுவலாம். அறை இணைப்புகள் ஆப் நிறுவியிருந்தால் ஆப்பையும், இல்லையென்றால் இணைய விளையாட்டையும் திறக்கும்.

அடிப்படையிலிருந்து உருவாக்கியது

ஆட்டத்தின் விதிகள் முதல் அது இயங்கும் சேவையகம் வரை ஒவ்வோர் அடுக்கும் எங்களுடையது.

  1. ஆட்ட கிளையன்ட்

    கடுமையான TypeScript, Vite, Canvas 2D; ஆட்ட என்ஜினோ UI framework-ஓ இல்லை. சுழலும் பலகைகளும் Tal Gach கோபுர முன்னோட்டங்களும் முழுக்க CSS 3D.

    • TypeScript
    • Vite
    • Canvas 2D
    • CSS 3D
  2. எங்கள் சொந்த இயற்பியல்

    ஃப்ரேம் வீதத்தைச் சாராத, நிலையான 1/120 விநாடிப் படியில் நிகழ்வு-சார்ந்த வட்டு இயற்பியல்: குழி விளிம்புகள், காய் போதுமான அளவு குழிக்கு மேல் இருக்கும்போது மட்டுமே விழுதல், குலுங்கி வெளியே வருதல், உடையும் கோபுரம். இது பொதுப் பயன்பாட்டு இயற்பியல் நூலகத்தை மாற்றியது.

    • Deterministic
    • Seeded randomness
    • Headless tests
  3. நிகழ்நேரப் பேக்எண்ட்

    MongoDB மீது எங்கள் சொந்த Node சேவையகம்; சிறிய JSON-over-WebSocket நெறிமுறையில் பேசுகிறது: get, set, compare-and-set, watch, presence. Firebase Realtime Database மதிப்பிடும் அதே பாதுகாப்பு-விதிகள் கோப்பை இது மதிப்பிடுகிறது.

    • Node.js
    • MongoDB
    • WebSocket
    • esbuild
  4. ஆப்கள், உள்நுழைவு

    Android, iOS-க்கு Capacitor ஆப்கள். Google, Apple உள்நுழைவு Firebase Auth வழியாக நடக்கிறது; ஒவ்வொரு token-ஐயும் எங்கள் சேவையகம் தானே சரிபார்க்கிறது. விளம்பரங்கள் AdMob-இலிருந்து; உண்மைப் பணத்தில் வாங்கல்கள் இல்லை.

    • Capacitor
    • Firebase Auth
    • AdMob
    • App Links

செயல்பாடுகள்

சேவையகங்களை நாங்களே நடத்துகிறோம்

இடையில் எந்த ஆட்டப் பேக்எண்ட் சேவையும் இல்லை: எங்கள் சொந்தச் சேவையகம், சொந்த வெளியீடுகள், சொந்தக் கண்காணிப்பு.

  • எங்கள் சொந்த Linux சேவையகம்: Cloudflare பின்னால் Let’s Encrypt TLS உடன் nginx ஆட்டத்தை வழங்குகிறது
  • WebSocket, ஆப் உள்ளமைவு, நலச் சோதனைகள் systemd கீழுள்ள Node சேவைக்கு proxy செய்யப்படுகின்றன
  • நிர்வாகப் பலகை தனிச் சேவையாக இயங்கி, இயந்திரத்துக்குள் மட்டுமே பதிலளிக்கும் இயக்குநர் API-யை அழைக்கிறது
  • ஒற்றைக் கட்டளை வெளியீடுகள்: கட்டமைத்தல், நேர முத்திரையிட்ட வெளியீட்டைப் பதிவேற்றுதல், மாற்றுதல், மறுதொடக்கம், நலச் சோதனை; உடனடி மீளமைப்புக்கு கடைசி 5 வெளியீடுகள் வைக்கப்படும்
  • Cloudflare வழியாக வங்கதேசத்திலிருந்து சுமார் 210 ms இடைநிலைச் சுற்றுப் பயணம் (வெளியீட்டின்போது அளவிடப்பட்டது)
  • Google Play, App Store Connect-க்கான ஸ்கிரிப்ட் செய்த ஆப் கட்டமைப்புகள்
  • அறை அழைப்புகளுக்கு Android App Links, iOS universal links

தீர்த்த கடினமான சிக்கல்கள்

வீரர்கள் ஒருபோதும் காணாத பகுதிகள், நாங்கள் அளந்த எண்களுடன்.

  1. ஒவ்வொரு தொலைபேசியிலும் ஒரே இயற்பியல்

    சிக்கல்
    ஆன்லைன் ஆட்டத்தில் ஒவ்வொரு தொலைபேசியும் எதிராளியின் அடியைத் தானே உருவகப்படுத்துகிறது. இரு சாதனங்கள் ஒரு எண்ணை வேறுபட்டுக் கணக்கிட்டாலும் பலகைகள் விலகிவிடும்; எனவே இயற்பியல் எங்கும் துல்லியமாக இருக்க வேண்டும்.
    நாங்கள் செய்தது
    உருவகப்படுத்தல், எல்லா JavaScript என்ஜின்களிலும் துல்லியமாக இருக்கும் செயல்பாடுகளை மட்டுமே பயன்படுத்துகிறது; வர்க்கமூலம் சார்ந்த எங்கள் சொந்த hypot, log, acos, sin, cos ஆகியவற்றுடன். எல்லா சீரற்ற தன்மையும் விதை கொண்டது; மையக் குறியீடு கடிகாரத்தை ஒருபோதும் படிப்பதில்லை.

    முடிவு Chromium, WebKit என்ஜின்களில் 4,320 அடிகள் சரிபார்க்கப்பட்டன: ஒவ்வொரு பலகையும் bit-க்கு bit ஒன்றே.

  2. ஒரு ஒத்திசைவின்மை, கண்டறிந்து தடுக்கப்பட்டது

    சிக்கல்
    சற்று வேறுபட்ட இயற்பியல் கொண்ட வெவ்வேறு ஆப் பதிப்புகளில் உள்ள வீரர்கள் ஒன்றாக ஜோடி சேர்க்கப்பட்டனர்; அவர்களின் பலகைகள் முரண்பட்டன.
    நாங்கள் செய்தது
    இப்போது நெறிமுறைப் பதிப்பு ஜோடி சேர்த்தலையும் அறைகளையும் கட்டுப்படுத்துகிறது; பதிப்பு உயராமல் இயற்பியல் மாறினால், இயற்பியல் கைரேகைச் சோதனை கட்டமைப்பைத் தோல்வியடையச் செய்கிறது.

    முடிவு ஒரே இயற்பியல் கொண்ட வீரர்கள் மட்டுமே ஒரு பலகையைப் பகிர்கிறார்கள்.

  3. நியாயமாக உடையும் கோபுரம்

    சிக்கல்
    Tal Gach-இல் தொடக்க அடி 19 காய்கள் அடுக்கிய கோபுரத்தைத் தாக்குகிறது. அது உண்மையைப் போல் உணரப்பட வேண்டும்; இரு வீரர்களுக்கும் நியாயமாகவும் இருக்க வேண்டும்.
    நாங்கள் செய்தது
    70% வேகம் அல்லது அதற்கு மேற்பட்ட அடி, கீழே உள்ள ஒன்று அல்லது இரண்டு காய்களை வெளியே தள்ளி, கோபுரத்தை நிற்கச் செய்யும்; மென்மையான அடிகள் அதைச் சாய்க்கும். சீரற்ற தன்மை விதை கொண்டது, எனவே ஒவ்வொரு சாதனமும் ஒரே உடைவைக் காண்கிறது.

    முடிவு வலுவான அடிகள் 90% நேரம் அடிக் காய்களை அகற்றுகின்றன; ஒவ்வொரு திரையிலும் அதேபோல்.

  4. Mac-களில் ஒலி

    சிக்கல்
    Apple silicon Mac-களில் இயங்கும் iPad ஆப்பால் AAC, Opus ஒலிகளை டிகோட் செய்ய முடியவில்லை.
    நாங்கள் செய்தது
    ஆப் ஒலிகளின், இசையின் 16-bit WAV நகல்களை உடன் அனுப்புகிறது; ஆட்டமே அவற்றை டிகோட் செய்கிறது.

    முடிவு Mac-கள் உட்பட ஒவ்வொரு சாதனத்திலும் ஒரே ஒலி.

  5. ஆட்டத்தைத் தொடாமல் ஒரு விற்பனையாளரிடமிருந்து விலகுதல்

    சிக்கல்
    ஆன்லைன் ஆட்டம் Firebase Realtime Database-இல் தொடங்கியது; ஆட்டத்தை மீண்டும் எழுதாமல் ஆட்டத் தரவை எங்கள் சொந்தச் சேவையகத்தில் வைக்க விரும்பினோம்.
    நாங்கள் செய்தது
    ஒவ்வொரு ஆன்லைன் வசதியும் ஒரே தரவுத்தள இடைமுகத்துடன் பேசுகிறது. எங்கள் சேவையகம் அதே விதிகள் கோப்பை அதே பொருளுடன் செயல்படுத்துகிறது; முழுப் போட்டிகளும் 180-க்கும் மேற்பட்ட அனுமதிக்கப்பட்ட அல்லது மறுக்கப்பட்ட எழுதுதல்களும் கொண்ட ஒரு சரிபார்ப்புத் தொகுப்பு இரு பேக்எண்ட்களிலும் இயங்குகிறது.

    முடிவு ஆட்டத் தரவு இப்போது எங்கள் சொந்தச் சேவையகத்தில் உள்ளது; பேக்எண்ட்களை மாற்றுவது இரண்டு அமைப்புகள் கொண்ட கட்டமைப்பு சுவிட்ச்.

  6. முதல் அடிக்கு வேகம்

    சிக்கல்
    சாதாரண ஆட்டம் ஒரு வீரரை ஈர்க்க சில விநாடிகளே உள்ளன; பெரும்பாலும் மெதுவான மொபைல் இணைப்பில்.
    நாங்கள் செய்தது
    பதிவிறக்க என்ஜினோ framework-ஓ இல்லை; முதல் தொடுதலுக்கு முன் ஒலி இல்லை; வேகம் குறைக்கப்பட்ட இணைப்பில் உற்பத்தி கட்டமைப்பை இயக்கும் செயல்திறன் சோதனை.

    முடிவு வேகம் குறைக்கப்பட்ட Fast 3G-யில் 3 விநாடிகளுக்குள் முதல் ஏற்றம்.

செயல்விளக்கமாக அல்ல, தயாரிப்பாகச் சோதிக்கப்பட்டது

  • 396 unit சோதனைகள், 150 உலாவிச் சோதனைகள்; ஒவ்வொன்றும் தொலைபேசி, டேப்லெட், டெஸ்க்டாப் அளவுகளில் திரைப்பட அடிப்படைகளுடன் இயங்கும் (400-க்கும் மேற்பட்ட ஓட்டங்கள்)
  • Bot-க்கு எதிராக bot சமநிலை ஓட்டங்களும் monkey சோதனையும்
  • தரவுத்தள விதிகளுக்கு எதிராக முழு ஆன்லைன் போட்டிகளை ஆடும் emulator தொகுப்பு
  • தீர்மானிக்கக்கூடிய இயற்பியலால், unit சோதனைகளில் headless முறையில் உருவகப்படுத்தப்படும் அடிகள்

தொழில்நுட்பம்

  • TypeScript
  • Vite
  • Canvas 2D
  • Node.js
  • MongoDB
  • WebSocket
  • Capacitor
  • Firebase Auth
  • AdMob
  • Vitest
  • Playwright
  • nginx
  • Cloudflare
  • systemd

GPScom: gpscom.gr-இன் முழுமையான மறுவடிவமைப்பு

எங்கள் பணிகள் அனைத்தும்

இப்படி உருவாக்கிய ஆட்டமோ நிகழ்நேர ஆப்போ வேண்டுமா?

ஆட்டங்களையும் நிகழ்நேரத் தளங்களையும் முதல் முதல் இறுதி வரை வடிவமைத்து, உருவாக்கி, இயக்குகிறோம்: ஆப்கள், சேவையகங்கள், கடைகள், செயல்பாடுகள்.