1 पॉइंट द्वारा GN⁺ 2024-05-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Static Chess एक static web chess प्रयोग है जो शतरंज की पूरी स्क्रीन सिर्फ HTML और CSS से बनाता है, और हर चाल को link click के ज़रिए चलता है
  • एक खिलाड़ी चाल चलने के बाद बना हुआ link दोस्त को भेजता है, फिर दूसरा खिलाड़ी वापस link भेजकर खेल को आगे बढ़ाता है
  • animation और smooth interaction को कम करके बनाए गए brutalist interface में फोकस शतरंज की बिसात और चाल चुनने पर रहता है
  • अभी इसकी functionality काफी सीमित है और कुछ हिस्से टूटे हुए हो सकते हैं, इसलिए असली खेल में अब भी सीमाएँ हैं
  • आगे चलकर real gameplay support, लंबे समय तक चलने वाले खेलों के लिए simple interface, और static AI प्रतिद्वंद्वी जैसी विस्तार संभावनाएँ खुली हैं

लिंक के ज़रिए आगे बढ़ने वाला स्टैटिक चेस

  • Static Chess एक chess website है जिसका लक्ष्य “plain, brutalist, no bloat chess” है
  • स्क्रीन HTML और CSS से ही बनी है, और शतरंज की चालें link click से चलती हैं
  • खेल links के आदान-प्रदान से आगे बढ़ता है
    • एक खिलाड़ी अपनी चाल चलने के बाद link दोस्त को भेजता है
    • दोस्त उस link पर चाल चलकर अगली बारी के लिए फिर link वापस भेजता है
  • animation या smooth interaction को जानबूझकर शामिल नहीं किया गया है
  • यह सवाल भी छोड़ा गया है कि अगर Google इस साइट को index करे, तो क्या वह शतरंज की हर संभव चाल की गणना करने लगेगा

मौजूदा सीमाएँ और विस्तार के आइडिया

  • functionality अभी सीमित है और कुछ हिस्से टूटे हो सकते हैं
  • bug मिले तो बताने का अनुरोध किया गया है
  • हर संभव tic-tac-toe game state वाली साइट पर हुई HN चर्चा से प्रेरणा मिली है
  • आगे इसे real gameplay support करने लायक बढ़ाने की योजना है
  • यह दोस्तों के साथ लंबे समय तक चलने वाले खेलों के लिए simple interface में विकसित हो सकता है
  • static AI के खिलाफ खेलने की सुविधा जोड़ना भी मज़ेदार हो सकता है
  • अगर कोई फीचर चाहिए, तो PR के ज़रिए बदलाव सुझाए जा सकते हैं

1 टिप्पणियां

 
GN⁺ 2024-05-14
Hacker News की राय
  • URL में FEN जोड़ दें तो Chess960 (Fischer Random Chess) या दूसरे “custom starting position” variants भी खेले जा सकते हैं। बस spaces को underscores से बदलना होगा
    उदाहरण: https://chess.maxmcd.com/bbnqrknr/pppppppp/8/8/8/8/PPPPPPPP/...

    • Chess960 में सामान्य chess से castling rules भी अलग होते हैं, लेकिन लगता नहीं कि साइट सिर्फ FEN देखकर समझ पाएगी कि उसे वही rules इस्तेमाल करने हैं
  • पहले paragraph में “pure, rugged, no-nonsense chess” वाली बात इस implementation की खूबी है या कमी, यह साफ नहीं है
    संभावनाएं explore करने के लिए इसे अनोखे तरीके से implement किया गया है—ऐसा प्रचार करना अलग बात है, और सही technology से बने software को bloat, हास्यास्पद animations, और play में बाधा डालने वाली smooth interactions कहना अलग बात है
    दूसरे paragraph में कहा गया है कि features सीमित हैं और यह टूट भी सकता है, इससे इस implementation की सीमाएं और दिखती हैं। हालांकि हो सकता है यह सब satire ही हो और मैं फंस गया हूं। फिर भी यह अच्छी तरह बनाया गया clever implementation है

    • लगता है यह humorous description होने की संभावना ज्यादा है, और किसी एक फायदे को बेतुकी हद तक खींचा गया है
      feature limitations शायद उन चीजों के अलावा दूसरी features की ओर इशारा करती हैं जिन्हें bloat कहा गया है
    • यह कुछ वैसा लगता है जैसे “क्योंकि मुझे लगा कि यह संभव है” इसलिए बनाया गया हो, और थोड़ा अजीब कुछ बनाने की वजह के तौर पर यह हमेशा ठीक लगता है
      stateless link भेजकर खेलने का idea मुझे काफी पसंद है, और animations व interactions की “सुंदरता” कम से कम मुझे तो net positive नहीं लगती
      “सही technology” इस बात पर बहुत निर्भर करती है कि आप कैसा user experience बनाना चाहते हैं। इस goal के लिए HTML और CSS सही technology थे, जैसे ज्यादा features वाली site के UX goals के लिए दूसरी technology bundle सही होगी
    • games में animations न चाहने का विचार काफी मजेदार है। या तो यह मजाक है, या फिर web पर JavaScript नहीं होना चाहिए वाली सोच में कोई बहुत गहरे उतर गया है
  • कड़ाई से कहें तो यह static site नहीं है, है ना? हर request पर backend dynamically render कर रहा है
    server पर कहीं 999999919291293923 pre-rendered pages पड़े हैं, ऐसा तो नहीं लगता

    • technically सभी legal chess positions cover करने के लिए करीब 4.8 * 10^44 pages चाहिए होंगे [1]
      ऊपर से यह ऐसी पूरी तरह illegal position भी ठीक से serve करता है: https://chess.maxmcd.com/rnbqkbnr/qqqqqqqq/8/8/8/8/QQQQQQQQ/...
      [1] https://github.com/tromp/ChessPositionRanking
    • static से मतलब शायद XmlHttpRequest न होना है
    • pre-rendered pages मौजूद तो हैं। बस वे application-specific compression method से compressed हैं
    • backend को render करने की भी खास जरूरत नहीं। pushState इस्तेमाल करने वाला single-page app हो तो सचमुच एक ही file हो सकती है
  • legal moves detect करना अच्छा है, लेकिन लगता है checkmate नहीं समझता?
    https://chess.maxmcd.com/r1b1kRnr/p1ppB2p/n2P2p1/8/7P/1p6/PP...
    इसे checkmate के तौर पर दिखाना नहीं चाहिए?

    • मोहरे अब move नहीं कर रहे, यह देखकर लगता है कि checkmate detect तो करता है, बस display ठीक से नहीं हो रहा
    • अगर checkmate page पर सच में ‘checkmate’ लिखा हो, तो Google bot पूरी site index करने के बाद checkmate खोज सकता है
      आदर्श रूप से हर page में उस state तक पहुंचने वाले सभी पिछले board states का summary string होना चाहिए। तब current board state और ‘checkmate white’ को साथ search करके किसी specific state से जीतने के सभी तरीके खोजे जा सकते हैं
      Google को ultimate chess oracle बनाने के लिए बस इतना बाकी रहेगा कि opponent को वही चाल चलने के लिए मना लिया जाए जो आपने खोजी है
    • en passant भी allow नहीं करता
  • मुझे लगा था यह chess का ऐसा variant होगा जिसमें कोई भी piece move नहीं कर सकता

    • मुझे भी यही लगा था। तब तक, इसी जैसा लेकिन और ज्यादा static game Go खेलकर देखा जा सकता है। search के लिए Chinese नाम Weiqi या Korean नाम Baduk बेहतर मिलते हैं
    • link click न करें तो सच में ऐसा ही होता है
  • शानदार काम है। इसे Cloudflare जैसे CDN के पीछे रखकर देखना अच्छा होगा कि cache hit rate कैसा आता है

    • Lichess opening explorer शायद cache hit rate कैसे evolve होगा, इसका काफी सटीक indicator होगा
      https://lichess.org/analysis#explorer
      यह Masters database से काफी अलग Lichess database के ज्यादा करीब होगा। उदाहरण के लिए Masters में e4 का जवाब c5 से देने का ratio 46% है, लेकिन Lichess में c5 सिर्फ 19% है
  • https://chess.maxmcd.com/rnbqk3/pppp2pB/2P1p3/1P1P2Bp/3n4/b2...
    बहुत शानदार, अंत तक जाकर checkmate भी बना लिया

    • अच्छा होता अगर URL board state के बजाय सिर्फ move chain रखता। तब move chain को URL में paste करते ही board state मिल सकता था
  • पहले मैंने भी static chess page बनाया था, और दोस्त के साथ खेलने के लिए WebRTC से P2P connection जोड़ा था

    • Try it
    • Fork it
    • कभी-कभी एक अजीब bug दिखता है, जिसमें game player की जगह अपने-आप move कर देता है। खासकर अगर एक side की queen कोई piece capture करे, और opponent की queen उस queen को capture कर सकती हो, तो लगता है game अपने-आप queen द्वारा queen capture करने वाली move चला देता है
    • sound effects वाकई अच्छे हैं। खासकर check की sound अच्छी है
  • pawn promotion queen पर fixed है। अच्छा होगा अगर दूसरे promotions भी support हों: https://www.chess.com/forum/view/game-showcase/checkmate-by-...

  • बहुत बढ़िया। FEN के अलावा move history भी हो तो अच्छा होगा, और शायद उसे fragment में डाला जा सकता है
    उदाहरण: https://chess.maxmcd.com/rnbqkbnr/ppp1pppp/8/3p4/3P1B2/8/PPP...