ನಾನು ಒಂದು ವಾರಾಂತ್ಯದಲ್ಲಿ ಕಾರ್ಡ್ ಗೇಮ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ

ನಾನು Prší ನ ಬ್ರೌಸರ್ ಆವೃತ್ತಿಯನ್ನು ನಿರ್ಮಿಸಿದೆ. ಇದು ಒಂದು ಚೆಕ್ ಕಾರ್ಡ್ ಗೇಮ್. ಇದು ಸರಳ AI ವಿರುದ್ಧದ 1v1 ಆಟವಾಗಿದೆ. ನೀವು ಮೌಸ್ ಅಥವಾ ಟಚ್ ಬಳಸಿ ಇದನ್ನು ಆಡಬಹುದು.

ಇಲ್ಲಿ ಆಡಿ: https://czsoftcode.github.io/prsi/

ಹೆಚ್ಚಿನ ಜನರು ಇದನ್ನು vibe coding ಎಂದು ಕರೆಯುತ್ತಾರೆ. ನಾನು ಅದಕ್ಕೆ ಒಪ್ಪುವುದಿಲ್ಲ. Vibe coding ಎಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ಒಂದು ಆ್ಯಪ್ ಅನ್ನು ವಿವರಿಸುತ್ತೀರಿ ಮತ್ತು AI ನಿಮಗೆ ಏನನ್ನು ನೀಡುತ್ತದೆಯೋ ಅದನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೀರಿ ಎಂದರ್ಥ. ನಾನು ವಿಭಿನ್ನ ವಿಧಾನವನ್ನು ಬಳಸಿದೆ.

ನಾನು ನಿರ್ದಿಷ್ಟವಾದ 10 ಹಂತಗಳ ಮೂಲಕ ಬಿಲ್ಡ್ ಅನ್ನು ನಡೆಸಲು Claude Code ಅನ್ನು ಬಳಸಿದೆ. ಪ್ರತಿ ಹಂತವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಗುರಿ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದ ಫಲಿತಾಂಶವನ್ನು ಹೊಂದಿತ್ತು.

ಹಂತಗಳು ಇವುಗಳನ್ನು ಒಳಗೊಂಡಿದ್ದವು:

  • Vite ಮತ್ತು TypeScript scaffold ಅನ್ನು ಸಿದ್ಧಪಡಿಸುವುದು
  • ಗೇಮ್ ಎಂಜಿನ್ ಡೇಟಾ ಮಾಡೆಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು
  • ಮೂಲ ಚಲನೆಗಳು ಮತ್ತು ವಿಶೇಷ ಕಾರ್ಡ್‌ಗಳನ್ನು ಸೇರಿಸುವುದು
  • AI ಎದುರಾಳಿಯ ಲಾಜಿಕ್ ಅನ್ನು ರಚಿಸುವುದು
  • UI ಮತ್ತು ಇಂಟರಾಕ್ಷನ್ ಲೂಪ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು
  • 200 ಎಂಡ್-ಟು-ಎಂಡ್ AI ಸಿಮ್ಯುಲೇಶನ್‌ಗಳನ್ನು ಚಲಾಯಿಸುವುದು
  • ಸೈಟ್ ಅನ್ನು ಡಿಪ್ಲಾಯ್ ಮಾಡುವುದು

ಮುಂದಿನ ಹಂತಕ್ಕೆ ಹೋಗುವ ಮೊದಲು ನಾನು ಪ್ರತಿ ಹಂತವನ್ನು ಯೋಜಿಸಿದೆ ಮತ್ತು ಪರಿಶೀಲಿಸಿದೆ. ಇದು ಕೋಡ್ ಅನ್ನು ಸ್ವಚ್ಛವಾಗಿಡಲು ಸಹಾಯ ಮಾಡಿತು. ನಾನು ಸುಮಾರು 300 ಯೂನಿಟ್ ಟೆಸ್ಟ್‌ಗಳನ್ನು ಬರೆದಿದ್ದೇನೆ. AI ತಪ್ಪು ಮಾಡಿದಾಗ, ನನ್ನ ಟೆಸ್ಟ್‌ಗಳು ಅದನ್ನು ತಕ್ಷಣವೇ ಪತ್ತೆಹಚ್ಚಿದವು.

ಕಷ್ಟದ ಭಾಗ ಕೋಡ್ ಆಗಿರಲಿಲ್ಲ. ಅದು ಆಟದ ನಿಯಮಗಳಾಗಿತ್ತು.

  • ಏಳುಗಳನ್ನು ಜೋಡಿಸುವುದು (Stacking sevens): ಎದುರಾಳಿಯು 8 ಕಾರ್ಡ್‌ಗಳನ್ನು ಎಳೆಯುವಂತೆ ಮಾಡಲು ಆಟಗಾರರು ನಾಲ್ಕು ಏಳುಗಳವರೆಗೆ ಜೋಡಿಸಬಹುದು.
  • ಕ್ವೀನ್ ವೈಲ್ಡ್‌ಕಾರ್ಡ್‌ಗಳು (Queen wildcards): ಕ್ವೀನ್ ಅಗತ್ಯವಿರುವ ಸೂಟ್ ಅನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಎಂಜಿನ್ ಇದನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದನ್ನು ನಾನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕಾಯಿತು.

ನಾನು ತಾಂತ್ರಿಕ ಅಡೆತಡೆಗಳನ್ನು ಎದುರಿಸಿದೆ:

  • ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ (Deployment): ಪಾತ್ ದೋಷಗಳಿಂದಾಗಿ (path errors) ನನ್ನ ಚಿತ್ರಗಳು GitHub Pages ನಲ್ಲಿ ಸರಿಯಾಗಿ ಕಾಣಿಸಲಿಲ್ಲ. Vite ನ base URL ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ನಾನು ಇದನ್ನು ಸರಿಪಡಿಸಿದೆ.
  • ವರ್ಷನಿಂಗ್ (Versioning): ರಿಲೀಸ್ ಟ್ಯಾಗ್ ಮಾಡಿದ ನಂತರ package.json ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ನಾನು ಮರೆತಿದ್ದೆ.

ನಾನು AI ಅನ್ನು ಸರಳವಾಗಿರಿಸಿದೆ. ಅದು ಕೇವಲ ಕಾನೂನುಬದ್ಧ ಚಲನೆಗಳನ್ನು ಮಾತ್ರ ಆಡುತ್ತದೆ. ಗುರಿ ಸರಿಯಾದ AI ಅನ್ನು ಹೊಂದುವುದೇ ಆಗಿತ್ತು, ಬುದ್ಧಿವಂತ AI ಅಲ್ಲ. ಆಟವು ಯಾವಾಗಲೂ ಗೆಲುವು ಅಥವಾ ಸಮಬಲದಲ್ಲಿ (stalemate) ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ನಾನು 200 ಸಿಮ್ಯುಲೇಟೆಡ್ ಗೇಮ್‌ಗಳನ್ನು ಬಳಸಿದೆ.

ಕೇವಲ 'vibes' ಮೇಲೆ ಅವಲಂಬಿತವಾಗುವ ಬದಲು ಹಂತ ಹಂತವಾಗಿ ನಿರ್ಮಿಸುವುದರಿಂದ, ನನಗೆ ನಿಜವಾಗಿಯೂ ಅರ್ಥವಾಗುವ ಉತ್ಪನ್ನವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಸಾಧ್ಯವಾಯಿತು.

ಮೂಲ: 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