Рэндал (Рэнди) Н. Линден | |
---|---|
Рожденный | ( 1970-01-06 )6 января 1970 г. |
Занятие | Программист |
Годы активности | 1983–настоящее время |
Известная работа |
|
Рэндал (Рэнди) Н. Линден (родился 6 января 1970 года) — канадский программист, известный своей сложной работой по повторной реализации названий видеоигр , а также созданием эмуляторов . Работы Линдена включают несколько известных повторных реализаций видеоигр, подходов к эмуляции, методов перекомпиляции и оптимизации кода , а также методов программирования .
Начав заниматься программированием как хобби в начале восьмидесятых, [1] [2] [3] [4] Линден вскоре перешёл в профессиональную разработку, где его ранняя работа включала разработку коммерческих видеоигр и прикладного программного обеспечения для Commodore 64 , Commodore 128 и Amiga . В 1989 году, через шесть лет своей программистской деятельности, Линден создал версию Dragon's Lair для Amiga. Эта версия была примечательна тем, что стала первой видеоигрой с полноэкранной анимацией и потоковой передачей звука с дискет на домашнем компьютере . [2] Впоследствии Линден занялся разработкой консольных игр, получив широкое признание за свою версию Doom для Super NES , успешно преодолев значительный разрыв в вычислительной мощности между Super NES и рекомендуемыми системными требованиями версии видеоигры для ПК . [3] [4] [5]
Линден также известен созданием bleem!, эмулятора PlayStation , разработанного для Microsoft Windows , а также версии Dreamcast , bleemcast!, последняя была написана совместно с Родериком Махером. [6] Помимо этого, портфолио Линдена включает Cyboid, шутер от первого лица, созданный под влиянием Quake II , для устройств Android , Amazon Fire и Symbian . Деятельность Линдена не ограничивается разработкой игр ; он также сыграл значительную роль в Microsoft , работая над такими продуктами, как Xbox 360 , Kinect и Microsoft Band . [6] [7] В настоящее время Линден работает в Limited Run Games . [1]
Линден впервые познакомился с компьютерами в конце семидесятых, когда его школа приобрела Commodore PET 4032 , [8] предоставив ученикам возможность планировать время с машиной для обучения программированию. [1] [3] [4] Линден начал программировать в 1981 году, когда в возрасте 11 лет он написал свою первую программу на BASIC . Примерно два года спустя, в 1983 году, мать Линдена подарила ему на день рождения комплект Commodore 64, в комплекте с монитором и столом. [2] Именно в это время он написал свою первую программу на ассемблере 6502. Тот же год ознаменовал начало карьеры Линдена в разработке игр, когда он создал видеоигру под названием «Barriers» для Commodore PET, [2] которая так и не была выпущена. В то время Линден заметил, что клон Space Invaders , в который он играл, был создан программистом Джимом Баттерфилдом, который также жил в Торонто. Линден просмотрел телефонную книгу, нашел контактные данные Баттерфилда и связался с ним. Последовавший разговор, в котором Баттерфилд щедро отвечал на вопросы молодого Линдена, глубоко сформировал будущий подход Линдена и его профессиональную траекторию. [1] [8]
Первой профессионально изданной видеоигрой Линдена была «Bubbles», клон Centipede для Commodore 64, выпущенная, когда ему было 13 лет. [1] [2] [3] [4] [7] [8] Эта видеоигра была выведена на рынок компанией Syntax Software, стартапом из Торонто, принадлежащим Рэнди Лайонсу. [3] [4] После того, как он связался с Лайонсом по поводу публикации Bubbles и некоторое время работал программистом на неполный рабочий день в Syntax Software, компания согласилась опубликовать его видеоигру. [2]
Помимо работы над видеоиграми, Линден также разрабатывал прикладное программное обеспечение, включая приложение базы данных для Commodore 64 и 128. Первоначально названное «Paperback Filer» и опубликованное Digital Solutions, программное обеспечение позже было переименовано в «Pocket Filer». [2] [3] [4]
В 1988 году Линден создал эмулятор Commodore 64 для Amiga, который был назван «The 64 Emulator». [2] [3] [4] Этот эмулятор, написанный совместно с Дэвидом Фостером и опубликованный ReadySoft , возможно, был первым в своем роде, который был доступен для продажи. Сосредоточившись на точности, а не на скорости, эмулятор использовал методы интерпретативной эмуляции. Конструкция эмулятора, которая включала поддержку подключения дисководов Commodore 1541 , Commodore 1571 и Commodore 1581 к Amiga через специально разработанный кабель параллельного порта , [1] [3] [4] позволила ему точно воссоздать системную среду Commodore 64, способствуя точному выполнению программного обеспечения Commodore 64 на Amiga. Примечательно, что розничные версии указанного кабеля параллельного порта были вручную собраны энтузиастами в подвале в Торонто. [1] Позже была выпущена преемница эмулятора под названием «The 64 Emulator 2».
В 1988 году Линден основал Visionary Design Technologies в подвале своей матери. Дебютным продуктом компании стала версия фэнтезийной видеоигры «Dragon's Lair» для Amiga. Dragon's Lair для Amiga создала прецедент как первая видеоигра, в которой реализована полноэкранная анимация и потоковая передача звука с дискет на домашнем компьютере. [2]
Dragon's Lair — видеоигра в жанре фэнтези и первая игра в одноименной франшизе видеоигр , созданная дизайнером и писателем видеоигр Риком Дайером . Первоначально выпущенная как аркадная игра на носителе LaserDisc компанией Cinematronics в 1983 году, Dragon's Lair произвела впечатление на Линдена, который затем стремился создать версию видеоигры для Amiga. [3] [4] Верный своему характерному подходу, Линден воссоздал всю игровую логику для версии Amiga, охватывающую как интерактивность, анимацию, так и воспроизведение звука, с нуля, сделав Dragon's Lair для Amiga не « портом », а, скорее, совершенно новой программной интерпретацией видеоигры. [9] Учитывая этот контекст, разработка версии Dragon's Lair для Amiga потребовала, чтобы Линден захватил и оцифровал все анимационные последовательности, найденные на носителе LaserDisc аркадной версии. Для этого Линден использовал оцифровщик от SunRize Industries. После того, как они связались с ними, чтобы обсудить его проект, SunRize Industries предоставила Линдену прототип [ 3] [4] усовершенствованной версии своего дигитайзера, который устранял необходимость в повторных проходах с использованием цветных фильтров. SunRize Industries была основана Энтони Вудом , который позже основал Roku, Inc. [2] [3] [4]
Dragon's Lair для Amiga также представила новую технику [9] , которая позволила видеоигре работать на Amiga 1000 , у которой было всего 512 КБ ОЗУ , несмотря на то, что сама видеоигра требовала 768 КБ. В дополнение к своим основным 512 КБ ОЗУ, Amiga 1000 имеет скромный bootstrap, требующий для загрузки дискеты « Kickstart ». Эта дискета содержит загрузчик на 256 КБ , который загружается в ОЗУ, занимая то, что известно как «Writable Control Store» (WCS). После загрузки Kickstart в WCS устанавливается аппаратный регистр , делая память доступной только для чтения, пока машина не будет снова загружена в холодном режиме. Поэтому для использования памяти WCS в качестве ОЗУ необходим сброс. Linden реализовал «мягкий сброс» для перезапуска процесса загрузки, заставив его начать выполнение, но с ключевым отличием: на этот раз логика инициализации пропускается, эффективно передавая управление непосредственно загрузчику игры Linden . Этот инновационный подход позволил Dragon's Lair работать на стандартной Amiga 1000, объединив ее 512 КБ ОЗУ с дополнительными 256 КБ от WCS, что в сумме составило 768 КБ. Напротив, Amiga 500 требовала обновления памяти для запуска Dragon's Lair, поскольку она поставлялась только с 512 КБ ОЗУ и не имела WCS.
Игра Dragon's Lair для Amiga была выпущена компанией ReadySoft в 1989 году.
В интервью, данных позднее, дизайнер и программист видеоигр Эрик Шайи отметил, что работа Линдена над Dragon's Lair для Amiga послужила для него источником вдохновения при реализации графики в Another World . [10] [11]
Visionary Design Technologies также издавала видеоигры, созданные другими разработчиками. Видеоигра Amiga " Vortex " (не путать с одноименным названием от Argonaut Games ), разработанная Ансельмом "Энди" Хуком, была издана компанией в 1989 году. В том же году Visionary Design Technologies издала еще одну видеоигру Amiga, " Datastorm ". Название было разработано Сёреном Грёнбеком, а музыку написал Тимм Энгельс.
После выпуска Dragon's Lair для Amiga Линден продолжил разработку Amiga-версии " Dragon's Lair: Escape from Singe's Castle " [2] [12] , опубликованной Bethesda Softworks в 1990 году. В этой видеоигре были уровни, которых не было в Dragon's Lair для Amiga, а также новый контент. Кроме того, она имела возможность сопряжения с оригинальной видеоигрой Dragon's Lair для Amiga, что позволяло переносить видеоигру на жесткий диск для более быстрой загрузки и устраняло необходимость замены дискет.
Во время своей работы в Bethesda Softworks Линден также работал над портированием компьютерной видеоигры «Wayne Gretzky Hockey» на NES . [8] Этот порт был опубликован в январе 1991 года. После этого Линден сотрудничал с программистом Полом Колеттой над разработкой « Home Alone » и « Where's Waldo? » для NES, [3] [4] [8] [12] с Джулианом Лефаем, сочинившим музыку для последней. Обе видеоигры, изданные THQ и Bethesda Softworks соответственно, не получили хороших отзывов критиков.
Линден присоединился к Sculptured Software в 1994 году в качестве разработчика видеоигр для Super NES, позже переключив свое внимание на инструменты разработки. В этот период Линден посетил конференцию, предназначенную для разработчиков Nintendo , где он познакомился с сопроцессором " Super FX " от Argonaut Games и стал свидетелем его потенциала через демонстрацию " Star Fox ", игры, которая использовала этот чип. Работодатель Линдена в то время, Sculptured Software, сам впечатленный возможностями чипа, решил разработать свою собственную видеоигру на основе Super FX. Игра была названа " Dirt Trax FX ", а Джон Морган был ее программистом. [8]
В интервью Software Engineering Daily [8] Линден отметил, что когда его команда начала разработку Dirt Trax FX, у них не было доступных инструментов разработки Super FX . Чтобы преодолеть это препятствие, Линдену было поручено создать собственную систему разработки с нуля, включая ассемблер , компоновщик и отладчик , [ 3] [4] все из которых были необходимы для программирования на чипе Super FX. Это позволило Sculptured Software впоследствии продолжить разработку Dirt Trax FX.
Вдохновение Линдена перенести технически сложную компьютерную игру «Doom» на Super NES пришло после его опыта на ранее упомянутой конференции разработчиков Nintendo. Этот опыт укрепил его веру в практичность использования чипа Super FX для разработки версии игры для Super NES. [1] [3] [4] Еще больше мотивированный наблюдением за тем, как его коллеги играют в Doom в режиме deathmatch по вечерам, [8] Линден проявил инициативу и самостоятельно разработал версию игры для Super NES, представив ее Sculptured Software только после создания функциональной демоверсии. [8] Осознав ее потенциал, Sculptured Software получила разрешение от id Software и назначила команду для проекта, стремясь выпустить ее к праздничному сезону. [2] [8] Во время разработки Линден использовал систему разработки, которую он создал для производства Dirt Trax FX. Он использовал компьютер Amiga для программирования, адаптировал игровые контроллеры Super NES для использования с машиной и использовал разобранный картридж Star Fox , чтобы получить доступ к чипу Super FX. [2] [8] У Линдена не было доступа к исходному коду версии Doom для ПК, [1] что делает версию Super NES не «портом» в техническом смысле, а скорее программной попыткой, предпринятой ab initio . В том же духе версия Doom для Super NES не использует движок « id Tech 1 », найденный в версии Doom для ПК; вместо этого она работает на «Reality Engine», [13] [14] специализированном игровом движке, разработанном Линденом специально в 65816 и Super FX Assembly.
«DOOM-FX», как его стали называть, часто называют «невозможным портом» [5] [хотя по указанной выше причине Doom для Super NES не является портом в техническом смысле, со временем повседневное использование этого термина стало более широким]; Super NES, даже с усовершенствованиями, предоставляемыми сопроцессором Super FX второго поколения — RISC- чипом 21,4 МГц — все еще значительно отставала от рекомендуемых требований версии для ПК, которые включали процессор 80486 , 4 МБ ОЗУ и видеокарту VGA .
В Северной Америке версия Doom для Super NES была выпущена 1 сентября 1995 года компанией Williams Entertainment. Ocean Software издала видеоигру в Европе, где она вышла 26 октября 1995 года. Наконец, в Японии видеоигра была выведена на рынок компанией Imagineer и выпущена 1 марта 1996 года. [15]
Более двадцати лет спустя Линден выразил в интервью свой энтузиазм по поводу реализации таких проектов, как версия Doom для Super NES, что является отражением его карьерной тенденции. Хотя он не упомянул название игры, он подчеркнул свою любовь к участию в технических проектах, которые широко считаются непреодолимыми, заявив, что ему «[нравятся] технические проекты и задачи программирования, которые люди считают невыполнимыми». [7] В отдельном интервью, проведенном Nintendo Life, веб-сайтом, посвященным новостям и обзорам Nintendo, Линден отметил, что «[...] создание «невозможного порта», как я сделал, когда создавал DOOM для Super NES, — это одна из тех задач, о которой вы просто знаете в глубине души, если вы будете достаточно сильно давить, это как маленький двигатель, который мог бы . Вам просто нужно продолжать давить, и в конечном итоге вы окажетесь на вершине пика». [16]
В 2020 году Линден опубликовал исходный код оригинальной версии Doom для Super NES [1] [17] вместе с соответствующими инструментами разработки в двоичной форме. [1] Линден заявил, что причиной публикации исходного кода стало отсутствие доступного примера исходного кода для полной видеоигры для Super NES или, в частности, той, которая использует чип Super FX. Следовательно, Линден считал важным поддержать других программистов в их обучении и росте, тем самым сделав общедоступным исходный код видеоигры [1] по лицензии GPLv3 . [18]
8 августа 2024 года Limited Run Games анонсировала новую и улучшенную версию Doom для Super NES, которая будет выпущена на физическом носителе. Спустя почти 30 лет после выхода оригинальной версии Doom для Super NES Линден, ныне работающий в Limited Run Games, вернулся, чтобы разработать это улучшенное издание. Улучшенная версия будет включать все четыре эпизода Doom, включая «Thy Flesh Consumed», который изначально был представлен в 1995 году как часть обновленного релиза для ПК «The Ultimate Doom», а также уровни, отсутствовавшие в оригинальном релизе для Super NES, в котором было всего 22 уровня по сравнению с 27 в версии для ПК. Кроме того, улучшенная версия Super NES, теперь использующая улучшенный, пользовательский чип, совместимый с Super FX, [19] представит поддержку Circle-strafe , улучшения производительности, возрождение монстров на уровне сложности «Nightmare», полупрозрачный рендеринг демона «Spectre», коды уровней, игровой музыкальный проигрыватель, доступный через меню, и поддержку вибрации через специализированный новый игровой контроллер. Обновленная версия Doom для Super NES запланирована к выпуску в 2025 году. [20] [21]
В 1998 году, вдохновленный огромным количеством качественных игр для PlayStation и возможностью беспрепятственно просматривать содержимое игровых дисков PlayStation на ПК, Линден поставил себе целью создание эмулятора PlayStation для Microsoft Windows. После приобретения в книжном магазине справочного руководства по архитектуре MIPS , которую использовала PlayStation, он приступил к изучению системы. [3] [22] [23] Эмулятор под названием «bleem!» разрабатывался в течение примерно года, [7] завершившись его первым выпуском 15 мая 1999 года. [24]
Линден начал разрабатывать bleem!, изучая и реализуя эмуляцию инструкций процессора MIPS по одной за раз, сосредоточившись на тех, которые были необходимы для каждой конкретной игры PlayStation, которую он тестировал. Он реализовал поддержку опкодов — таких как сложение, сравнение и вычитание — в порядке их появления, в конечном итоге охватив большую часть набора инструкций процессора . После завершения поддержки большинства инструкций ЦП Линден обратил свое внимание на изучение того, как игры PlayStation обрабатывают графику. Он спроектировал эмулятор для перехвата записи в память, связанной с графическим рендерингом, и преобразования их в полигоны для последующего отображения на ПК. Этот подход по сути использовал улучшенные графические возможности ПК для создания вывода с более высоким разрешением , оставаясь при этом прозрачным для рассматриваемых видеоигр во время их воспроизведения на bleem!. [3] [23]
Требования к оборудованию bleem! были заметно скромнее для своего времени, ориентируясь на процессор Intel Pentium MMX 233 МГц и 16 МБ ОЗУ. Хотя изначально стремились к процессору Intel Pentium 166 МГц, [25] эти характеристики впоследствии были немного пересмотрены в сторону повышения. В интервью IGN в 1999 году Дэвид Херполшаймер, партнер Линдена по bleem!, упомянул, что сам Линден программировал bleem! на системе, работающей на процессоре Intel Pentium MMX 200 МГц, стремясь повысить совместимость эмулятора с минимальными аппаратными требованиями с помощью личного опыта. [25] Тем не менее, bleem! включал поддержку современных процессорных технологий, таких как устаревший набор инструкций SIMD 3DNow! от AMD , представленный с процессором AMD K6-2 в 1998 году.
С точки зрения графики, bleem! предлагал поддержку как программного, так и аппаратного рендеринга, причем последний был реализован через графический API Direct3D . Несмотря на поддержку 3D-ускорителей от Nvidia , ATI (теперь AMD), 3dfx , Matrox и S3 , наличие 3D-ускорителя не было обязательным для запуска эмулятора. Ключом к производительности bleem! было исключительное использование языка ассемблера x86 в его программировании, без каких-либо компонентов, написанных на языках более высокого уровня, таких как C или C++ . Разработанный с использованием методов как низкоуровневой эмуляции (LLE), так и высокоуровневой эмуляции (HLE), bleem! был способен эффективно эмулировать игры PlayStation даже на скромном для того времени оборудовании ПК.
Примерно через два десятилетия после запуска bleem! Линден сказал в интервью, что «[bleem!] была оригинальной демоверсией, использованной для представления концепции Xbox Биллу Гейтсу », в результате чего Линдену было предложено создать модифицированную версию эмулятора, в которой не было бы никаких ссылок на бренд bleem!, который, как он отмечает, использовался Microsoft для внутренних целей, чтобы продемонстрировать Гейтсу возможность разработки игровой консоли на базе оборудования ПК. [1]
Идея «bleemcast!», версии bleem! для Dreamcast, была придумана Дэвидом Херполшаймером. [3] [6] [7] [23] Линден был убежден, что, используя аппаратное обеспечение Dreamcast, можно было бы еще больше улучшить эмулируемые видеоигры за пределами того, что можно было бы достичь на ПК. [3] [23] Херполшаймер связался с Sega , отправившись в Японию, чтобы обсудить проект с президентом и советом директоров Sega . Несмотря на эти усилия, Sega в конечном итоге решила официально не одобрять выпуск bleemcast!, в результате чего Линдену пришлось продолжить проект, не имея возможности использовать официальный комплект разработки программного обеспечения (SDK) Dreamcast. [6]
Примечательно, что во время разработки bleemcast! Линден изучал различные библиотеки Dreamcast , чтобы выявить и обойти аппаратную ошибку в графическом чипе PowerVR Series2 от Dreamcast , которая влияла на воспроизведение на bleemcast! одной из игр, которые впоследствии можно было запустить на эмуляторе [6] [7] (в отличие от bleem! для Windows, которая изначально поддерживала широкий спектр видеоигр, bleemcast! был адаптирован под отдельные игры, требуя отдельной версии bleemcast! для каждой поддерживаемой видеоигры).
Написанный совместно с Родериком Махером, [6] bleemcast! был полностью разработан на языке SH-4 Assembly, [7] в отличие от любого кода, использованного в версии bleem! для Windows, и на все начинание потребовалось около года для завершения. Выделяясь как единственный случай, когда одна консоль, все еще активная в своем жизненном цикле в то время, была эмулирована на другой консоли, "bleemcast! для Gran Turismo 2 " был выпущен 4 июня 2001 года, [26] за которым последовали "bleemcast! для Metal Gear Solid " и "bleemcast! для Tekken 3 " 30 и 31 октября 2001 года соответственно. [27] [28]
В 2002 году Линден начал создавать прототип версии видеоигры « Quake » для Game Boy Advance . Подобно своему подходу с версией Doom для Super NES, он создал этот прототип в качестве технической демонстрации, направленной на привлечение издателей видеоигр . Демонстрация включала первый уровень видеоигры, известный как «E1M1», и состояла примерно из 200 000 строк кода ассемблера ARM7 . [29] Не имея возможности найти издателя, Линден переключил внимание на улучшение базовой технологии движка демо. Разработанная в очередной раз для привлечения издателей видеоигр, обновленная версия движка отличалась улучшенной анимацией, эффектами точечного освещения, улучшениями в использовании камеры и улучшениями в управлении подводным сегментом.
Примерно двадцать лет спустя, в 2022 году, Линден наткнулся на свою работу над прототипом Quake для Game Boy Advance на флэш-накопителе , что привело к ее последующему освещению в игровых СМИ. [29] [30] [31]
В 2007 году к Линдену обратились две отдельные группы в Microsoft, и в конечном итоге он решил присоединиться к группе Developer Tools [1] в качестве руководителя группы . Работая в Microsoft, Линден принимал участие в инженерных разработках нескольких продуктов, включая Xbox 360, Kinect и Microsoft Band. [6] [7]
Используя улучшенную версию движка, изначально созданного для Quake для прототипа Game Boy Advance, Линден выпустил Symbian-версию «Cyboid», шутера от первого лица, вдохновленного «Quake II», в 2006 году. [6]
Впоследствии, после прекращения поддержки Microsoft Band в 2016 году, Линден, который проработал в Microsoft почти десять лет, решил уйти из компании. Затем Линден основал R&R Digital, которая выпустила Cyboid для Amazon Fire 25 октября 2016 года, а затем 25 марта 2017 года — для Android. [2] [6] [7]
В настоящее время Линден работает в компании Limited Run Games, занимаясь разработкой « Carbon Engine ». [1] Carbon Engine, часто выступающий в качестве технической основы для игр Limited Run Games, охватывает ряд эмуляторов игровых консолей, часто интегрированных с улучшенными версиями оригинальных видеоигр, направленных на обогащение оригинального игрового процесса .
В девяностых годах Линден служил добровольным пожарным , сначала в Гейтерсберге , Мэриленд , а затем в Сан-Диего , Калифорния . После периода волонтёрства Линден был нанят в качестве профессионального пожарного в округе пожарной охраны округа Крест / Ист в Сан-Диего, Калифорния.
Линден родом из Торонто, Онтарио, Канада, а в настоящее время проживает в Сиэтле , штат Вашингтон .