Игровой движок

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Игровой движок (англ. Game Engine, гаме энгинэ) — известный абсолютно всем школьникам и геймерам от мало до велика, главный центральный программный компонент видеоигр или других интерактивных приложений с графикой, обрабатываемой на ЭВМ в реальном времени, который породил множества древних и неугасающих мемов, который всегда у всех геймеров на слуху, особенно перед выходом какой-нибудь новой супер популярной игры.

Preamble[править]

Обеспечивает игровой движок основные технологии, упрощает разработку и часто даёт игре возможность запускаться на нескольких платформах, таких как игровые консоли и настольные операционные системы, например, GNU/Linux, Mac OS X и Microsoft Windows, хотя портирование приложений на разные платформы это геморрой, который остаётся и по сей день.

Features[править]

Игровой движок, включает в себя движок рендеринга («визуализатор»), физический движок, звуковой движок, систему скриптов, анимацию, искусственный интеллект, сетевой код, управление памятью и многопоточность. Часто на процессе разработки можно сэкономить за счёт повторного использования одного игрового движка для создания множества различных игр, хотя по ощущениям и взаимодействию с игровым миром всё равно чувствуется один и тот же движок с новыми декорациями.

Development[править]

Сложнее всего не написать сам игровой движок, а написать под него удобный инструментарий (SDK) и сделать движок гибким следуя старой главной парадигме процедурного программирования о повтором использовании кода. Именно на это у мелких конторок обычно и не хватает времени, поэтому сначала пишут игру поддаваясь творческим амбициям и кое-какие простенькие инструменты для комфортной работы с движком а после этого, если игра успешно продалась и конторка не закрылась, уже отделяют общие части движка от самой игры дабы приступить к написанию новой. Именно по этому первой игрой на каком-либо популярном движке была именно игра от самих разработчиков движка, примеры Crysis (CryEngine), Unreal Tournament (Unreal Engine) и именно по этому название движка так похоже на название первой игры на нём, хотя есть и исключения такие как Unity. Вообще такой подход почти везде в разработке программных продуктов в мелких фирмах.

Абсолютно новый движок[править]

Лучшим коммерческим ходом маркетологов компаний по разработке игр является заявление о том, что в новой версии их игры они использовали абсолютно «новый революционный движок™». Просто так повелось ещё со старых времён, это фраза действует на геймеров как фраза «я люблю тебя» на девушек. Если хочешь трахнуть трезвую шкуру поскорей, то обязательно признайся ей в любви, если хочешь выгодно продать новую часть игры (сотую по очереди, где нет ничего нового), то обязательно заяви о новом движке и не показывай технические данные приложения игрокам, про консоль отладки забыли как о пережитки прошлого. На самом деле переписывать движок достаточно затратно поэтому никто этого не делает, их обычно только дорабатывают ибо не надо менять то, что и так давно и хорошо работает. Одни и те же игровые движки используют десятилетиями ибо всё давно уже придумано и со временем добавляются лишь мелкие плюшки. Поэтому среди разработчиков так популярны системы контроля версиq, чтобы всегда можно было откатиться туда, где всё ещё работало.

Если работает — не трогай!
— Старая программерская мудрость

В реале дело не в движке, а в его оптимизации под новые системы, чтобы движок максимально использовал все возможности новых вычислительных машин. И вообще, графика зависит не от движка, а от вычислительной мощности видеокарты. Добавить полигончиков можно только если увеличить минимальные системные требования, а это урезает число потенциальных покупателей. Поэтому это скорее маркетинг, а не разработка.

Если при исполнении возникли ошибки, то перекомпилируй.
— Программерская тупость, но иногда работает, особенно когда проект огромный и ты сам не знаешь откуда, что взялось

Новый движок можно сравнить с новой версией любого браузера, который, по обнадёживающим заявлениям разрабов, более быстрый и надёжный. На деле вся скорость (получение данных по сети) прямиком упирается в ширину интернет канала, а производительность (разбор кода, постройка DOM, разбор скриптов и рендер) в вычислительную мощность процессора и иллюзий здесь быть не может.

