Что такое компьютерная игра супер марио 64
Решил поделиться своим знакомством с этой игрой, давным давно когда я был совсем шкетом, летом меня отвезли в деревню, там меня встретил дедушка со словами "у меня для тебя подарок" и вручил черный пакет где внутри лежала с разбитым корпусом серая Денди, с 1 геймпадом, тюльпанами и всего 2 зелеными плашками без оболочки.
Словами не описать на сколько я был рад, в то время я лишь слышал что такое приставка, но никогда в живую не щупал, это было нечто потрясающим, но откуда он её взял?
Какая то шпана решила украсть яблоки с огорода, дед выстрелил солью в небо и пацантре убежало в страхе оставив все свои вещи, пакеты, там и была заветная приставочка.
Забавно то, что владелец денди потом стал полицейским.
Что же за игры мне перепали? Возможно парочку забыл, но точно были
Battle city, Bomberman, ExciteBike, оригинальный Mario Bros и конечно же сам Super Mario Bros.
Что удивительно, но залипал я больше всего именно в Super Mario Bros, тогда как все мои знакомые приходящие поиграть просились в танчики, интерес подогревал к этой игре и случайно найденная телепередача.
И вот спустя 20 с лишним лет, в 2018 году на свой день рождения я купил себе вот такой бандл
Обидно, что игра шла цифрой, учесть что 3D All-Stars и 3D World буду брать на карике, придётся на авито искать или коробку или саму игру за 2к где то, всё ради колекции.
видел пару скринов из Зельды, и знал что Марио еще жив и популярен. (Хотя 1 раз у друга на пьяной тусе играл в Pikmin 3, но это не считается ведь помню оттуда мало что, кроме того факта что игра была сложна в управлении но очень затягивающей.)
иии да, реклама не соврала, режим ностальгии активировался и удрал по головушке дай боже.
А вчера я закончил эту игру на 100%
Расскажите и ты свою историю знакомства с этой легендарной игрой и серией, и как ты вообще относишься к играм про марио? не только серии Super, но и спиноффы.
P.S. я знаю что персонаж появился раньше и ему больше 35 лет, юбилей у серии "Super Mario".
P.P.S. за грамматические ошибки сори, и ваше я в другом городе что ты мне сделаешь?
Это мой первый пост, надеюсь теги, раздел, и оформление сделал хоть немного да правильно, надеюсь.
Я уже лет 15 не слышал этого слова.
не знал как еще смешнее назвать деревнскую гопоту.
Я вообще никогда не слышал это слово раньше.
Правильный байт: в этой игре геймплей и сюжет интереснее, чем в tlou 2.
В рашке вообще понятия ААА не было. Было норм, говно и ахуенно.
В Рашке её кстати никто за AAA никогда не считал, потому что она в 99% была на картриджах с говно-играми 9999in1.
это и обидно, и к тетрису у нас относились не очень уважительно, тогда как во всем мире эта игра была номер 1.
Как раз прокачанных графически и по звуку игр в России и не было, ибо на левых картриджах никто не ставил дополнительные чипы под эту тему
Единственный Марио, который я прошёл в те времена (чуть попозжее) был Super Mario Land на Гейм Бое. Ух, прекрасная была вещица, прекрасности которой способствовали лето и гамак.
А потом в жизнь пришла Сони и Нинтендо забылась(
Пока однажды не попробовал Свитч у друга: удобство джойконов и Зельда сыграли своё. Приставка была куплена, а с ней на волне хайпа и Марио Одиси. После запуска у меня возникло ощущение, что до этого я не играл в игры, такого чистого фана от геймплея давно не испытывал.
Ну а теперь жду и all star 3D, и 3D World (Land пройдена). Ну и нового Марио, конечно.
>на Гейм Бое
эх завидую, сейчас будучи взрослым и с доступом к интенрету понимаю, какие игровые возможности дети СНГ упустили.
У меня Дэнди не было, сначала был пиратский(возможно, а может и нет) atari 2600, со встроенными больше сотни игр, ,купленный отцом моряком на канарах. В 1993 году я должен был ехать с мамой встречать отца в Питер, но заболел ( ну нехуй было 30 октября ходить купаться на море. Да я живу на черном), а когда они приехали. Отец мне сказал, мол они смотрели денди, но там картинка не хуже чем у тебя. ( Ну тогда я не знал, что разница между atari и денди под 10 лет). А 1995 мне купили сегу(кстати раздрочена, но жива). Потом были в основном ПК, а в прошлом году, знакомому были нужны деньги и он срочно продавал xbox s, ну я и помог. Стоп, запутался. В общем Switch я купил в 2018. И доволен полностью. А мой друг теперь по моему заказу ищет физическую версию нового сборника Марио. Как то так.
Мальчик Дима (пока 36 лет))))
Марио это развлечение для взрослых, а борода есть?
И мир изменился
Всем рекомендую Супер Марио Ран на телефон. Его почти всегда игнорируют или за что-то хейтят, но игра очень классная, особенно если гоняться за самыми редкими чёрными звёздами.
У меня денди в детстве не было, сразу сегу купили, но Марио видел и немного играл у соседей и он мне всегда тогда казался очень крутой игрой. Было очень жаль, что у меня консоль вроде и круче, а Марио на ней нет (и еще Чипа и Дейла).
Ну и потом 20+лет в Марио не играл, только знал, что серия живет очень хорошо. Ну и вот год назад взял себе Свитч и первой игрой Марио Одиссею купил.
Мое знакомство с SMB было наибанальнейшим.
Сидел с сестрой дома. Приехали родители с работы, дали Денди, подрубили к ч/б телеку, играю.
Но тогда я даже не предполагал, как дорого обошлась игровая консоль им, преподавателям в нелегкое для всех время. Помню, как сам подсчитывал растраты на неделю, остаток "казны", но и не думал, что мое "развлечение" тоже стоило немалых денег.
Сам Марио заиграл до дыр. За полгода уже спокойно юзал основные варпы мимо уровней 4-4 и 7-4, проходил игру на 2 и 3 круг с усложненными мобами. Очень жаль, что в детстве не была SMB 3.
До сих пор иногда играю. Иногда пытаюсь "спидранить", но чаще просто спасаю принцессу в стопиццотый раз пока чайник греется. С месяц назад даже случайно нашёл невидимый кубик с жизнью, про который не знал. Мало какая игра способна удивить чем-то новым более четверти века спустя с момента первого с ней знакомства.
Во времена nes/денди мне нравились battle toads, double dragon, tmnt вот те, которые на прохождение, да хоть tmnt tournament, zen и прочие, а если удавалось достать какую-нибудь 8in1, на которой были contra, green berets, jacal, wrestlemania и т.д., то это было просто эпохальным событием, а потом, когда случилась sega, были десятки игр в коллекции, которые просто обожал, вроде dune tbfa, beyond oasis, comix zone, vectorman, landstalker, да просто все не вспомнить, тот же virtua fighter ещё, даже какой-нибудь экзотический generation lost с light crusader и многое другое.
Но, никогда мне не нравилась mario, простите.
И, более того, она никому не была нужна тогда и считалась мусором, ну вот то, что ты получаешь вместе с консолью на картридже, вместе с утками и танчиками и прочим непотребством, да и как мог нравится mario, да или тот же yoshi's island, когда кругом было столько куда более красивых и интересных игр, не знаю.
Согласен. Или вдвоем в ниндзя-туртлов рубились или всякие нинзя рюкенден, повер блейд, батлтоц, черный плащ и прочее рубились. Марио как-то никому не нужен был, это как галага или лод ранер было - все знали эти игры, но никто не играл. То, что Марио это прям культовая игра, я узнал значительно позже. Лично меня, к сожалению, не цепляет. Пробовал галакси и одиссею, не понимаю, что там культового. Моя нинтенда это зельдочка, метроиды и ксеноблейды - вот их нежно люблю.
Потому что времена актуальности Денди у нас это уже времена актуальности SNES в остальном мире. Super Maio Bros. вышла в 1985 году. А Battletoads вышла в 1991 году, в тот же год, когда в США вышла SNES. Естественно одна из самых поздних игр для NES выглядела гораздо лучше игры, вышедшей незадолго после релиза NES.
Super Mario World вышла в 1990 году и выглядела прекрасно для своего времени, но у нас SNES начала продаваться только в 1994 году и её даже тогда мало кто покупал.
Даже Super Mario Bros. 3, вышедшая в 1988 году, у нас была не очень распространена, пираты её особо к нам не завозили почему-то.
Ларчик открывается очень просто. Игры середины 80-х на фоне игр 90-х выглядят так, как они и должны выглядеть - пастгеном.
да и как мог нравится mario, да или тот же yoshi's island, когда кругом было столько куда более красивых и интересных игр, не знаю.
Серьёзно? Yoshi's Island некрасивая игра? Мне всегда казалась одной из самых крутых по арт-дизайну среди всех игр четвёртого поколения консолей. Правда, конечно, впервые её увидел в 25, несколько лет назад, а не в детстве
Так хорошо начиналось, а в конце.
да и как мог нравится mario, да или тот же yoshi's island, когда кругом было столько куда более красивых и интересных игр, не знаю.
Купил месяц назад 3ds xl, до этого последний раз играл в марио на денди. Начал с paper world sticker star, затянуло.
когда покупал пепер марио на сыча, оригами кинг, был настроен максимально нейтрально, первые 3 часа та ваше были унылыми, но потом что то щелкнуло и всё.. лучшая игра на свиче, затянуло так сильно что аж страшно стало, вроде 40 часов наиграл, а так мало и хочется еще.
заинтересовался серией Пепер, а как все говорят, на 3дс стикеры были одни из самых лучших.
Хотел в GameStop, в Мюнхен в феврале, купить новую 2ds за 45 евро, но так как я был с приятелем с двумя мелкими детьми, он просто взглядом умолял при них не покупать)) думал поехать в Германию ещё в мае, но карантин все испоганил.
тебе было с чем сравнивать, у меня же это была чуть ли не первая "большая" игра в жизни.
учесть что и время было уже позднее для денди.
Потому что игра была выдающейся для времени своего выхода, а она вышла в 1985. В 1993 уже несколько лет на рынке продавались SNES и Super Mario World. Естественно игра из середины 80-х, которая создала основы жанра и на которой многие идеи были обкатаны впервые, на фоне игр 90-х выглядела пастгеном, которым она собственно в те годы и являлась. 8 лет, особенно тогда, это не шутки.
35. Марио старше меня блин. И ведь если подумать, это такая игра которая не устареет,, просто потому что стареть там нечему. Даже не представляю чтобы я в этой игре докручивал кроме графона. возможность сохраняться разве что
на самом деле Марио 39 лет уже, впервые он появился в игре в аркадной Donky Kong.
Никогда не забуду «темнейшую сторону Луны» 😅 четыре часа на неё убил)
Однако вроде как «100%» в этой игре это когда все луны собраны)
Насколько я знаю, то после прохождения игры «на 100%» там ещё можно очень долго собирать оставшиеся луны (которые звёзды)) ).
В каждом мире ещё пару часов есть что делать)
3 дня проходил, в итоге в идеале зазубрил путь до птиц с клювом, а там уже случайно с 1 раза прошел дальше.
Насколько я знаю, то после прохождения игры «на 100%» там ещё можно очень долго собирать оставшиеся луны (которые звёзды)) ).
да тёмная луна открывается раньше, но я проходил ВСЕ миры на 100% лун + монеты, и как финальный мир пошел на тёмную сторону, что из-за начала локации, а так же текста шляпы вызвало еще больше эмоций.
Nintendō ni yoi gēmu o arigatō.
Конечно же денди и многоигровочный картридж с первой частью. Лично для меня SMB1 - игра, которая при всей своей простоте умудрялась увлекать в детстве, умудряется увлекать и сейчас. Одна из самых перепроходимых игр для меня пожалуй.
Про Nintendo правда я узнал не сказать что недавно - более 10 лет назад увлёкся эмуляцией, узнал, что оказывается была и SNES, и N64, и есть даже новейшие консоли от Nintendo. В другие игры серии Super Mario играть не сразу пробовал, так как запускал в принципе всё подряд. Но когда попробовал, понял, насколько они разные. Третья часть на NES ведь не менее прорывная - всего за три года в игру добавили действительно разнообразные и запоминающиеся миры, карту, инвентарь, новые поверапы, новых врагов и разных боссов. А стартовый Super Mario World для SNES предлагал уже единую карту, развилки и очень хорошую продолжительность с возможностью сохранять прогресс. Неудивительно, что на западе Сеге было не так уж и просто конкурировать с Нинтендой.
Но эмуляция эмуляцией, а попробовать когда-то настоящую консоль всё-таки хотелось. В итоге удалось подкопить на Nintendo 3DS и попробовать уже трёхмерный Super Mario 3D Land. Уровни в игре компактные, но их огромное количество, можно легко играть короткими сессиями, а можно и длинными. Игра очень затянула - собрал все звёзды и прошёл все уровни, включая самый сложнейший уровень в игре, с которым пришлось мучаться долго, всё-таки помимо доступных для всех и каждого игр Nintendo также умеет бросать вызов.
Сейчас уже пройдены все ньюшные Марио, помимо 3D Land ещё и 3D World пройден также на 100%, пройден Odyssey на 800 с чем-то лун, в том числе его сложнейшие уровни, из старых марио пройдены все несовские, беспощадный, но интересный Lost Levels, оба снесовских Ворлда, оба геймбоевских Лэнда, теперь в планах сыграть в SMB 64, Sunshine и Galaxy.
Игра вышла в 1996 году для Nintendo 64 и является классикой по сей день.
Принцесса Пич пригласила нашего водопроводчика в гости, но её как всегда украл Боузер. Он заодно и звёзды энергии украл и разбросал их по мирам. Чем больше звёзд, тем больше будет доступно уровней. Всего в игре 120 звёзд, но собирать все необязательно.
На уровнях теперь нет таймера (он был в предыдущих частях, кроме второй), а это значит, что можно в полной мере насладится локациями. Ах да, сами локации это не просто линейные уровни, а маленькие открытые миры. На каждом уровне есть несколько звёзд и подсказки для их получения. Для первой звезды на первом уровне, нужно было победить босса, а для второй звезды, обогнать черепаху.
Задания разнообразные, что позволяет растянуть удовольствие от уровня. Существуют ещё и скрытые задания и с ними прийдется попотеть.
По ходу игры можно получить разные способности. Можно получить летающую кепку и летать, можно получить металическую кепку и ходить под водой, можно получить невидимую кепку и ходить сквозь стены и врагов.
Марио умеет прыгать на врагов, бить руками и ногами, бить ногами в прыжке, хватать и бросать предметы и врагов, сидеть и делать прыжок из этого положения, танцевать, ползать, делать сальто, делать высокий тройной прыжок, далеко прыгать, прыгать от стен, скользить на животе и на корточках, плавать, гонять на панцире, летать на сове.
Вокруг игры ходили разные теории. Одной из такой была про Луиджи. Фанаты были разочарованы тем, что его нет в игре, но на локации с призраками они нашли это:
Фанаты сошлись на том, что тут написано "L is real 2401". Многие думали, что 2041 это количество нужных звёзд для открытия Луиджи. Сама Nintendo утверждает, что Луиджи в игре нет, но в 2004 они добавили его в Super Mario 64 DS для Nintendo DS. Можно было играть и за Марио, Луиджи, Йоши и даже Варио.
Игра была превосходно встречена и была коммерчески успешна. По данным за 2003 год, она продалась более 11 миллионов раз.
Игра очень популярна в спидране. Чтобы собрать все 120 звёзд на оригинальной Nintendo 64, спидранеру Cheese потребовался 1 час 37 минут и 50 секунд
Стоит ли играть в Super Mario 64? Мой ответ – нет. Лучше поиграть в Super Mario 64 DS. Там и графика поприятней, камера лучше , персонажей больше, и вообще там 150 звезд, а не 120.
Эмуляторы Nintendo 64 и Nintendo DS давно существуют, и потянет их любое ведро. Не стоит ставить крест на игре из-за графики, сюжета или из-за того, что она "детская". Это ведь единственные аспекты из-за которых нужно поставить крест на игре, да?
Почему не в подсайт "Nintendo"? Ответ прост. Там сидят люди, которые во всё это играли. Почему не в "Ретро"? У подсайта "Игры" довольно таки большой охват, и мне хотелось, чтоб как можно больше людей узнали об этой классной игре.
Если большинству понравится мой недо-обзор, то я наверное сделаю что-то подобное и по другим культовым играм.
Поклонник Super Mario 64 смог портировать проект на компьютер спустя 24 года после его выхода, не прибегая к эмуляции Nintendo 64. Портированная игра поддерживает DirectX 12 и совместима с трассировкой лучей.
Пользователям продемонстрировали трассировку лучей Паскаля Гилчера, с помощью алгоритма фонового затенения, с помощью эффекта отражения на поверхности объектов и расширенными эффектами глубины резкости.
С поддержкой DirectX удалось реализовать широкоформатный режим игры и увеличить разрешение. Автор эксперимента смог запустить Super Mario 64 в разрешении 4K при 550 кадрах/с на ПК с процессором Intel Core i7-7700K 4,5 ГГц и видеокартой NVIDIA GeForce GTX 1080 8 Гбайт. Он порекомендовал установить ограничение частоты на 30 кадров/с.
Как отмечается, выход порта для ПК не имеет ничего общего с недавней утечкой внутренних файлов Nintendo, относящихся ко временам Gamecube. Он стал прямым результатом усилий команды Zelda по декомпиляции ПЗУ Super Mario 64 в разборный код C — реверс-инжиниринга от простого двоичного до легко читаемого кода. На эти попытки ушло два года.
Первый шаг в реверс-инжиниринге ПЗУ N64 предполагает установление версии IDO-компилятора Silicon Graphics, которая была использована для создания ПЗУ. Затем нужно выяснить, как организовано ПЗУ, говорят энтузиасты. В играх N64 файлы упорядочены в 16-байтовые блоки, что облегчает просмотр «отступов», отмечающих конец файла. Отладочные сборки игры могут также помочь инженерам задокументировать ее структуру благодаря наличию несжатых файлов и макросов C, таких как __FILE__ и __LINE__, которые показывают внутренние имена, используемые Nintendo.
Чтобы получить пригодный для использования C-код, нужно вручную сопоставить побайтовый код с исходным кодом сборки всех функций в игре после выполнения через компилятор. Однако отдельные функции N64 могут выполняться с тысячами инструкций, и в одной игре N64 может быть несколько тысяч таких функций.
Сложность также варьируется в зависимости от игры. Для Super Mario 64 Nintendo скомпилировала исходный код без каких-либо необычных опций, и это означает, что декомпилированный язык ассемблера было проще преобразовать обратно в C-код. А, к примеру, в случае с Ocarina of Time Nintendo использовала флаги оптимизации для генерации более быстрого кода, и полученное ПЗУ намного сложнее превратить обратно в исходный код. После нескольких месяцев работы Zelda включила в С-код только около 15% функций Ocarina of Time.
Super Mario 64 — одна из самых важных и любимых игр в истории. Она задала стандарт для 3D-игр на критическом этапе развития отрасли и повлияла не только на игры для Nintendo 64, но и на проекты многих конкурирующих платформ.
Но как она работала? Происходило ли что-то интересное в головах Goomba, Koopa и и других врагов, которых мы встречаем на уровнях Bob-Omb mountain, Whomp’s Fortress и Tick Tock Clock? Давайте выясним это.
Дизайн NPC
Как и в основном скрипте поведений, в используемых NPC отдельных действиях поведений есть собственные функции begin() и update(). Я расскажу о самом интересном, что мне удалось там найти.
Как уже говорилось, все игровые объекты вычисляют своё расстояние и угол относительно Марио для рендеринга, однако многие NPC также используют эти данные для своей базовой логики. Игравшие в игру должны были это заметить, учитывая, как враги наподобие Koopa и Goomba реагируют на присутствие Марио.
Но кроме этого многие из них записывают местоположение своего «дома». Они хранят ссылку на то место в игровом мире, где они были созданы, или на близлежащее место. Эти данные используются, чтобы NPC приблизительно знали, в каком месте игры они появились при загрузке уровня.
Стоит упомянуть, что NPC в Mario 64 не могут вычислять что-то вроде сетки навигации, чтобы понимать, куда можно перемещаться в мире. Потому что на самом деле её нет: то, что мы теперь называем navmesh в игровых движках, появилось только в Quake III Arena в 1999 году. NPC наподобие Goomba и Koopa Troopa просто блуждают по окрестностям, пользуясь фиксированными правилами о том, насколько далеко они могут зайти, прежде чем изменить расстояние, и часто поворачиваются на фиксированные углы. Вы заметите, что чаще всего они остаются на поверхности, на которой были созданы, к тому же многие уровни Mario 64 не сильно заполнены объектами, поэтому им сложнее запутаться в препятствиях. Есть лишь несколько врагов, которые двигаются по платформам, но они не сваливаются с них только благодаря чистой удаче, или летают, когда что-то произойдёт на уровне кода.
Но когда они движутся, то часто уделяют внимание двум аспектам. Во-первых, они смотрят, не столкнутся ли со стенами, и если это так, то они отворачиваются от них. Но как объект знает, что он смотрит на стену? Есть функции, позволяющие ему разрешать коллизии на основании текущего направления, и в них часто есть возможности для поворотов. То же самое применимо, когда они смотрят на Марио, только это определяется не по точному направлению, а в секторе круга. В некоторых случаях, например, в случае Goomba, персонаж реагирует на Марио просто когда тот находится на определённом расстоянии до него, вне зависимости от направления взгляда.
Второй важный аспект для NPC — это текущее расстояние от «дома». У каждого NPC есть собственные правила относительно того, как далеко можно уходить от «дома», будь то общее расстояние (такая логика используется для Goomba и Koopa), или расстояние по определённой оси (логика Bob-Omb). В случае Boo это расстояние рассчитывается как радиус от исходной точки (вычисляемый движением по X и Z). Как бы то ни было, общее правило заключается в том, что они поворачиваются, берут направление к «дому» и начинают брести обратно в его сторону. Однако в некоторых случаях, в частности Bob-Omb и Bully, они возвращаются домой, если это считается безопасным, что определяется по близости Марио к «дому».
Эта логика описывает большинство персонажей, но у всех у них есть собственные уникальные особенности. Goomba делают резкие повороты от стен и дают задний ход к «дому», если общее расстояние слишком велико. Они преследуют Марио, если он слишком близко, вне зависимости от угла, в радиусе примерно 500 единиц. При этом перед погоней они всегда подпрыгивают. Для справки: единицы расстояния почти полностью совпадают с реальными сантиметрами. Марио имеет в игре рост 161 единицу, а согласно Mario wiki его рост составляет 155 см. Поэтому расстояние в 500 единиц до Goomba — это чуть меньше 5 метров.
У Koopa Troopa используется схожая логика, однако они убегают от Марио в пределах 300 единиц. В логике Koopa интересно то, что когда игрок прыгает на них, они могут потерять свой панцирь. Обычно они пытаются подбежать к панцирю, но довольно часто Марио слишком близко и это заставляет их отбегать. Однако если панцирь достаточно близко, несмотря на близость Марио, NPC рискует и залезает обратно в свой панцирь.
Как уже говорилось, Bob-Omb патрулируют окрестности в зависимости от того, как далеко они удалились по любой оси от своего «дома». Хотя, честно говоря, им сложно уйти на достаточно далёкое расстояние, не взорвав себя. Но в отличие врагов наподобие Goombas, когда Bob-Omb погибает, она запускает в коде респаун, создающий новую Bob-Omb там, где появилась предыдущая, после того, как Марио покинул уровень.
Другие враги, например Whomp, проверяют расстояние до «дома» и сравнивают с заданным расстоянием патрулирования. Оно устанавливается отдельно для каждого уровня. Whomp имеет одинаковое расстояние патрулирования на всех уровнях, за исключением Bowser in the Sky, где оно гораздо короче.
Heave-Ho, появляющиеся на уровнях Tick Tock Clock и Wet Dry World, тоже используют местоположения «дома» и Марио, но немного иначе: Heave Ho записывает местоположение «дома» в start. Но когда Марио приближается на определённое расстояние к «дому», персонаж начинает двигаться в его сторону.
Нельзя говорить о Mario 64, не упомянув рыб! Рыбы создаются в двух вариантах, синем и сиреневом. Кроме того, создаваемые стаи рыб тоже имеют два варианта: большая стая из 20 рыб и мелкая стая из 5 рыб. При создании в функции start рыбам придаётся разная начальная скорость (добавляется немного случайного шума), плюс их высота в воде тоже немного варьируется, чтобы они не были слишком скученны в одном месте.
Сами рыбы имеют довольно простой набор поведений, они поднимаются и опускаются, поворачиваются на фиксированный угол плюс случайный шум, а затем возвращаются обратно. Их высота обычно ограничена, чтобы они не поднимались слишком близко к поверхности воды, и если они оказываются слишком близко, прикладывается большая отрицательная вертикальная скорость. Единственным исключением является уровень Secret Aquarium, потому что на нём нет поверхности воды.
Чтобы рыба не слишком удалялась от исходной точки, она может двигаться в фиксированном диапазоне, примерно равном 700 единицам. Кроме того, стая обычно создаётся в 1500-2000 единицах от Марио на карте. 700 единиц означают, что на самом деле рыбы плавают в диапазоне всего менее 7 метров. А стая создаётся примерно в 15-20 метрах от Марио. Плюс рыбы реагируют на нахождение Марио в воде. Когда Марио находится менее чем в 150 единицах, они поворачиваются так, чтобы отвернуться от Марио и все ускоряются. Этому стандарту игровая индустрия продолжала следовать ещё много лет.
Nintendo 64 в 1996 году. Эта игра была одной из двух (трёх в Японии) тайтлов, доступных на старте продаж Nintendo 64. 7 января 2017 года продалось более 11 миллионов копий во всём мире [1] , и эта игра была названа бестселлером для Nintendo 64 всех времён. Она, также, вторая по популярности игра для виртуальной консоли Wii после Super Mario Bros.
Так как это первая 3D Mario игра, Super Mario 64 представила многие движения, которые используются почти в каждом следующем Super Mario тайтле.
Хотя это и не первый 3D платформер, Super Mario 64 кодифицировала многие аспекты управления и конвенции дизайна для жанра [2] . Эта игра широко признана как одна из лучших и самых важных игр за всё время [3] [4] [5] .
В 1996 году была представлена версия игры на диске для Nintendo 64DD, показанная на Shoshinkai 1996 [6] . В 2003 году игра вышла в Китае на консоли iQue. В 2004 году ремейк Super Mario 64 вышел для Nintendo DS под названием Super Mario 64 DS.
Super Mario 64 стандартизировала Чарльза Мартине как актёра озвучивания Марио и имя принцессы Тоадстул как Пич на Западе.
Открываем капот
Super Mario 64 уже исполнилось 25 лет, и хотя её искусственный интеллект может показаться довольно простым, нам важно понимать, что было в этой игре. Она является поворотным моментом в истории разработки игр. Это бестселлер платформы Nintendo 64, отражающий дух времени, когда разработчики игр переходили к 3D. Она сильнейшим образом повлияла на дизайн трёхмерных игр. Хоть она и не была первым 3D-платформером, да и первым 3D-проектом Nintendo, её наследие нельзя недооценивать. Такие дизайнеры, как Тим Шеффер и Майкл Джон подтверждают огромное влияние, оказанное игрой на их собственные проекты: Psychonauts и Spyro the Dragon. Некоторые аспекты, например, управление камерой, потребовали дальнейшей доработки, однако визуальный дизайн, анимация персонажей, движение игрока, структура уровней и миссий создали успешный шаблон для многих последующих игр.
Хотя ИИ проекта, без сомнений, очень прост, стоит проанализировать подход, использовавшийся Nintendo при структурировании и разработке поведений. Чтобы заняться этим, я скачал декомпилированный код Mario 64, выложенный на GitHub. Этот проект был опубликован в 2019 году, он стал одним из множества работ сообщества любителей декомпиляции, которые взяли на себя задачу реверс-инжиниринга сырого двоичного кода ROM-файла в узнаваемый, читаемый код на языке программирования C. Поэтому мой анализ строится не на исходном коде самой Nintendo, а на полученном реверс-инжинирингом коде, публично доступном и максимально приближенном к оригиналу.
Работа над декомпиляцией была вызвана не стремлением украсть ресурсы игры или создать новые порты. Это был механизм, помогающий спидраннерам находить новые хитрости. Для множества участвовавших в проекте разработчиков возможность функция за функцией собрать эту головоломку стала настоящей наградой. Декомпиляция подобного исходного кода даже в лучших случаях не была простой задачей. Ещё больше усложняла её необходимость в определении того, какие инструменты разработки использовались при создании игры в 1996 году. Чтобы декомпилировать подобную игру, нужно иметь представление о том, какакя версия компилятора Silicon Graphics IDO применялась для генерирования оригинального ROM-файла. Для тестирования всего этого необходимо эмулировать поведение комплектов разработки Silicon Graphics: SGI Visual Workstation, ведь именно их использовали разработчики, собиравшие игры для Nintendo 64. Это настоящий инженерный подвиг. Если вы хотите узнать больше об этой работе, в том числе и о трудах по декомпилированию таких игр, как The Legend of Zelda: Ocarina of Time, то прочитайте статью Arstechnica.
При правильной настройке декомпилированный исходный код позволяет скомпилировать ROM-файл для каждой региональной версии готовой игры (для рынков Японии, США и Европы). Однако для создания полностью играбельной игры вам всё равно нужна копия исходного ROM игры, ведь в этом проекте содержится только написанный сообществом исходный код. В нём отсутствуют внутриигровые ресурсы. Это значит, что нельзя просто скомпилировать его и получить бесплатную копию игры.
Сюжет
Марио перед картиной, которая служит входом к уровню.
Ниже приводится неофициальный перевод истории, данной на 4 и 5 страницах инструкции Super Mario 64. Цвета обозначают, кто говорит: Марио , принцесса Пич , Боузер , тоад , повествование.
«Марио, приди, пожалуйста, в замок. Я испекла для тебя торт. С уважением, принцесса Тоадстул.»
«Вау, приглашение от Пич! Я пойду прямо сейчас. Я надеюсь, что она может подождать меня!»
Марио так рад, что получил приглашение от принцессы, которая живёт в Грибном замке, что он быстро одевается в свою лучшую одежду и сразу же отправляется.«Хммм, что-то не совсем в порядке здесь. Так тихо. »
Стараясь избавиться от своего беспокойного предчувствия, Марио заходит в тихий замок, где его встречают неприветливыми словами:«Никого нет дома! А теперь проваливай! Бва, ха, ха.»
Звук, кажется, исходит отовсюду.«Кто здесь?! Я уже слышал этот голос где-то. »
Марио начинает обыскивать весь замок. Большинство дверей заперто, но, найдя одну открытую, он заглядывает внутрь. На стене висит самая большая картина, которую он когда-либо видел, и за картиной исходит самый странный звук, который он когда-либо слышал.«Мне кажется, я слышу, как кто-то зовёт. Какие тайны эта картина скрывает?»
Без лишних раздумий Марио прыгает на картину. Когда его затянуло в неё, другой мир открылся у него на глазах.И так начинается величайшее из всех приключений!
Оказавшись внутри картины, Марио обнаруживает себя стоящим посреди сражающихся боб-омбов. По словам красных боб-омбов, кто-то. или что-то. внезапно атаковало замок и украло «звёзды энергии». Эти звёзды защищают замок. Со звёздами под его контролем зверь планирует захватить Грибной замок.
Чтобы помочь себе добиться этого, он также планирует преобразовать жителей картинного мира в монстров. Если ничего не будет сделано, все эти монстры в скором времени начнут переполняться изнутри картины.
«Настолько маниакальный, настолько хитрый план. это, должно быть, работа Боузера!»
Принцесса Тоадстул и Тоад тоже пропали. Боузер, должно быть, забрал их и запечатал в картину. Если Марио не вернёт звёзды энергии немедленно, жители этого мира станут армией Боузера.«Что ж, Боузеру это не сойдет с рук, пока я рядом!»
Украденные звёзды энергии спрятаны по всему картинному миру. Используй свои мудрость и силу, чтобы вернуть звёзды энергии и восстановить мир в Грибной замок.«Марио! Ты единственный, на кого мы можем рассчитывать.»
Содержание
Объекты и поведения
В первую очередь о декомпиляции кода Mario 64 нужно знать то, что практически каждый элемент мира, за исключением геометрии уровня, считается объектом. И у большинства игровых объектов может существовать поведение.
Поведения позволяют использовать множество общих функций, например, создание объекта в нужной точке в виде монеты, падение объекта в результате взаимодействия, настройка хитбокса для коллизий между внутриигровыми объектами, поворот лицом к камере, отключение рендерера после уничтожения объекта, и так далее. Скрипты поведений используются не только для персонажей с ИИ: движущиеся платформы, двери, монеты, огненные шары, ударные волны, даже некоторые деревья и бабочки имеют поведения, поскольку в той или иной форме реагируют на игровой мир в результате взаимодействия или с течением времени.
Все объекты, имеющие скрипты поведений (Behaviour Scripts) имеют две основные функции, begin() и update(). Эти функции выполняют очень конкретные задачи: begin() отвечает за конфигурирование объекта для игры при его создании, а update() обрабатывает поведение объекта в каждом такте или кадре игры. Обычно Mario 64 выполняет эту функцию с частотой примерно 30 кадров в секунду, а самые вычислительно сложные части игры выполняются примерно раз в 20 кадров. То есть begin() вызывается только в первом кадре существования объекта, а update() — в каждом последующем кадре. Если вы сами разрабатываете игры, то это может показаться вам очень знакомым, потому что в движках наподобие Unity и Unreal используется похожая структура.
Функция update() обрабатывает исполнение стандартных команд поведения для каждого типа объектов, движение по осям x, y и z, учёт гравитации. Плюс она уделяет внимание всей логике управления таймерами для действий, переключению с одного действия на другое; всё это грубо реализовано в виде конечного автомата, в основном состоящего из условного ветвления в коде. Но самая важная задача функции — проверка местоположения Марио относительно объекта (эти вычисления выполняются первыми).
Первые два вычисления каждого объекта со скриптом поведений используются для расчёта расстояния до Марио и угла, требуемого для поворота в его сторону. Эти расчёты используются во многих задачах ИИ, и вскоре мы это увидим. Но особенно важно, что это используется для рендеринга внутриигровых объектов. Каждый управляемый поведениями объект в Super Mario 64 на основании близости к Марио принимает решение, должен ли он рендериться. Все объекты имеют собственный параметр дальности отрисовки, и в каждом кадре они проверяют, находится ли Марио дальше расстояния отрисовки. Если это так, то объект сообщает рендереру, что нужно его отключить. Любопытно, что я не нашёл свидетельств того, что эти поведения не исполняются, если Марио очень далеко.
Единственное исключение это уровни-помещения. Уровни Mario представляют собой или открытые пространства, например, Bob-Omb Battlefield, или состоят из множества комнат. Примерами этого могут быть Peach’s Castle, Big Boo’s Haunt и Hazy Maze Cave. На этих уровнях объект рендерится, только если Марио находится в одной комнате с ним. И многие скрипты поведений тоже активируются, только если Марио находится в той же комнате.
За пределами основных функций поведений объект может также хранить указатель на отдельный скрипт команд поведений. Эти скрипты написаны для более специализированных элементов игры и позволяют исполнять основную часть логики взаимодействий и поведений. В игре их более пятисот, это может быть специфическое поведение NPC, сбор красных монет, активация ловушек и даже завершение уровня подбором звезды.
Но поверх всего этого существуют хитбоксы, определяющие способ взаимодействия Марио с объектами. Хитбокс сообщает игровой логике, что два игровых объекта взаимодействуют и при помощи различной логики мы можем сделать так, чтобы в зависимости от контекста происходили различные действия. Например, чтобы Марио убивал врага или враг наносил урон Марио. Любопытно, что почти все враги в Mario 64 имеют два хитбокса и оба они цилиндрические. Стандартный хитбокс объекта используется для многих внутриигровых коллизий и логики, однако есть и hurtbox, используемый исключительно в ситуациях, когда наносится урон Марио. У большинства NPC есть hurtbox, и часто он отличается от обычного высотой и радиусом. Однако есть и исключения, например, Koopa the Quick, который не использует hurtbox, потому что просто отталкивает игрока, а не вызывает урон при коллизии.
Читайте также: