நான் ஒரு வார இறுதியில் ஒரு கார்டு விளையாட்டை வெளியிட்டேன்
நான் Prší-ன் ஒரு பிரவுசர் பதிப்பை உருவாக்கினேன். இது ஒரு செக் (Czech) கார்டு விளையாட்டு. இது ஒரு எளிய AI-க்கு எதிராக விளையாடப்படும் 1v1 விளையாட்டு. நீங்கள் மவுஸ் அல்லது தொடுதிரை (touch) மூலம் இதை விளையாடலாம்.
இங்கே விளையாடலாம்: https://czsoftcode.github.io/prsi/
பெரும்பாலான மக்கள் இதை 'vibe coding' என்று அழைக்கிறார்கள். நான் அதை ஒப்புக்கொள்ளவில்லை. 'Vibe coding' என்பது பெரும்பாலும் நீங்கள் ஒரு செயலியை விவரித்து, AI உங்களுக்குத் தரும் எதையும் அப்படியே ஏற்றுக்கொள்வதைக் குறிக்கும். நான் ஒரு மாறுபட்ட முறையைப் பயன்படுத்தினேன்.
நான் 10 தெளிவான நிலைகள் (phases) மூலம் உருவாக்கத்தை வழிநடத்த Claude Code-ஐப் பயன்படுத்தினேன். ஒவ்வொரு நிலைக்கும் ஒரு குறிப்பிட்ட இலக்கும், சரிபார்க்கக்கூடிய வெளியீடும் (verifiable output) இருந்தது.
அந்த நிலைகள்:
- Vite மற்றும் TypeScript கட்டமைப்பை (scaffold) அமைத்தல்
- கேம் என்ஜின் தரவு மாதிரியை (data model) உருவாக்குதல்
- அடிப்படை நகர்வுகள் மற்றும் சிறப்பு அட்டைகளைச் சேர்த்தல்
- AI எதிரி தர்க்கத்தை (logic) உருவாக்குதல்
- UI மற்றும் இடைவினை சுழற்சியை (interaction loop) உருவாக்குதல்
- 200 end-to-end AI உருவகப்படுத்துதல்களை (simulations) இயக்குதல்
- தளத்தை வெளியிடுதல் (Deploying)
அடுத்த நிலைக்குச் செல்வதற்கு முன் ஒவ்வொரு நிலையையும் நான் திட்டமிட்டு ஆய்வு செய்தேன். இது குறியீட்டை (code) சுத்தமாக வைத்திருக்க உதவியது. நான் சுமார் 300 யூனிட் டெஸ்ட்களை (unit tests) எழுதினேன். AI ஏதேனும் தவறு செய்தபோது, எனது டெஸ்ட்கள் அதை உடனடியாகக் கண்டறிந்தன.
கடினமான பகுதி குறியீடு அல்ல. அது விளையாட்டின் விதிகள் தான்.
- ஏழைகளை அடுக்கி வைத்தல் (Stacking sevens): எதிராளியை 8 அட்டைகளை எடுக்கத் தூண்டுவதற்காக, வீரர்கள் நான்கு ஏழைகள் வரை அடுக்கி வைக்கலாம்.
- குயின் வைல்ட்கார்டுகள் (Queen wildcards): ராணி (queen) தேவையான சூட்டை (suit) மாற்றும். என்ஜின் இதைச் சரியாகக் கையாளுகிறதா என்பதை நான் உறுதி செய்ய வேண்டியிருந்தது.
நான் சில தொழில்நுட்பத் தடைகளையும் எதிர்கொண்டேன்:
- வெளியீடு (Deployment): பாதையில் ஏற்பட்ட பிழைகளால் (path errors) GitHub Pages-இல் எனது படங்கள் சரியாகத் தெரியவில்லை. Vite-இன் base URL-ஐப் பயன்படுத்தி இதைச் சரிசெய்தேன்.
- பதிப்பு மேலாண்மை (Versioning): ஒரு வெளியீட்டைத் (release) tagged செய்த பிறகு, எனது
package.json-ஐப் புதுப்பிக்க மறந்துவிட்டேன்.
நான் AI-ஐ எளிமையாக வைத்திருந்தேன். அது சட்டபூர்வமான நகர்வுகளை (legal moves) மட்டுமே விளையாடும். இலக்கு ஒரு சரியான AI-ஐ உருவாக்குவதே தவிர, ஒரு புத்திசாலித்தனமான AI-ஐ அல்ல. விளையாட்டு எப்போதும் ஒரு வெற்றி அல்லது சமநிலையில் (stalemate) முடிவடைகிறது என்பதை நிரூபிக்க நான் 200 உருவகப்படுத்தப்பட்ட விளையாட்டுகளைப் பயன்படுத்தினேன்.
வெறும் 'vibes'-ஐ மட்டும் நம்பியிருக்காமல், நிலை வாரியாக (phase-by-phase) உருவாக்கியது, எனக்கு உண்மையில் புரியக்கூடிய ஒரு தயாரிப்பை வெளியிட எனக்கு உதவியது.
ஆதாரம்: https://dev.to/stkremen/i-shipped-a-card-game-in-a-weekend-but-i-didnt-really-vibe-code-it-34g9
விருப்பமான கற்றல் சமூகம்: https://github.com/czsoftcode/prsi