Бытует расхожее мнение, что написать свой собственный трёхмерный движок ну очень сложно. Якобы для этого надо, за много лет изучить весь курс матана, в совершенстве знать математику, продать душу Дьяволу и принести в жертву девственницу. Действительно написать визуализатор можно за считанные часы.

На самом деле, всё зависит от того с чего начинаем писать. Вся симуляция физических законов уже заложена в физические движки, а векторная алгебра уже имеется в библиотеках визуализации (и в утилитах для них, так в OpenGL можно самому не писать отсутствующие там алгоритмы просчёта и создания перпендикуляров к поверхностям для правильной трассировки света и его отражения), тебе остаётся только подключить всё это и быдлокодить своё дерьмо. Если начинать с ассемблера (писать свою графическую библиотеку под конкретное железо), то и всей жизни может не хватить на написание своего движка. Если же не изобретать велосипеды и использовать готовые компоненты (библиотеки в которых уже всё есть), то набыдлокодить в одиночку свой простенький 3D двиг можно спокойно за пару часов или за день. Большинство всяких неизвестных движков (под конкретные говно игры) были написаны за пару недель/месяцев командами из пары человек, это конечно не касается гигантов индустрии, которые пишутся командами по 20-50 человек.

Если писать под Windows, то одних компонентов Microsoft DirectX хватит на всё, там и графический визуализатор, работа в вводом, сетью, звуком и всё, что только надо. Под Linux посложнее ибо придётся собирать набор библиотек для работы со всеми составляющими (OpenGL, OpenAL, Simple DirectMedia Layer, ODL, etc).

Создание игры на своём движке[править]

Если ты написал свой двиг, то не спеши радоваться и думать о том как ты сделаешь супер игру, которая будет крайне популярна в Steam, всё самое сложное и запаренное только впереди. Свой движок это не более 20 % от всего времени создания полноценной игры. Создание самой игры на движке это самая творческая и заёбная часть создания полноценного продукта. И если создавать свои 3D модели персонажей в пакетах трёхмерной графики ещё интересно, то чем дальше, тем хуже. Больше всего всех бесит скриптовать процессы и сцены. Самое нудное это вручную анимировать кат-сцены так как это прошлый век и все мало-мальски серьёзные конторы уже давно используют motion capture ещё со времён GTA San Andreas если не раньше. В древности была такая ситуация, что если разработка некоммерческая, то с большой вероятностью игра в свет так и не выйдет так как писать надо много и через пару дней/недель/месяцев всё это сильно надоедает, так же как и секс с женой через пару лет брака. В новейшем же времени (в 21-ом веке и далее) любую самодельную небольшую демо-игру можно выложить не только где-нибудь на торрент-трекерах, но и на крутых и уважаемых сервисах цифровой дистрибуции, вроде Steam, получив какой-нибудь аналог программы «Green light».

