ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ಅಂತಹ ಒಂದು ಫೋಲ್ಡರ್ ಇರುತ್ತದೆ. ಅರ್ಧಕ್ಕೆ ನಿಂತುಹೋದ ಟ್ಯುಟೋರಿಯಲ್ಗಳು, ಕೈಬಿಟ್ಟ ಸೈಡ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಭರವಸೆಗಿಂತ ಕಡಿಮೆ ಕೆಲಸ ನೀಡುವ README ಫೈಲ್ಗಳಿಂದ ತುಂಬಿದ ಫೋಲ್ಡರ್ ಅದು. ಅದು ಒಳ್ಳೆಯ ಉದ್ದೇಶಗಳ ಸ್ಮಶಾನವಿದ್ದಂತೆ, ಮತ್ತು ಅದರಿಂದ ಹೊರಬರುವ ಏಕೈಕ ದಾರಿ ಎಂದರೆ — ಯಾವುದಾದರೂ ಒಂದು ಕೆಲಸ ಮಾಡುವ ಗೇಮ್ ಅಥವಾ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ ಬಿಡುಗಡೆ ಮಾಡುವುದು.
ಮುಗಿಸಬೇಕೆಂಬ ಆ ಹಂಬಲವೇ LIAR ಎಂಬ ಬ್ರೌಸರ್ ಗೇಮ್ನ ಸೃಷ್ಟಿಗೆ ಕಾರಣವಾಯಿತು. ಇದು ಎಷ್ಟು ಚಿಕ್ಕದಾಗಿದೆ ಮತ್ತು ಎಷ್ಟು ಕಠಿಣವಾಗಿದೆ ಎಂದರೆ, ಕೇವಲ 28KB ನ ಒಂದು HTML ಫೈಲ್ನೊಳಗೆ ಇದು ಅಡಗಿದೆ. ಯಾವುದೇ ಫ್ರೇಮ್ವರ್ಕ್ಗಳಿಲ್ಲ. ಯಾವುದೇ ಇಮೇಜ್ ಫೈಲ್ಗಳಿಲ್ಲ. ಯಾವುದೇ ಸೌಂಡ್ ಅಸೆಟ್ಗಳಿಲ್ಲ. ಕೇವಲ ಅಸಲಿ HTML5 Canvas, Web Audio API ಮತ್ತು ಒಂದು ಕಠಿಣ ಸ್ವಭಾವ ಮಾತ್ರ.
ಆಂಟಿ-ಟ್ಯುಟೋರಿಯಲ್
ಹೆಚ್ಚಿನ ಕಲಿಕೆಯ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಅವುಗಳ ವ್ಯಾಪ್ತಿ ಅತಿಯಾಗಿ ಬೆಳೆಯುವುದರಿಂದಲೇ ವಿಫಲವಾಗುತ್ತವೆ. ನೀವು ಒಂದು ಕ್ಯಾನ್ವಾಸ್ ಟ್ಯುಟೋರಿಯಲ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತೀರಿ, ನಂತರ ಒಂದು ಮೂವ್ಮೆಂಟ್ ಸ್ಕ್ರಿಪ್ಟ್ ಸೇರಿಸುತ್ತೀರಿ, ಆಮೇಲೆ ನಿಮಗೆ ಒಂದು ಟೈಲ್ ಎಡಿಟರ್ ಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತೀರಿ, ನಂತರ ಎಂಟಿಟಿ ಕಾಂಪೊನೆಂಟ್ ಸಿಸ್ಟಮ್, ಆಮೇಲೆ ಕಂಪಿಲ್ ಮಾಡಲು ಹನ್ನೊಂದು ಸೆಕೆಂಡ್ ತೆಗೆದುಕೊಳ್ಳುವ Webpack config ಬೇಕೆಂದು ಅಂದುಕೊಳ್ಳುತ್ತೀರಿ. ಆರು ವಾರಗಳ ನಂತರ ನಿಮ್ಮ ಬಳಿ ಒಂದು ಬಿಲ್ಡ್ ಪೈಪ್ಲೈನ್ ಇರುತ್ತದೆ ಆದರೆ ಗೇಮ್ ಇರುವುದಿಲ್ಲ.
LIAR ಆ ಬಲೆಗೆ ಬೀಳಲು ನಿರಾಕರಿಸುತ್ತದೆ. ಇದು ಒಂದು ರಿಯಾಕ್ಷನ್ ಗೇಮ್. ಒಂದು ಬಟನ್ ನಿಮಗೆ TAP, HOLD, ಅಥವಾ DON'T ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಟೈಮರ್ ಮುಗಿಯುವ ಮೊದಲು ನೀವು ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು. ಆರಂಭಿಕ ಸುತ್ತುಗಳು ನಂಬಿಕೆಯನ್ನು ಬೆಳೆಸುತ್ತವೆ. ಪಠ್ಯವು TAP ಎಂದು ಹೇಳಿದರೆ, ನೀವು ಟ್ಯಾಪ್ ಮಾಡುತ್ತೀರಿ. ಪಠ್ಯವು HOLD ಎಂದು ಹೇಳಿದರೆ, ನೀವು ನಿಮ್ಮ ಬೆರಳನ್ನು ಒತ್ತಿ ಹಿಡಿಯುತ್ತೀರಿ. ಇದು ಸರಳವಾಗಿದೆ, ಲಯಬದ್ಧವಾಗಿದೆ ಮತ್ತು ಏಕಾಗ್ರತೆಯನ್ನು ಹೆಚ್ಚಿಸುವಂತಿದೆ.
ನಂತರ ಆರನೇ ಸುತ್ತು ಬರುತ್ತದೆ.
ದ್ರೋಹದ ತಂತ್ರಗಳು
ಆರನೇ ಸುತ್ತಿನ ಸುಮಾರಿಗೆ, ಗೇಮ್ ಸುಳ್ಳು ಹೇಳಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಪರದೆಯ ಮೇಲೆ ಒಂದು ಕಮಾಂಡ್ ಮಿಂಚುತ್ತದೆ — ಬಹುಶಃ ಕೆಂಪು ಬಣ್ಣದ, ನಡುಗುವ TAP — ಮತ್ತು ವಾರ್ಮ್-ಅಪ್ ಸಮಯದಲ್ಲಿ ನೀವು ಬೆಳೆಸಿಕೊಂಡಿದ್ದ ಪ್ರತಿಯೊಂದು ಪ್ರತಿಫಲ ಕ್ರಿಯೆಯೂ (reflex) ಬಟನ್ ಒತ್ತಲು ನಿಮ್ಮನ್ನು ಪ್ರೇರೇಪಿಸುತ್ತದೆ. ಒಂದು ವೇಳೆ ನೀವು ಹಾಗೆ ಮಾಡಿದರೆ, ನೀವು ಸೋಲುತ್ತೀರಿ. ಆ ಕೆಂಪು ಕಂಪನವು ತಾಂತ್ರಿಕ ದೋಷವಲ್ಲ (glitch). ಅದು ಒಂದು ಸೂಚನೆ (tell). ಒಬ್ಬ ಪ್ರಾಮಾಣಿಕ ಸುಳ್ಳುಗಾರ ನಿಮಗೆ ಸುಳಿವು ನೀಡುತ್ತಾನೆ, ಮತ್ತು ಈ ಗೇಮ್ ನಿಮಗೆ ನಿಖರವಾಗಿ ಅದನ್ನೇ ನೀಡುತ್ತದೆ: ವಂಚನೆಯ ಒಂದು ದೃಶ್ಯ ವ್ಯಾಕರಣ (visual grammar of deception).
ಈ ತಂತ್ರವು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಏಕೆಂದರೆ ಅದರ ಅಡಿಪಾಯ ಪ್ರಾಮಾಣಿಕವಾಗಿದೆ. ಬಣ್ಣ ಮತ್ತು ಚಲನೆಯು ಅರ್ಥವನ್ನು ಹೊಂದಿರುತ್ತವೆ ಎಂದು ಆರಂಭಿಕ ಸುತ್ತುಗಳು ನಿಮಗೆ ಕಲಿಸುತ್ತವೆ. ಬಣ್ಣದ ಪಟ್ಟಿಯು (palette) ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಬದಲಾದಾಗ ಮತ್ತು ಪಠ್ಯವು ನಡುಗಿದಾಗ, ಗೇಮ್ ಮೋಸ ಮಾಡುತ್ತಿಲ್ಲ. ಅದು ಸಂಕೇತ ನೀಡುತ್ತಿದೆ. ಮಾಹಿತಿ ನಿಮ್ಮ ಬಳಿ ಇತ್ತು. ನೀವು ಅದನ್ನು ಓದಿದ್ದೀರಿ ಅಥವಾ ಓದಿಲ್ಲ ಎಂಬುದು ನಿಮ್ಮ ನಿರ್ಧಾರ.
ನೀವು ಸೋತಾಗ, ಗೇಮ್ ನಿಮ್ಮನ್ನು ಅವಮಾನಿಸುತ್ತದೆ. ಆ ನೋವು ಉದ್ದೇಶಪೂರ್ವಕವಾದುದು. ಲೀಡರ್ಬೋರ್ಡ್ ಮತ್ತು ನಿರಂತರ ಪ್ರಗತಿಯಿಲ್ಲದ ಮೈಕ್ರೋ-ಗೇಮ್ನಲ್ಲಿ, ಅವಮಾನವೇ ಮರು-ಆಟದ (replayability) ಪ್ರೇರಕ ಶಕ್ತಿಯಾಗಿದೆ. ಇದು ಫೀಡ್ಬ್ಯಾಕ್ ಲೂಪ್ ಅನ್ನು ಮುಚ್ಚುತ್ತದೆ. ನೀವು ಲ್ಯಾಗ್ (lag) ಅಥವಾ ಹಿಟ್ಬಾಕ್ಸ್ ಸರಿಯಿಲ್ಲದ ಕಾರಣ ಸೋಲುತ್ತಿಲ್ಲ. ನೀವು ನಡುಗುವ ಕೆಂಪು ಪದವನ್ನು ನಂಬಿದ್ದರಿಂದ ಸೋಲುತ್ತೀರಿ, ಮತ್ತು ಆ ತಪ್ಪನ್ನು ನೀವು ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳುವಂತೆ ಗೇಮ್ ಮಾಡುತ್ತದೆ.
28KB ಅಂದರೆ ನಿಜವಾಗಿ ಏನು?
ಕೇವಲ 28KB HTML ಫೈಲ್ನೊಳಗೆ ನಿರ್ಮಿಸಲು ನಿರ್ಧರಿಸುವುದು ಕೇವಲ ಒಂದು ವಿಶಿಷ್ಟತೆಯಲ್ಲ. ಇದು ಕಠಿಣ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವಂತೆ ಒತ್ತಾಯಿಸುವ ಒಂದು ವಿನ್ಯಾಸದ ಮಿತಿ (design constraint). ಅಡಗಿಕೊಳ್ಳಲು ಇಲ್ಲಿ ಯಾವುದೇ ಮೆಗಾಬೈಟ್ಗಳ ಸ್ಪ್ರೈಟ್ ಶೀಟ್ಗಳಿಲ್ಲ. ಟ್ರಿಗ್ಗರ್ ಮಾಡಲು ಯಾವುದೇ ಆಡಿಯೋ ಫೈಲ್ಗಳಿಲ್ಲ. ಕಾಣಿಸುವ ಪ್ರತಿಯೊಂದನ್ನು HTML5 Canvas ಮೇಲೆ ಫ್ರೇಮ್-ಬೈ-ಫ್ರೇಮ್ ಬಿಡಿಸಲಾಗಿದೆ. ಕೇಳಿಸುವ ಪ್ರತಿಯೊಂದೂ Web Audio ಆಸಿಲೇಟರ್ಗಳಿಂದ ಬರುತ್ತದೆ.
ನೀವು Web Audio API ನೊಂದಿಗೆ ನೇರವಾಗಿ ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಅದು ಏನು ಒಳಗೊಂಡಿದೆ ಎಂದರೆ: ಪೂರ್ವ-ರೆಕಾರ್ಡ್ ಮಾಡಿದ WAV ಅಥವಾ MP3 ಅನ್ನು ಲೋಡ್ ಮಾಡುವ ಬದಲು, ಕೋಡ್ ಒಂದು AudioContext ಅನ್ನು ರಚಿಸುತ್ತದೆ, ಒಂದು ಆಸಿಲೇಟರ್ ನೋಡ್ ಅನ್ನು ಲಗತ್ತಿಸುತ್ತದೆ, ಒಂದು ವೇವ್ಫಾರ್ಮ್ — sine, square, sawtooth — ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಫ್ರೀಕ್ವೆನ್ಸಿಯನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಸರಿಯಾದ ಇನ್ಪುಟ್ಗಾಗಿ ಒಂದು ಸಣ್ಣ ಬೀಪ್ ಶಬ್ದ, ಸೋತಾಗ ಒಂದು ಕಠಿಣ ಬಜ್ ಶಬ್ದ. ಆ ಟೋನ್ಗಳನ್ನು ಬ್ರೌಸರ್ ನೈಜ ಸಮಯದಲ್ಲಿ (real time) ಲೆಕ್ಕಹಾಕುತ್ತದೆ. ಇವುಗಳಿಗೆ ಫೈಲ್ ಗಾತ್ರದಲ್ಲಿ ಯಾವುದೇ ವೆಚ್ಚವಾಗುವುದಿಲ್ಲ ಮತ್ತು ಯಾವುದೇ ಬಾಹ್ಯ ನೆಟ್ವರ್ಕ್ ವಿನಂತಿಗಳನ್ನು (network requests) ಮಾಡುವುದಿಲ್ಲ.
ಅದೇ ತರ್ಕವು ದೃಶ್ಯಗಳಿಗೆ (visuals) ಅನ್ವಯಿಸುತ್ತದೆ. Canvas ನಿಮಗೆ ತಕ್ಷಣದ ಡ್ರಾಯಿಂಗ್ ಸರ್ಫೇಸ್ ಅನ್ನು ನೀಡುತ್ತದೆ. ನೀವು ಆ ರೆಕ್ಟ್ಯಾಂಗಲ್ ಅನ್ನು ಕ್ಲಿಯರ್ ಮಾಡುತ್ತೀರಿ. ಪಠ್ಯವನ್ನು ತುಂಬುತ್ತೀರಿ. ನಡುಗುವ ಪರಿಣಾಮಕ್ಕಾಗಿ ನೀವು ಟ್ರಾನ್ಸ್ಫಾರ್ಮ್ ಅಥವಾ ಶ್ಯಾಡೋ ಬ್ಲರ್ ಅನ್ನು ಸೆಟ್ ಮಾಡುತ್ತೀರಿ. ಅಲ್ಲಿ ಯಾವುದೇ virtual DOM diffing, React reconciliation ಅಥವಾ ಡಿಬಗ್ ಮಾಡಲು dependency array ಇರುವುದಿಲ್ಲ. ಬ್ರೌಸರ್ ಕೋಡ್ ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪಿಕ್ಸೆಲ್ಗಳು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ. ಇಷ್ಟು ಗಮನ ಕೇಂದ್ರೀಕೃತವಾದ ಗೇಮ್ಗೆ, ಆ ನೇರ ವಿಧಾನವೇ ಒಂದು ವೈಶಿಷ್ಟ್ಯವೇ ಹೊರತು ಮಿತಿಯಲ್ಲ.
ಪೇಲೋಡ್ ಅನ್ನು 28KB ನಲ್ಲಿ ಇರಿಸುವುದು ಎಂದರೆ ಗೇಮ್ ಮೊಬೈಲ್ ಬ್ರೌಸರ್ನಲ್ಲಿ ತಕ್ಷಣವೇ ಲೋಡ್ ಆಗುತ್ತದೆ ಎಂದರ್ಥ, ಅಷ್ಟೇ ಅಲ್ಲದೆ ಕಳಪೆ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕದಲ್ಲೂ ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಇದನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಯಾವುದೇ ವೆಚ್ಚವಿಲ್ಲ. ಇಡೀ ಅಪ್ಲಿಕೇಶನ್ ಹೆಚ್ಚಿನ ವೆಬ್ಸೈಟ್ ಫೇವಿಕಾನ್ಗಳಿಗಿಂತಲೂ ಚಿಕ್ಕದಾಗಿದೆ. ನೀವು ಇದನ್ನು ಶೇರ್ಡ್ ಲಿಂಕ್ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳುವಾಗ ಅಥವಾ ಫೋರಂಗಳಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡುವಾಗ ಇದು ಬಹಳ ಮುಖ್ಯವಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವ ಕಿರಿಕಿರಿ ಇಲ್ಲ. ನೀವು URL ಗೆ ಭೇಟಿ ನೀಡಿದ ತಕ್ಷಣ, ಆ ಸುಳ್ಳು (lie) ಸಿದ್ಧವಾಗಿರುತ್ತದೆ.
ನ್ಯಾಯಯುತವಾದ ವಂಚನೆ
ಸುಳ್ಳು ಹೇಳುವ ತಂತ್ರದ ಮೇಲೆ ನಿಜವಾದ ಸಮಯವನ್ನು ವ್ಯಯಿಸುವುದು ಗೇಮ್ ಡಿಸೈನ್ ಬಗ್ಗೆ ಒಂದು ಸೂಕ್ಷ್ಮ ಸತ್ಯವನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ಅನ್ಯಾಯವು ಅರ್ಥವಾಗುವಂತಿದ್ದಾಗ ಮಾತ್ರ ಮೋಜಿನವಾಗಿರುತ್ತದೆ. ಎಚ್ಚರಿಕೆ ನೀಡದೆ ಆಟಗಾರನನ್ನು ಕೊಲ್ಲುವ ಯಾದೃಚ್ಛಿಕ (random) ಬಲೆ ಕೆಟ್ಟ ವಿನ್ಯಾಸವಾಗಿದೆ. ಆದರೆ ಕಂಪಿಸುವ, ಬಣ್ಣ ಬದಲಿಸುವ ಮತ್ತು ಸ್ಥಾಪಿತವಾದ ದೃಶ್ಯ ಲಯವನ್ನು ಮುರಿಯುವ ಬಲೆಯು ಒಂದು ಪಜಲ್ನಂತೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ.
ಕೆಂಪು ಬಣ್ಣದ ನಡುಗುವ ಪಠ್ಯವು ಹಲವಾರು ಉದ್ದೇಶಗಳನ್ನು ಹೊಂದಿದೆ. ಇದು ಮೊದಲ ಐದು ಸುತ್ತುಗಳಲ್ಲಿ ಆಟಗಾರರು ಬೆಳೆಸಿಕೊಂಡಿದ್ದ ಅಭ್ಯಾಸದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಮೀರಿಸುತ್ತದೆ. ಇದು ಮೊದಲು ಕೇವಲ ಪ್ರತಿಫಲ ಕ್ರಿಯೆಯ ಪರೀಕ್ಷೆಯಾಗಿದ್ದ ಗೇಮ್ನಲ್ಲಿ ಸಂಶಯ, ಹಿಂಜರಿಕೆ ಮತ್ತು ಆತಂಕದಂತಹ ಭಾವನಾತ್ಮಕ ಕ್ಷಣಗಳನ್ನು ತರುತ್ತದೆ. ಮತ್ತು ಅತಿ ಮುಖ್ಯವಾಗಿ, ಇದು ಸೋಲಿನ ಜವಾಬ್ದಾರಿಯನ್ನು ನಿಮ್ಮ ಮೇಲೆಯೇ ಇರಿಸುತ್ತದೆ. ನೀವು ಆ ಕೆಂಪು ಕಮಾಂಡ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ ಅವಮಾನದ ಸಂದೇಶ ಕಾಣಿಸಿಕೊಂಡರೆ, ತಪ್ಪು ನಿಮ್ಮದೇ ಎಂದು ನಿಮಗೆ ತಿಳಿಯುತ್ತದೆ. ಗೇಮ್ ನಿಮಗೆ ಸೂಚನೆ ನೀಡಿದೆ, ಆದರೆ ಅದನ್ನು ಓದಲು ನೀವು ವಿಫಲರಾದಿರಿ.
ಇದು ಅನ್ಯಾಯದ ಹೊಡೆತ ಮತ್ತು ನ್ಯಾಯಯುತ ಹೋರಾಟದ ನಡುವಿನ ವ್ಯತ್ಯಾಸ. LIAR ನಿಮ್ಮ ಮುಖಕ್ಕೆ ಏಟು ನೀಡಲು ಬಯಸುತ್ತದೆ, ಆದರೆ ಅದು ಮೊದಲು ತನ್ನ ಪೂರ್ಣ ಬಲವನ್ನು ಆ ಏಟಿನ ಹಿಂದೆ ಬಳಸುತ್ತದೆ.
ಪರಿಷ್ಕರಣೆಗಿಂತ ಬಿಡುಗಡೆಗೆ ಆದ್ಯತೆ
ಈ ಆಟವು ಕಚ್ಚಾ ಆಗಿದೆ. ಲೇಖಕರೇ ಸ್ವತಃ ಇದನ್ನು ನಿಮಗೆ ತಿಳಿಸುತ್ತಾರೆ. ಇದು ಅವರ ಮೊದಲ ಪೂರ್ಣಗೊಂಡ ಆಟವಾಗಿದೆ, ಮತ್ತು ಅದನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸರಳತೆಯೇ ಬೆಲೆಯಾಗಿತ್ತು. ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರು (developers) ಎಂದಿಗೂ ಬಳಕೆಗೆ ಬಾರದ ವ್ಯವಸ್ಥೆಗಳ ಬಗ್ಗೆ ಬ್ಲಾಗ್ ಮಾಡುವ ಈ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ಅಂತಹ ಪ್ರಾಮಾಣಿಕತೆ ಹೊಸತಾದ ಅನುಭವ ನೀಡುತ್ತದೆ. LIAR ಒಂದು ಲೈವ್ URL ನಲ್ಲಿ ಲಭ್ಯವಿದೆ. ನೀವು ಇದನ್ನು ಈಗಲೇ ಆಡಬಹುದು. ನೀವು monorepo ಅನ್ನು ಬಿಡಿಸದೆ ಒಂದೇ ಫೈಲ್ನಲ್ಲಿ ಇದರ ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ನೋಡಬಹುದು.
ಇದನ್ನು ಪ್ರಯತ್ನಿಸಲು ಧೈರ್ಯವಿರುವ ಯಾರಿಂದಲಾದರೂ ಡೆವಲಪರ್ ಎರಡು ವಿಷಯಗಳನ್ನು ತಿಳಿಯಲು ಬಯಸುತ್ತಾರೆ. ಮೊದಲನೆಯದಾಗಿ, ನೀವು ಎಷ್ಟು ಸಮಯ ಬದುಕುಳಿಯುತ್ತೀರಿ? ಎರಡನೆಯದಾಗಿ, ಆರನೇ ಸುತ್ತಿನಲ್ಲಿ ಮೊದಲ ಸುಳ್ಳು ಎದುರಾದಾಗ, ಅದು ನ್ಯಾಯಯುತವಾಗಿ ಅನಿಸುತ್ತದೆಯೇ ಅಥವಾ ಅನ್ಯಾಯದಂತೆ ಅನಿಸುತ್ತದೆಯೇ? ಕೇಳಬೇಕಾದ ಸರಿಯಾದ ಪ್ರಶ್ನೆಗಳೆಂದರೆ ಇವು. ಅವರು ಸುಳ್ಳನ್ನು ಒಂದು ಬಗ್ (bug) ಎಂದು ಪರಿಗಣಿಸದೆ, ಹೊಂದಾಣಿಕೆ (tuning) ಮಾಡಬೇಕಾದ ಒಂದು ಮೆಕ್ಯಾನಿಕ್ (mechanic) ಎಂದು ಪರಿಗಣಿಸುತ್ತಾರೆ.
ಆಸಕ್ತಿ ಇದ್ದರೆ, ಅವರು Canvas ಡ್ರಾಯಿಂಗ್ ಲೂಪ್, Web Audio oscillators ಹಿಂದಿನ ತರ್ಕ ಮತ್ತು ಕೋಡ್ನಲ್ಲಿ ಸುಳ್ಳು ಹೇಳುವ ಮೆಕ್ಯಾನಿಕ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಒಳಗೊಂಡ ಆಳವಾದ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ಬರೆಯಲು ಮುಂದಾಗಿದ್ದಾರೆ. ಒಂದು HTML ಫೈಲ್ನೊಳಗೆ ಸಂಪೂರ್ಣ ಆಟವನ್ನು ನೋಡುವುದು ಬಹಳ ಅಪರೂಪವಾಗಿರುವುದರಿಂದ, ಟ್ಯುಟೋರಿಯಲ್ ಪರ್ಗಟರಿಯಲ್ಲಿ (tutorial purgatory) ಸಿಲುಕಿರುವ ಯಾರಿಗಾದರೂ ಆ ಮಾರ್ಗದರ್ಶಿ ನಿಜವಾಗಿಯೂ ಉಪಯುಕ್ತವಾಗಲಿದೆ.
ನಿಜವಾದ ಪಾಠ
ಆಟವನ್ನು ತಯಾರಿಸಲು ನಿಮಗೆ ಗೇಮ್ ಇಂಜಿನ್ ಅಗತ್ಯವಿಲ್ಲ. ಅಸೆಟ್ಸ್ಗಳಿಗಾಗಿ (assets) content delivery network ಬೇಕಿಲ್ಲ, ಅಥವಾ ಇಪ್ಪತ್ತು ಪುಟಗಳ ಸುದೀರ್ಘ ಡಿಸೈನ್ ಡಾಕ್ಯುಮೆಂಟ್ ಬೇಕಿಲ್ಲ, ಅಥವಾ ಫ್ರೇಮ್ವರ್ಕ್ ಮೇಂಟೈನರ್ನಿಂದ ಅನುಮತಿ ಬೇಕಿಲ್ಲ. ನಿಮಗೆ ಬೇಕಾಗಿರುವುದು ಒಂದು ಮಿತಿ — ಇಲ್ಲಿ ಅದು 28KB ಮತ್ತು ಒಂದೇ ಫೈಲ್ — ಮತ್ತು ಅದನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಒಂದು ಕಾರಣ. ಮಿತಿಗಳು ಸ್ಪಷ್ಟತೆಯನ್ನು ತರುತ್ತವೆ. ಅದರ ಹಿಂದಿನ ಕಾರ್ಯವಿಧಾನ (mechanic) ಗಟ್ಟಿಯಾಗಿದ್ದರೆ, ಸಾವಿರಾರು ಇಂಪೋರ್ಟ್ ಮಾಡಿದ ಸ್ಪ್ರೈಟ್ಗಳಿಗಿಂತ ನಡುಗುವ ಒಂದು ಕೆಂಪು ಪದವು ಹೆಚ್ಚು ನೆನಪಿನಲ್ಲಿ ಉಳಿಯುತ್ತದೆ.
LIAR ಅನ್ನು ನೀವೇ ಸ್ವತಃ ಇಲ್ಲಿ ಆಡಿ: https://playliar.netlify.app/.
ಡೆವಲಪರ್ ನೀಡಿದ ಮೂಲ ವಿವರಣೆ ಮತ್ತು ಸೋರ್ಸ್ ಸಂದರ್ಭವನ್ನು ನೀವು ಇಲ್ಲಿ ಓದಬಹುದು: https://dev.to/shabbir_sesaifee_8fdc587/i-built-a-game-that-lies-to-you-in-a-single-28kb-html-file-no-framework-no-assets-4hnh.
