Кіріспе

Видеоойын жанры. Бағдарламалау ойыны – компьютерлік бағдарламалау элементтерін қамтитын видеоойын, ол ойыншыға ойын ішіндегі дербес бірліктерді белгілі бір доменге тән бағдарламалау тіліндегі командаларды орындауға мүмкіндік береді. Бағдарламалау метафорасын жеңілдету үшін бұл тіл көбінесе визуализацияланған. Бағдарламалау ойындары екі негізгі санатқа бөлінеді: біріншісі – бағдарламалау элементтері жұмбақ ойынының бөлігін құрайтын немесе толығымен одан тұратын жеке ойыншыға арналған ойындар, екіншісі – ойыншының автоматтандырылған бағдарламасы басқа ойыншылардың бағдарламаларымен күш сынасатын көп ойыншыға арналған ойындар.

Ойыншық ойындар ретінде

Жанрдың алғашқы ойындарының қатарында 1984 және 1985 жылдары шыққан System 15000 және Hacker ойындары бар. Бағдарламалау ойындары жұмбақтардың құрамында қолданылып, ойыншыдан бағдарлама жұмыс істей бастағаннан кейін нақты нәтижеге жетуді талап етеді. Мұндай ойынға SpaceChem мысал бола алады, онда ойыншы визуалды тілін қолданып екі вальдо арқылы химиялық молекулаларды бөлшектеп, қайта құрастыруы керек. Мұндай ойындарда ойыншылар қажет болған сайын бағдарламаларын сынап, түзету арқылы жұмыс істейтін шешімді таба алады. Көптеген ойындар ең тиімді бағдарламаны табуға ынталандырады, тиімділік уақыт қадамдарының санымен немесе қажетті командалар санымен өлшенеді. Human Resource Machine, Infinifactory және TIS 100 сияқты ойындар да осы санатқа жатады. Zachtronics – бағдарламалауға бағытталған жұмбақ ойындарымен танымал видео ойынды дамыту компаниясы. Кейбір ойындар бағдарламалау элементтерін үлкен ойынның жұмбақтарының бөлігі ретінде қолданады. Мысалы, Hack 'n' Slash ойынындағы әлемде бейнеленген объектілердің ішкі бағдарламалары мен айнымалыларына қол жеткізу мүмкіндігі, ойыншы осы бағдарламалау интерфейсін іске қосқанда ойынның қалған бөлігін тоқтату және объектінің бағдарламасын өзгерткенде одан әрі ілгерілеуге болатын метафора бар; мысалы, объектінің күйін бұзылмайтыннан бұзылатынға өзгертуге болады. Осы типтегі бағдарламалауға ие басқа ұқсас ойындарға Transistor, else Heart. Break, Glitchspace және Pony Island жатады. Бағдарламалау элементтері бар кейбір графикалық ойындарда ойыншыға домендік тілде командаларды беруге арналған командалық қатар интерфейсі ұсынылады, бұл ойыншыға жағдай өзгерген сайын командаларды қайтадан беруге мүмкіндік береді, алдынан жасалған бағдарламаны құрастырудың орнына. Quadrilateral Cowboy және Duskers сияқты ойындарда пайдаланушы код тілі арқылы бірнеше кішкентай робот жаратылыстарын бірдей басқарып, белгілі бір мақсатқа жетеді.

Жарыстар ойыны ретінде

Көптеген бағдарламалау ойындарында бір-бірін жоюға тырысатын роботтар, танктер немесе бактериялар сияқты объектілерді басқару қажет. Мұндай ойындарды жасанды өмір симуляцияларымен байланысты цифрлық организмдердің ортасы деп қарастыруға болады. Алғашқы мысал – Core War (1984), онда стандартталған, тілге ұқсас ассемблерде жазылған бағдарламалар шектеулі жадта (виртуалды магниттік ядролар) орын үшін күреседі. Ойыншыларға бағдарламаны орталық серверге жібермес бұрын, ойынның домендік тілінде оны жасау және сынау құралдары беріледі. Сервер бағдарламаны басқаларымен орындайды және нәтижелерін ойыншыға жібереді, одан кейін ол бағдарламаға өзгерістер немесе жақсартулар енгізе алады. Бағдарламалау ойындары үшін түрлі турнирлер мен лигалар бар, онда кейіпкерлер бір-бірімен бәсекелесе алады. Әдетте, сценарий нақты стратегияға қарай оптимизацияланады. Осындай тәсілдер дәстүрлі ойындарда да қолданылады; Компьютерлік шахмат әлем чемпионаты – шахматтың абстрактілі стратегиялық ойыны үшін жазылған бағдарламалардың арасындағы матчтардан тұрады. Жарысты бағдарламалау ойыны RoboRally немесе Robot Turtles сияқты түрлі үстел ойындарына да енді, мұнда бағдарлама кодты орындау үшін бірінен соң бірі ойналатын, алдын ала дайындалған карталар жиынтығына айналады. Зерттеушілер RoboCode-ты бағдарламалауды үйрету үшін "проблемалық оқуға негізделген" орта ретінде ұсынды.

Қатынас аймақтар

Ойыншылардың құрылыс блоктарынан ортаны құрастыру мүмкіндігі бар ашық әлемді ойындар көбінесе тәжірибелі ойыншылар логикалық тізбектерді және негізгі блоктардан күрделі бағдарламаларды құру үшін пайдаланады. Мысалы, Minecraft сияқты ойында, блоктардың шектеулі жиынтығы болғанымен, олар қосқыштар мен электр тізбектерін имитациялайды, пайдаланушылар виртуалды әлемде қарапайым, бірақ функционалды компьютерлерді жасауға қол жеткізді, ал кем дегенде бір модификация балаларға виртуалды компьютерде бағдарламалауды оңай тілмен үйретуге бағытталған. Codecademy сияқты бірнеше сайттар ойын принциптерін пайдаланып, пайдаланушыны ынталандыратын геймификация арқылы нақты бағдарламалау тілдерін үйренуге көмектеседі.