Telepuz 2.jpg Человек современный игры разные ценит весьма
МетаRPGИгровая консольШтампы в компьютерных играхИгровой движокТиммейтМассовый запрет игровых видео на YouTubeРейтыАгроWarcraft III — не канонАвтокликерДонат в игры из РоссииАрхидьявол (Герои 3)Лесные тени (Герои 3)Это собака?Blizzard измеряет соцсправедливостьЭто игра?Дроп (видеоигры)Надо, чтобы на КЧ напалПол это лаваКоллекционная играШахматная доскаВизуальная новеллаКонсольТяжёлые танки (World of Tanks)САУФлеш-игрыЛёгкие танки (World of Tanks)Консоле-холопыDe dust2Средние танки (World of Tanks)Кризис переводов современных видеоигрКомпьютерное зрениеТокенОтсутствие МефистоБоязнь женской грудиMad Detective and Super AbbieCs.rin.ru
RTSCommand & Conquer (Red Alert) • Company of Heroes 2Dune 2Dungeon KeeperDwarf FortressHomeworldStarCraftTotal AnnihilationTransport TycoonWarcraft IIIWarCraft (Дота: DotADota 2) • Warhammer 40K (Словарь) • Warcraft III: ReforgedСталин против марсианВластелин Колец: Битва за СредиземьеЖульничество в шахматахРусская кибердеревняShadow of the ErdtreeMulticrew Tank CombatHamster KombatОткрытый мирКастомизация персонажаDrakensang: The Dark EyeSword Art Online: Last RecollectionINDIKAArdenfallAzur PromiliaBlood Will TellSWORD ART ONLINE: Fractured DaydreamElden Ring против The Witcher 3Grand Theft Auto IV: The Lost and DamnedBirthright: The Gorgon's AllianceAr Tonelico: Melody of ElemiaПапкаDarksiders GenesisЧекпоинтRBK GamesChipin.GamesCheat EngineЗемля свободныхРед (персонаж)Bad PiggiesSpeedrun.comМоей сестры нетMurder Mystery 2Kat’s Run: Zen-Nippon K Car SenshukenFear & HungerВесёлая фермаPataponSoul KnightTrail OutIn Stars And Time
TBSCivilization • (Master of MagicMaster of Orion) • Disciples (Sacred LandsDisciples: Liberation) • Disciples II (Мод Норвежской Сёмги) • Disciples IIIHeroes of Might & Magic (Heroes of Might and Magic IIIIVВойны и денег) • Jagged AllianceKing's BountySeishoujo Sentai LakersTotal WarVGA PlanetsX-COMUFO2Extraterrestrials: Battle for MercuryКосмические рейнджерыФарм клоуновБольшая чёрная светящаяся сфераВойдзонаТень ОробиссаPlayMineFIFA (серия игр)Лунтик X: Проклятый омлетThe Legend of Zelda: Breath of the WildРуки Прочь (игра)BazaEnderaKZ IncTanks BlitzShadow Fight 2Hard Truck ApocalypseNever AgainShadow Fight 3EnlistedShadow Fight (серия игр)Бой с теньюProject ZomboidSharpshooter3dБакуганРаспуджовкаWho's Lila?Убийство АрхимондаNever Again 2Death Must DieHades IICall of Duty 3Stellar BladeSoldak EntertainmentГерои МальгримииПочему не ВайперAlternate Reality GamingНейтан ДрейкR.G. МеханикиEarthboundParappa the RapperГенеральский эффектСимулятор квадробераSubway SurfersКод доступа: РайAurora 4XОгромный боссЭпоха ремейков
RPGARPGArcanumBaldur's GateDark SoulsDeus ExDiablo (IIV) • FalloutGothicMass EffectMight and MagicPlanescapeTES (DaggerfallMorrowindOblivionSkyrim) • Vampire: the MasqueradeАллодыПокемоныElden RingTitan QuestВедьмак 3: Дикая ОхотаDiablo II: ResurrectedDiablo IIIGrim DawnFallout 4Mafia 3Path of ExilePlanescape: TormentMetal GearEscape from TarkovFableКорсары (серия игр)Русы против ящеров (игра)(Древние Ящеры Против Русов: Битва за Гиперборею) • Смута (видеоигра)Heroes of the StormMortal Kombat 1МусоуРоссийский The SimsIn the Wake of GodsCounter-Strike 2Найди отличияClash of ClansGTA: СмешарикиMarvel's Spider-Man 2ValorantЛесоморDriverSea of ThievesThe Coffin of Andy and LeyLeyСлавия: Русы против ящеровMy Summer CarS&boxУльтаГриферыS.T.A.L.K.E.R. 2Мобильная игра «Русы против ящеров»Крестики-ноликиФабрика (Герои 3)Слово чушпанаClash RoyaleДонатная помойкаChieftain: The Daughter of the FireМультиплеерFNaF 57: Freddy in SpaceГамблингАзартные игрыСеранаТерритория ТьмыGrand Theft Auto: Online Crime WorldNeed for Speed: Underground (2003)Fear the wolvesКалибр (игра)Метрон (игра)Wolfenstein 3DКосчессВолт-ТекPlanetary Annihilation: TITANSArdub92СасикSupermassive GamesСтарый богAbiotic FactorMafia: The City of Lost HeavenХагги ВаггиИл-2Принц Персии: Пески Времени
MMORPGAionCorovaneer OnlineEVE OnlineEverquest 2Granado EspadaKantai CollectionLineage IIProgress QuestRagnarok OnlineRF OnlineSecond LifeTimeZeroUltima OnlineWar ThunderWorld of TanksWorld of WarcraftАренаБойцовский клубОлолодыСчастливый фермерХаббоRAID Shadow LegendsAlbion OnlineWorld of WarshipsThe Lord of the Rings OnlineArcheageSurvariumPoint BlankBattle CarnivalSZone-OnlineШарарамClan WarsFatCatВидениеConsul WarGNU MetroRMTCodename: Sailor V - The GameFFAБедварсSkyrim: Anniversary EditionRymdkapselYeerk's campPixelPlanetHogwarts LegacyMetal: HellsingerX-COM: Terror From The Deep40K ROSIGMAThe X-Com FilesBrutal-OXCEEMPRESSМемные карточки ХС2048Копатель ОнлайнFall GuysТранситиPizza TowerDiablo: The HellMordhauBionic Commando (2009)ElonaГрим ОгнепыхUnteralterbachDiamond RushЕкатерина СтадниковаПижама СэмMr. NutzBaldur's Gate 3CrossoutEx luxBrawl StarsStandoff 2Царь Соломон и шахматыМасонские шахматыАвтошахматыAgar.ioInjustice 2Mega Man 4DirectDrawMister MixLSD: Dream EmulatorJet Set RadioSoul CaliburHigh on Life
ШутерыAtomic HeartBioShockBioShock 2BioShock InfiniteBloodCall of DutyModern WarfareCall of Duty: Modern WarfareCounter-Strike (CS:GO) • CrysisDead SpaceDoomDuke Nukem 3DHalf-Life (Garry's ModHalf-Life 3) • HitmanLeft 4 Dead (2) • Max PayneMetro 2033PostalQuakeSerious SamSingularitySystem ShockUnrealWolfensteinS.T.A.L.K.E.R.Team Fortress 2Шутер про Вторую МировуюCounter-Strike 1.6PUBGWatch DogsArmaBattlefieldContract WarsCross FireOperation Flashpoint (серия игр)Метро-2 (игра)Natsume! The Girl Warrior!Modern Combat VersusDenuvoRTXSpeedrunАдамант МультимедиаДмитрий РоммельДэвид МайерсRed FactionDarkБагоюзерствоЭпоха КлоновRed Dead Redemption 2CelesteАчивкаSega NomadВетераны ВОВРуслан ДиденкоМоршуNeed for Speed Most WantedМногоходовочка (игра)Олег ЯворскийЧерноруссияRagDollСаня ТропинGiboSteam MachinesЭльф-торговецHD-изданиеKane and Lynch 2: Dog DaysFor HonorИнди-хитыLegend of Total WarМидирGrimtoolsИгра в настольные игрыМетарабыПавел БурзаNetHackГюнтер о'ДимКирилл Баранов (Пятёрка)FunpayКанобуGwent: Rogue MageТюрягаРенфриOutlast 2Кастомизация оружияБетрезенResident Evil 7: BiohazardMarvel's Spider-ManRobloxFlatOutThrone and LibertyГенератор случайных чиселDisable Core 0HvHРомхакингCastle Cat (серия)
Action-adventureActionAssassin's CreedGrand Theft Auto (СерияIIIIIIVVice CityChinatown WarsSA:MP) • Legacy of KainLost VikingsMafiaMinecraftPortalPrince of PersiaPrototypeResident Evil (4) • Space Station 13Splinter CellThiefTomb RaiderUnchartedGrand Theft Auto: San AndreasManhuntWheelmanWatch Dogs 2D&D OnlinePrime WorldWorld of WarplanesCrimeCraftPersona 2Rise of NationsCookie ClickerHumble Indie BundleТактические шутерыPersonaStar Wars: The Old RepublicSword Art OnlineВиртономикаLife is StrangeHeroes & GeneralsNew TekkenМор. УтопияE3Настольные ролевые игрыKenshiTransformiceJade DynastyQuest for GloryAsphaltAmong UsBattletechMagickaDragonStrikeГорький-17МеркиDayZNeverwinter NightsOutsideSonyChris-chanSuffer: Secluded quiet placeThe Wizard of Oz: Beyond the Yellow Brick RoadSourceНастольная играQuake IIQuake 4Смерть (Phasmophobia)Poppy PlaytimeRap Rat
КвестыDemonophobiaLeisure Suit LarryNeverhoodPhantasmagoriaSam & MaxStanley ParableSyberiaThe Legend of KyrandiaYume NikkiРусские квестыТургорKyrandiaInitial DWhen They CryBattlefield 3Guild Wars 2DeepRockGalacticIngressKingdome Come: DeliveranceРетрогейминг HDCrash BandicootDefragDEFCONStreet FighterФайтингиMoswar.ruFahrenheitTekkenRocket LeagueBattlestar Galactica OnlineWarfaceFive Nights at Freddy'sResident EvilSilent Hill (P.T.) • The Last of UsOutlastCodename CUREActive WorldsMr.PresidentMinecraft: Story ModeDark VoidDirectStorageDragon's Dogma 2Titan Quest 2Xbox Турция: Алярм, суки, аккаунты горят!KazioUndertale Yellow5 ночей с ТимохойИгру убилиWatcher of RealmsHeroes of Might and Magic: Olden EraБарбоскины (Roblox)Женщина на корабле к бедеУправление рандомомИвентТрассировка фотоновHZB OcclusionTressFXLove, Money, Rock'n'RollSchoolBoy RunawayКомпьютер ЁжикаNeed for Speed: Underground 2DDrawCompatСнежок (серия)Объективный обзор игрПлотва
ПрочиеВайфугеймFate/Stay NightKatawa ShoujoPhoenix WrightTsukihimeUmineko no Naku Koro niHigurashi no Naku Koro niБесконечное летоDoki Doki Literature Club!Yandere SimulatorSteins;GateКвадратные кроссвордыИстории Дида: МультивселеннаяDiablo IIПочему титаны слишком большого размера? (Хроники Хаоса)Души тьмыSegaФоллаут-онлайнГейлендКамень, ножницы, бумагаBASKACombats.ruАббревиатуры имени МедоксаОлег СтавицкийТанки ОнлайнThe Binding of IsaacUndertaleHotline MiamiМобильные игры • ККИ (ГвинтБерсерк (ККИ)Yu-Gi-Oh!) • Гача-игры (Genshin ImpactDiablo Immortal) • АвтобаттлерОнлайн-игрыMOBABeat 'em upСкурвившиеся игрыТанки free-to-playZumaLuxorStar RealmsHearthstoneGuilty GearKiller InstinctMortal KombatEliteF-19Guitar HeroKerbal Space ProgramSporeThe SimsДальнобойщикиИл-2 ШтурмовикPokemon GoАвиасиммерRustLockONKingpin: Life of CrimeAction 52Angry BirdsAnother WorldBattletoadsCarmageddonChip-chan KickContraCrimsonlandDangerous DaveDiggerEarthworm JimElasto ManiaFlashbackNekketsuPacmanGeometry DashRobot Unicorn AttackRockmanSnake Rattle 'n' RollStar ControlTouhou ProjectWorld of GooWormsВангерыОхотник на педиковПозвоните КузеСапёрТетрисХроники ХаосаNo Man's SkyPlague IncNeed For SpeedCave StorySpyroComix ZoneStar ConflictRockman 2: Dr. Wily no NazoSonic the Hedgehog (16 бит)Sonic the Hedgehog 2 (16 бит)Sonic 3 & KnucklesRockman 3 Dr. Wily no Saigo!?Candy Crush SagaТапалки в ТелеграмеAmong The SleepGLaDOS
Моды, карты и васянствоЛегенда о ТильдеParagonHorn of the AbyssJebus CrossX-PiratezOpenXComJebus OutcastThe World of Terrifying Silence6lm10a (шаблон)VANOMAS DEMO5 ночей с Тимохой 2: ДеревняСильная прокачкаSteampassФреймрейтNVidiaВзрыв лута
Игры реалаLEGOMagic: The GatheringБерсеркГоДоминоКамень-ножницы-бумагаКубик РубикаМонополияНа раздеваниеПокерПреферансРусская рулеткаСтрайкбол / Пейнтбол / ХардболШахматыЭкономические игры с выводом средств