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

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску
Genderqueer.jpg
Этот материал изначально был размещен в вики-энциклопедии Lukomore.org Ефремова, сохранён в архивных целях и пока что не был проверен человеком. До проверки в статье может содержаться сомнительная информация, упоминаться запрещённые в России организации и действия, которые мы осуждаем. Если вы заметите что-то не то, пожалуйста обратитесь к администрации, и материалы будут переписаны и доработаны. До проверки администрация не одобряет и не поддерживает то, что написано в статье.

Игровой движок (англ. 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 измеряет соцсправедливостьЭто игра?Дроп (видеоигры)Надо, чтобы на КЧ напалПол это лаваКоллекционная играШахматная доска
RTSCommand & Conquer (Red Alert) • Company of Heroes 2Dune 2Dungeon KeeperDwarf FortressHomeworldStarCraftTotal AnnihilationTransport TycoonWarcraft IIIWarCraft (Дота: DotADota 2) • Warhammer 40K (Словарь) • Warcraft III: ReforgedСталин против марсианВластелин Колец: Битва за Средиземье
TBSCivilization • (Master of MagicMaster of Orion) • Disciples (Sacred LandsDisciples: Liberation) • Disciples II (Мод Норвежской Сёмги) • Disciples IIIHeroes of Might & Magic (Heroes of Might & Magic 3IVВойны и денег) • Jagged AllianceKing's BountySeishoujo Sentai LakersTotal WarVGA PlanetsX-COMUFO2Extraterrestrials: Battle for MercuryКосмические рейнджеры
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Корсары (серия игр)Русы против ящеров (игра)(Древние Ящеры Против Русов: Битва за Гиперборею) • Смута (видеоигра)
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 Wars
Шутеры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 Versus
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 2
АркадыAction 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
СимуляторыEliteF-19Guitar HeroKerbal Space ProgramSporeThe SimsДальнобойщикиИл-2 ШтурмовикPokemon GoАвиасиммерRustLockONKingpin: Life of Crime
ФайтингиGuilty GearKiller InstinctMortal Kombat
КвестыDemonophobiaLeisure Suit LarryNeverhoodPhantasmagoriaSam & MaxStanley ParableSyberiaThe Legend of KyrandiaYume NikkiРусские квестыТургорKyrandia
Survival horrorFive Nights at Freddy'sResident EvilSilent Hill (P.T.) • The Last Of UsOutlastCodename CURE
Визуальные романыВайфугеймFate/Stay NightKatawa ShoujoPhoenix WrightTsukihimeUmineko no Naku Koro niHigurashi no Naku Koro niБесконечное летоDoki Doki Literature Club!Yandere SimulatorSteins;Gate
ПрочиеМобильные игры • ККИ (ГвинтБерсерк (ККИ)Yu-Gi-Oh!) • Гача-игры (Genshin ImpactDiablo Immortal) • АвтобаттлерОнлайн-игрыMOBABeat 'em upСкурвившиеся игрыТанки free-to-playZumaLuxorStar RealmsHearthstone
Моды, карты и васянствоЛегенда о ТильдеParagonHorn of the AbyssJebus CrossX-PiratezOpenXComJebus OutcastThe World of Terrifying Silence6lm10a (шаблон)VANOMAS DEMO
Игры реалаLEGOMagic: The GatheringБерсеркГоДоминоКамень-ножницы-бумагаКубик РубикаМонополияНа раздеваниеПокерПреферансРусская рулеткаСтрайкбол / Пейнтбол / ХардболШахматы