Кіріспе
Видеоойындар құруға арналған бағдарламалық қамтамасыз ету ортасы.
Ойын қозғалтқышы – негізінен видеоойындарды әзірлеуге арналған бағдарламалық жүйе, әдетте тиісті кітапханалар мен деңгей редакторы сияқты қолдау бағдарламаларын қамтиды. "Қозғалтқыш" терминологиясы бағдарламалық жасақтама саласында кеңінен қолданылатын "бағдарламалық қозғалтқыш" терминіне ұқсас. Ойын қозғалтқышы осы жүйені қолдайтын бағдарламалық құралдарды, әдетте ойындарды әзірлеуге арналған құралдар мен мүмкіндіктер жиынтығын да білдіре алады. Ойын жасаушылар ойын қозғалтқыштарын видеоойын консольдары мен басқа да компьютерлер үшін ойындар жасау үшін пайдалана алады. Ойын қозғалтқышымен қамтамасыз етілетін негізгі функционалға 2D немесе 3D графика үшін рендерлеу қозғалтқышы ("рендерлеуші"), физикалық қозғалтқыш немесе соқтығысуды анықтау (және соқтығысуға жауап беру), дыбыс, сценарийлер, анимация, жасанды интеллект, желілік байланыс, ағынмен беру, жадты басқару, жіптер, локализациялау қолдауы, көрініс графы және бейнефильмдер үшін бейне қолдауы кіруі мүмкін. Ойын қозғалтқышын жасаушылар көбінесе ойынды әзірлеу процесінде әртүрлі ойындарды жасау немесе ойындарды бірнеше платформаға көшіруге көмектесу үшін бір ойын қозғалтқышын қайта пайдалану/бейімдеу арқылы шығындарды үнемдейді.
Мақсаты
Көптеген жағдайларда ойын қозғалтқыштары қайта пайдалануға болатын бағдарламалық компоненттермен қатар визуалды әзірлеу құралдарының жиынтығын ұсынады. Бұл құралдар көбінесе интеграцияланған даму ортасында ұсынылады, бұл ойынды деректерге негізделген тәсілмен жеңілдетілген және жылдам дамытуға мүмкіндік береді. Ойын қозғалтқышын әзірлеушілер жиі ойын жасау үшін қажет болуы мүмкін көптеген элементтерді қамтитын берік бағдарламалық қамтамасыз ету жиынтығын жасау арқылы енгізушілердің қажеттіліктерін болжауға тырысады. Көптеген ойын қозғалтқыштары графика, дыбыс, физика және жасанды интеллект (AI) функциялары сияқты дамуды жеңілдететін мүмкіндіктерді ұсынады. Бұл ойын қозғалтқыштары кейде "аралық бағдарламалық құрал" деп аталады, себебі терминнің бизнес мағынасында, олар ойын қолданбасын жасау үшін қажетті барлық негізгі функционалдықты бірден қамтамасыз ететін икемді және қайта пайдалануға болатын бағдарламалық платформаны ұсынады, сонымен бірге шығындарды, күрделілікті және нарыққа шығу уақытын азайтады – бұл жоғары бәсекеге толы бейне ойын индустриясындағы маңызды факторлар. Басқа да аралық бағдарламалық құралдар сияқты, ойын қозғалтқыштары әдетте платформалық абстракцияны қамтамасыз етеді, бұл бір ойынды әртүрлі платформаларда (оның ішінде ойын консольдары мен жеке компьютерлерде) ойынның бастапқы кодына минимал өзгерістер енгізіп іске қосуға мүмкіндік береді. Көбінесе бағдарламашылар ойын қозғалтқыштарын компоненттік архитектурамен жобалайды, бұл қозғалтқыштағы нақты жүйелерді мамандандырылған (көбінесе қымбат) ойын аралық бағдарламалық құралдарымен ауыстыруға немесе кеңейтуге мүмкіндік береді. Кейбір ойын қозғалтқыштары кең таралған тәсілге – икемді интеграцияланған өнімді кеңейту немесе бейімдеуге қарағанда, арнайы қозғалтқышты құру үшін таңдамалы түрде біріктірілетін, әлсіз байланысты ойын аралық бағдарламалық құралдарынан тұрады. Қол жеткізілген нәтижеге қарамастан, ойын қозғалтқыштарының кеңейтілгіштігі олардың қолданылатын мақсаттарының кең ауқымына байланысты жоғары басымдық болып қалады. "Ойын қозғалтқышы" деген атаудың ерекшелігіне қарамастан, пайдаланушылар жиі ойын қозғалтқыштарын маркетингтік демонстрациялар, архитектуралық визуализациялар, оқу симуляциялары және модельдеу орталары сияқты нақты уақыт графикалық талаптары бар басқа да интерактивті қолданбалар үшін қайта мақсаттайды. Кейбір ойын қозғалтқыштары ойындарға қажетті кең функционалдықтың орнына тек нақты уақыт 3D рендеринг мүмкіндіктерін ұсынады. Бұл қозғалтқыштар ойын әзірлеушісінен осы функционалдықтың қалған бөлігін жүзеге асыруды немесе оны басқа ойын аралық бағдарламалық құралдарынан құрастыруды талап етеді. Мұндай қозғалтқыштар көбінесе "графикалық қозғалтқыш", "рендеринг қозғалтқышы" немесе "3D қозғалтқыш" деп аталады, "ойын қозғалтқышы" деген кең терминнен гөрі. Бұл терминология жиі тұрақсыз қолданылады, себебі көптеген толыққанды 3D ойын қозғалтқыштары жай ғана "3D қозғалтқыштар" деп аталады. Графикалық қозғалтқыштардың мысалдары: Crystal Space, Genesis3D, Irrlicht, OGRE, RealmForge, Truevision3D және Vision Engine. Қазіргі заманғы ойын немесе графикалық қозғалтқыштар көбінесе 3D ойын әлемінің нысанға бағытталған бейнелеуін ұсынады, бұл ойын дизайнын жеңілдетеді және үлкен виртуалды әлемдерді тиімдірек көрсетуге мүмкіндік береді. Технология ескірген сайын, қозғалтқыштың компоненттері ескіріп немесе берілген жобаның талаптарына сәйкес болмай қалуы мүмкін. Толық жаңа қозғалтқышты бағдарламалаудың күрделілігі күтілмеген кешігуларға әкелуі мүмкін (немесе жобаны басынан бастау қажеттігін тудыруы мүмкін), сондықтан қозғалтқышты дамыту тобы қолданыстағы қозғалтқышты жаңа функционалдық немесе компоненттермен жаңартуды таңдауы мүмкін.
Тарих
Ойын қозғалтқыштары пайда болмас бұрын ойындар көбінесе жекелеген бірлік ретінде жасалатын: мысалы, Atari 2600 үшін жасалған ойынды дисплей аппараттығын тиімді пайдалану үшін бастан-аяқ жобалау қажет еді. Бүгінде бұл негізгі дисплейлік процедураны ескі жүйелерге арналған ойындарды жасаушылар ядро деп атайды. Басқа платформаларда көбірек мүмкіндік болды, бірақ дисплейге қатысты мәселе болмаған жағдайда да, жад шектеулері көбінесе қозғалтқышқа қажетті көп деректерді қамтитын дизайнды жасауға тырысуды қиындатты. Тіпті мүмкіндігі жақсы платформаларда да, ойындар арасында аздан-аз ғана нәрсені қайта пайдалануға болатын. Аркада аппараттығының жылдам дамуы – сол кездегі нарықтың жетекші күші – кодтың көп бөлігі кейіннен тасталуы керек екенін білдірді, себебі жаңа буын ойындар қосымша ресурстарды пайдаланатын мүлдем басқа ойын дизайндарын қолданды. Осылайша, 1980-ші жылдарға дейінгі ойын дизайнының көп бөлігі аз ғана деңгейлер мен графикалық деректермен қамтамасыз етілген, қатаң кодталған ережелер жиынтығы арқылы жасалды. Аркада бейне ойындарының алтын ғасырынан бастап, бейне ойын компаниялары үшін бірінші тараптық бағдарламалық құралдармен пайдалану үшін ішкі ойын қозғалтқыштарын жасау кең таралды. 1980-ші жылдардың ортасында үй консольдарындағы ішкі ойын қозғалтқышының көрнекті мысалы – Шигеру Миямотоның Nintendo-дағы командасы Nintendo Entertainment System (NES) үшін жасаған тегіс бүйірлік прокрулдеу қозғалтқышы. Олар 1984 жылы жарыс ойыны Excitebike үшін жасаған қозғалтқыш кейіннен 1985 жылы шыққан Super Mario Bros. платформалық ойыны үшін қолданылды. Бұл Мариоға бұрынғы платформалық ойындардағыдай тұрақты жылдамдықпен қозғалудың орнына, жаяу жүруден жүгіруге дейін жылдамдығын бірте-бірте арттыруға мүмкіндік берді. 1990 жылдары 3D компьютерлік графиканың пайда болуына дейін үшінші тараптық ойын қозғалтқыштары кең таралмаса да, 1980-ші жылдары тәуелсіз бейне ойынды дамыту үшін бірнеше 2D ойын жасау жүйелері жасалды. Оларға Pinball Construction Set (1983), ASCII's War Game Construction Kit (1983), Thunder Force Construction (1984), Adventure Construction Set (1984), Garry Kitchen's GameMaker (1985), Wargame Construction Set (1986), Shoot 'Em Up Construction Kit (1987), Arcade Game Construction Kit (1988) және ең танымал 1998 жылдан бастап ASCII-дің RPG Maker қозғалтқыштары кіреді. Klik & Play (1994) – бұл әлі де қолжетімді тағы бір мұра. "Ойын қозғалтқышы" термині 1990 жылдардың ортасында пайда болды, әсіресе бірінші тұлғадан ату қозғалтқышы бар 3D ойындармен байланысты. 1998 жылы Epic Games, негізін қалаушысы Тим Суини, Unreal Engine-ді шығарды. Id Software компаниясының Doom және Quake ойындарының танымалдылығы соншалық болды, басқа дамытушылар бағдарламалық құралдың негізгі бөліктеріне лицензия алып, өздерінің графикасын, кейіпкерлерін, қаруларын және деңгейлерін – "ойын мазмұнын" немесе "ойын активтерін" жасады. Ойынға тән ережелер мен деректерді соқтығысуды анықтау және ойын объектісі сияқты негізгі ұғымдардан бөлу командалардың өсуіне және мамандануына мүмкіндік берді. Қазіргі заманғы ойын қозғалтқыштары – бұл ең күрделі бағдарламалардың бірі, олар көбінесе дәл басқарылатын пайдаланушы тәжірибесін қамтамасыз ету үшін өзара әрекеттесетін ондаған ұсақ жүйелерді қамтиды. Ойын қозғалтқыштарының үздіксіз дамуы рендеринг, скрипт, көркемдік жұмыс және деңгей дизайны арасында күшті ажырым жасады. Мысалы, қазір ойын әзірлеушілердің командасында бағдарламашылар санынан бірнеше есе көп суретшілер болуы әдеттегі нәрсе. Бірінші тұлғадан ату ойындары үшінші тараптық ойын қозғалтқыштарының басым пайдаланушылары болып қала береді, бірақ олар қазір басқа жанрларда да қолданылады. Мысалы, ролдік бейне ойын The Elder Scrolls III: Morrowind және MMORPG Dark Age of Camelot Gamebryo қозғалтқышына негізделген, ал MMORPG Lineage II Unreal Engine-ге негізделген. Ойын қозғалтқыштары бастапқыда үй консольдары үшін жасалған ойындар үшін де қолданылады; мысалы, RenderWare қозғалтқышы Grand Theft Auto және Burnout франшизаларында қолданылады. Қазіргі заманғы көп ядролы жүйелерге (мысалы, Cell) және реализмге деген талаптардың артуына байланысты тақырыптау маңыздырақ болып келеді. Типик тақырыптар рендерингті, ағынды, дыбысты және физиканы қамтиды. Жарыс ойындары әдетте физикалық қозғалтқышпен жеке тақырыпта жұмыс істейтін тақырыпта алдыңғы қатарда болды, басқа негізгі ішкі жүйелер жылжытылғанға дейін, ішінара рендеринг пен байланысты міндеттерді тек 30–60 Гц жылдамдықпен жаңарту қажет болды. Мысалы, PlayStation 3-те физика Need For Speed-те 100 Гц-те, ал Forza Motorsport 2-де 360 Гц-те жұмыс істеді. Бұл термин алғаш рет 1990 жылдары қолданылғанмен, 1980 жылдары ойын қозғалтқыштары деп саналатын бірнеше жүйелер бар, мысалы Sierra's Adventure Game Interpreter (AGI) және SCI жүйелері, LucasArts' SCUMM жүйесі және Incentive Software's Freescape қозғалтқышы (1986). Қазіргі заманғы ойын қозғалтқыштарынан айырмашылығы, бұл ойын қозғалтқыштары ешқашан үшінші тараптық өнімдерде қолданылмады (SCUMM жүйесінен басқа, ол Humongous Entertainment лицензиясын алды және қолданды). Ойын қозғалтқышы технологиясы жетілген сайын және қолдануға оңай болған сайын, ойын қозғалтқыштарының қолданылу саласы кеңейді. Олар қазір нақты ойындар үшін қолданылады: визуализация, оқыту, медициналық және әскери симуляциялық қолданбалар, CryEngine мысалы. Бұл қолжетімділікті жеңілдету үшін жаңа аппараттық платформалар енді ойын қозғалтқыштарының нысанасына айналды, оның ішінде ұялы телефондар (мысалы, Android телефондар, iPhone) және веб-шолулар (мысалы, WebGL, Shockwave, Flash, Trinigy's WebVision, Silverlight, Unity Web Player, O3D және таза DHTML). Сонымен қатар, көбірек ойын қозғалтқыштары Java және C#/. NET (мысалы, TorqueX және Visual3D. NET), Python (Panda3D) немесе Lua Script (Leadwerks) сияқты жоғары деңгейдегі тілдерге негізделген. Көптеген 3D графикалық ойындар қазір көбінесе GPU шектеулі болғандықтан (яғни графикалық картаның қуатына байланысты), жоғары деңгейдегі тілдердің аудармасынан туындайтын баяулау әсері еленбейді, ал осы тілдер ұсынатын өнімділік артықшылықтары ойын қозғалтқышын дамытушыларға пайдалы. Microsoft сияқты компаниялар тәуелсіз ойынды дамытуды қолдау үшін осы трендтерді итеріп отыр. Microsoft XNA-ны Xbox және оған байланысты өнімдерде шығарылатын барлық бейне ойындар үшін таңдалған SDK ретінде жасады. Бұл кішкентай дамытушыларға арналған Xbox Live Indie Games арнасын қамтиды, олар бөлшек сауда сөрелерінде сату үшін ойындарды жинауға қажетті кең ресурстарға ие емес. Ойын қозғалтқыштарын басқарылатын аяларды қолдайтын платформалар үшін жасау одан да оңай және арзан болып келеді.
Ойын қозғалтқыштары саласы
Ойын қозғалтқыштарын жасаушылар пайдаланушыларға өнімдерін қалай пайдалануға мүмкіндік беретінін өздері шешеді. Ойын индустриясы болғандай, оның негізіндегі қозғалтқыштар да – индустрия. Басты ойын қозғалтқыштарының бағасы әртүрлі: абоненттік төлем немесе лицензиялық ақы түрінде. Unity және Unreal Engine қазіргі таңдауда ойын дамытушылары үшін ең танымал екі нұсқа. Әр түрлі ойын қозғалтқыштары арасындағы ерекшеліктер олардың үстіне өз құралдарын орнатқанда нашарласады, бірақ әртүрлі ойын дамытушылары бір жүйеге үйреніп кеткендіктен өзгергісі келмейді немесе мұндай қозғалтқыштардың үлкен пайдасынан, төлемдерге қарамастан, тартылуы мүмкін.
Ойынның орталық бағдарламасы
Терминнің кең мағынасында ойын қозғалтқыштарын аралық бағдарламалық құрал ретінде сипаттауға болады. Алайда, бейнеойындар контекстінде "аралық бағдарламалық құрал" термині көбінесе ойын қозғалтқышы ішіндегі функционалдық жүйелерді білдіреді. Кейбір ойын аралық бағдарламалық құралдары тек бір ғана нәрсе жасайды, бірақ оны жалпы мақсаттағы аралық бағдарламалық құралдарға қарағанда сенімдірек немесе тиімдірек орындайды. Функционалдық ішкі жүйелерді қамтамасыз ететін ең көп қолданылатын төрт аралық бағдарламалық пакетке RAD Game Tools-тың Bink, Firelight FMOD, Havok және Scaleform GFx кіреді. RAD Game Tools негізгі бейнелерді көрсету, Miles аудио және Granny 3D рендерингін жасау үшін Bink-ті әзірлейді. Firelight FMOD – төмен құнмен берілетін, сенімді аудио кітапханасы және құралдар жиынтығы. Havok берік физикалық симуляция жүйесін, сондай-ақ анимация және мінез-құлық қолданбаларын ұсынады. Scaleform жоғары өнімділіктегі Flash UI және жоғары сапалы бейне ойнату үшін GFx-ті, сондай-ақ ойындағы азиялық чатты қолдау үшін кіріс әдісі редакторын (IME) ұсынады. Басқа аралық бағдарламалық құралдар өнімділікті оңтайландыру үшін қолданылады, мысалы, "Simplygon" деңгейлік егжей-тегжейлілікті оңтайландыруға және жасауға көмектеседі, ал "Umbra" 3D графикада көріністің жасырылуын оңтайландыруды қосады. Кейбір аралық бағдарламалық құралдарда толық бастапқы код бар, ал басқалары тек компиляцияланған екілік кітапхана үшін API анықтамаларын ұсынады. Кейбір аралық бағдарламаларды лицензиялау екі жағдайда да мүмкін, әдетте толық бастапқы код үшін жоғары төлем талап етіледі.