вторник, 30 декабря 2014 г.

Старые игры на языке Форт

Форт не надо путать с Фортраном. Они совершенно непохожи. Судите сами, чтобы напечатать результат сложения двух чисел на последнем достаточно набрать: "print *, 2 + 2". Форт требует совершенно иного взгляда на привычные вещи и эта операция выглядит в нем вот так: "2 2 + .". На этом месте большинство программистов закономерно теряет всякий интерес к продолжению знакомства с этим необычным языком. Тем не менее Форт завоевал некоторую популярность среди людей связанных с космосом. Им, зачастую, не так важен порядок выполнения математических операций или наличие в языке современных библиотек и фреймворков. Но они весьма ценят простоту Форта, скромность в использовании вычислительных ресурсов, а также независимость от чужого инструментария и методик программирования, которые он дает. (http://en.wikipedia.org/wiki/RTX2010) Процессор 80-х годов с аппаратной поддержкой Форта используется в космическом аппарате Кассини (Сатурн) и в недавно запущенной Розетте (комета 67P/Чурюмова-Герасименко).

Неудивительно, что именно инженер NASA (http://www.atariarchives.org/deli/cottage_computer_programming.php) Paul Lutus написал в 1981 году систему (http://www.virtualapple.org/docs/GraFORTH%20II%20Language%20Reference.pdf) GraFORTH для Apple II, предназначенную для создания развитых графических приложений и игр.

http://www.youtube.com/watch?v=4Fay38pUU7Y

Широкую известность Форт получил после знаменитой публикации журнала (https://archive.org/details/byte-magazine-1980-08) "Byte" (1980, август). В журнале приводился пример игры на Форте с исходным кодом: версия Breakout для TRS-80 под названием BREAKFORTH.



Ходят слухи, что Форт широко использовался в игровых автоматах Atari в конце 70-х. Никаких подтверждений этому мне найти так и не удалось. Истинно, тем не менее, что один из лучших разработчиков автоматов от Atari, (http://www.orubin.com/) Owen Rubin, действительно создал игру на Форте под названием (http://www.atarimuseum.com/orubin/yahtzee.html) Yahtzee. Но игра эта была написана для компьютера Atari 800 уже в 1980 году и, похоже, так и не была издана.

В Atari пытались использовать Форт по крайней мере со времени выхода 8-битных машин, таких как Atari 400/800. Идея была в использовании компактного языка, в духе современной "платформонезависимой" Java. Увы, реальность оказалась не столь радужной. Landon Dyer, один из Atari-разработчиков той эпохи вспоминает.

"Он (коллега по проекту портирования игры Donkey Kong) изначально хотел все сделать на Форте и не понял, что мы не можем потратить половину памяти картриджа для интерпретатора Форта только ради нашего удобства".

"Прискорбный факт состоит в том, что люди, привлеченные этим языком, кажется, меньше всего способны написать хороший код на нем. Отсюда и несколько катастрофических попыток создания видеоигр на Форте в Atari".

Одной из таких малоудачных игр на Форте была версия (http://en.wikipedia.org/wiki/Hat_Trick_(video_game)) Hat Trick (1987) для Atari 7800. Ее многие ругали за неповоротливость и некачественную анимацию. Кстати говоря, исходный код этой игры доступен для (http://www.atarimuseum.com/videogames/consoles/7800/games/source_code/HATTRICK.zip) скачивания.

http://www.youtube.com/watch?v=pxjQt4FNJpQ

Вообще, игр на Форте для 8-битных компьютеров Atari было написано не так мало и далеко не все из них были неудачны, как мы увидим далее.

Blockbuster (1981, APX). Написана на QS-FORTH. Головоломка.



Cyborg (1982, Sentient Software). Использован неизвестный диалект Форта. Текстовое приключение.



Tactrek (1982, APX). Написана на valFORTH. Стратегия.



Crypto Cube (1983, DesignWare). Использован неизвестный диалект Форта. Головоломка.



Body Parts (1983, PartlySoft Software). Написана на valFORTH. Карточная игра (?).

Maniac Miner (1983, Gentry Software). Написана на valFORTH. Аркада.



Simulated Computer II (1983, Carousel Software). Написана на valFORTH. Обучающая игра.



Around the World (1983, SUPERWare). Написана на fig-FORTH. Приключение/RPG.



PokerSAM (1983, Don't Ask Computer Software). Написана на fig-FORTH. Игра в покер, используется синтез речи.

http://www.youtube.com/watch?v=ba_xhYXjjFg

Abraxas Adventure #1 - Assault on the Astral Rift (1984, MMG Micro Software). Написана на valFORTH. Приключение/RPG.



Arkanoid (1987, Imagine). Написана на ES-FORTH. Аркада.



Очень любопытны следующие три квеста от польского разработчика (http://pl.wikipedia.org/wiki/Roland_Panto%C5%82a) Roland Pantola. Он создал их на диалекте Форта под названием Gam Forth.

A.D. 2044 (1991, L.K. Avalon).



Klatwa (1992, L.K. Avalon).



Wladcy Ciemnosci (1993, L.K. Avalon).



Далее -- одна из лучших игр, среди написанных на Форте для компьютеров Atari. Это вещь в духе Elite и SunDog под названием (http://en.wikipedia.org/wiki/Universe_(1983_video_game)) Omnitrend's Universe (1983, Thomas Carbone и Bill Leslie).



Написана она была на valFORTH с применением 3d инструментария, который создал William Volk. На этом закончим с Atari и перейдем к Apple.

(http://obsoletegamer.com/the-interview-william-d-volk/) William Volk... а ведь Форту определенно повезло с этим разработчиком! Он -- один из заслуженных ветеранов игростроения и свой путь начал со стратегии Conflict 2500 (1981, Avalon Hill), но самая популярная вещь, которой он занимался -- Return to Zork (1993). И он действительно любил Форт! Для компьютера Macintosh этот разработчик создал следующие две игры на этом языке.

(http://macintoshgarden.org/games/mac-challenger) Mac-Challenger (1985, Aegis Development). Написана на MasterFORTH. Симулятор Space Shuttle.



(http://www.gamasutra.com/blogs/WilliamVolk/20120330/167691/Flash_in_the_Pan_Its_like_Dj_vu_Mac_1984_all_over_again_.php?print=1) Pyramid of Peril (1986, Aegis Development). Написана на MicroMotion Forth всего за 30 дней. Приключение с видом от первого лица.



Система (https://archive.org/details/bitsavers_creativeSoct84_10481425) MacForth была первой серьезной средой разработки для Macintosh. На ней написано множество приложений и, конечно, (http://macintoshgarden.org/games/trivia-mirage-concepts) игр. Одной из таких игр была (http://en.wikipedia.org/wiki/ChipWits) ChipWits (1985, Doug Sharp и Mike Johnston), головоломка, одна из лучших в жанре "игр для программистов".



Любопытная RPG-игра (http://en.wikipedia.org/wiki/Citadel:_Adventure_of_the_Crystal_Keep) Citadel: Adventure of the Crystal Keep (1988, David Pavan и Dennis Zahorchak) тоже была создана на MacForth.



Несколько игр на MacForth сотворил и (http://www.amug.org/~glguerin/my/history.html) Gregory L. Guerin. Среди них: Star Trek: The Promethean Prophecy (1987-1988), Greed and Lust (1990), Math Shop (1990). Но наиболее интересными мне показались следующие две его вещи.

(http://www.old-games.ru/game/2685.html) Hidden Agenda (1988-1989). PC-версия написана на MVP-FORTH. Симулятор политики в Центральной Америке.



(http://www.old-games.ru/game/3250.html) Star Trek: The Transinium Challenge (1989-1990). PC-версия написана на HS/FORTH. Многожанровая игра в антураже Star Trek.



Осталось, пожалуй, вспомнить самую лучшую, по отзывам, игру на Форте. Речь о (http://www.old-games.ru/game/1915.html) Starflight (1986, Greg Johnson, Alec Kercso, Bob Gonsalves, T.C. Lee, Rod McConnell) для PC. Это большая игра, особенно по меркам Форта. В ней есть фрактальное генерирование планет, несколько экспертных систем и многое другое. По жанру это космическая RPG.

http://www.youtube.com/watch?v=9bJU6KdP5so

В интернете можно отыскать описание подробностей разработки, а также исходные тексты этой замечательной игры.

https://web.archive.org/web/20071009170046/http://meusite.uai.com.br/~mmand/starflight/
https://web.archive.org/web/20031209151126/http://www.sonic.net/~sage/sf/Development/TheMakingOfStarflight.htm
http://www.oocities.org/timessquare/maze/4979/lee.html

Чтож, существование Starflight -- еще одно подтверждение того факта, что Форт лучше всего чувствует себя в космосе, пусть даже виртуальном.

Mattel Intellivision и Дон Даглоу

Через год после выхода знаменитой Atari 2600 миру был явлен ее конкурент, созданный фирмой Mattel. Речь об игровой приставке Intellivision. Позволю себе рассказать несколько слов о ее устройстве и, конечно, об играх.



С технической стороны Intellivision можно было по праву назвать прорывом в области игровых приставок. 16-битный процессор (и это в 1979 году!), более серьезные, по сравнению с 2600, графические и звуковые возможности. Кстати, за звук отвечал знаменитый чип AY (им обладали ZX Spectrum, Yamaha MSX, Atari ST и другие системы). Еще интереснее, что данная приставка имела полноценную операционную систему в ROM, под названием EXEC. Функционировала она по событийной и объектно-ориентированной модели. Игровые объекты -- структуры данных из картриджа, получали системные оповещения о перемещении или столкновении с другими объектами. В графической части ПЗУ находилась коллекция общеупотребительных спрайтов, а также полноценный шрифтовый набор. В комплекте с приставкой имелось два необычных контроллера. Каждый имел цифровую клавиатуру и колесо с указанием 16 возможных направлений. Как и в случае с PLATO, многие интересные игры для Intellvision требовали живого противника для полноценной игры.

Mattel начали агрессивную рекламную компанию. Вот, например, ролик с участием известного ведущего и журналиста тех времен.



Что же могла противопоставить Mattel компании Atari в плане, собственно, игр? Давайте опять вернемся к бесконечной теме многопользовательских танковых сражений. Очередная подобная игра была выпущена одной из первых для Intellivision и случилось это в 1979 году.



Одним из дополнительных модулей к Intellivision был синтезатор речи IntelliVoice.



Его использовало совсем немного игр. Возможно, лучшая -- B-17 Bomber (1982), аркадный симулятор бомбардировщика. Вот как выглядела ТВ-реклама этой игры.



Весьма необычной как по визуальному оформлению, так и по сюжету была обучающая игра Microsurgeon (1982). Игрок управлял медицинским наноботом внутри человеческого тела.

http://www.youtube.com/watch?v=ORxLe6wHHIQ

На Intellivision существовали и RPG-игры. Advanced Dungeons & Dragons: Treasure of Tarmin (1982), пожалуй, не имела себе равных на тот момент среди приставочных игр такого жанра. Ее описание можно прочесть у этого известного cRPG-энтузиаста: [url]http://crpgaddict.blogspot.ru/2014/12/game-170-advanced-dungeons-dragons.html[/url]



Позже в RPG-жанре для Intellivision вышла не менее достойная Tower of Doom (1986).



Теперь мы переходим к, наверное, самой важной игре, созданной для этой приставки. Она называется Utopia (1981). Ее называют первым графическим "симулятором бога" и первой стратегией в реальном времени. А еще ее называют "Civilization 0.5".



Создатель Utopia, Дон Даглоу, в числе самых заслуженных ветеранов игростроения. В 1975 году он написал игру Dungeon для PDP-10, которая считается одной из первых cRPG (наряду с PLATO-играми того времени). Он же в 1991 году создал первую графическую MMORPG-игру Neverwinter Nights, а в 1993 -- первую стратегию в реальном времени с 3d графикой под названием Stronghold.




понедельник, 22 декабря 2014 г.

Музыка позднего Тима Фоллина

Несколько моих любимых вещей. Ведь раннего-то Фоллина все знают, правильно? Если нет, то я обязательно посвящу этой теме одну из следующих дневниковых записей!

Ecco the Dolphin: Defender of the Future (2002)

Симфоничность и эмбиент, академический минимализм и хоровое исполнение. Удивительная, серьезная работа. К слову сказать, автор этой музыки очень жалел, что на момент ее написания не имел доступа к настоящему симфоническому оркестру.

















Future Tactics: The Uprising (2004)

Обратите внимание на флейту -- она замечательна!



Starsky & Hutch (2004)

Отличная стилизация под кинофанк 70-х.



Lemmings (2006)

После этого проекта Тим Фоллин ушел из игр. Навсегда ли? В одной из прошлых заметок я писал о его недавнем проекте Contradiction. Так что надежда на возвращение этого талантливого композитора в мир игр все же остается.

http://www.youtube.com/watch?v=0zSc61md9wM

Хочется еще? Изучайте саундтреки к этим играм, там много интересного!

Два титана восьмибитной 3d графики

Речь пойдет об английских компаниях, делавших трехмерные игры для ZX Spectrum и Amstrad CPC.

Realtime Games начала свою деятельность с воплощения популярных аркадных 3d игр на 8-битных компьютерах.

3D Tank Duel (1984, клон Battlezone)

http://www.youtube.com/watch?v=nLs4p6wJNSw

3D Starstrike (1984, клон Star Wars)

http://www.youtube.com/watch?v=xZ91o9qUFFc

Starstrike II (1986)

Эта игра была уже оригинальной. Подвижность ее графики оценили многие критики.

http://www.youtube.com/watch?v=LUlCkXguDJM

С определенного момента разработчики Realtime Games начали пользоваться системой PDS development system (http://www.cpcwiki.eu/index.php/PDS_development_system ).

PDS представляла собой программно-аппаратное решение для разработки 8-битных приложений. Аппаратная часть включала в себя IBM PC-подобный компьютер Apricot PC и набор интерфейсных плат для Amstrad, ZX и других целевых плафторм.



Программирование осуществлялось на PC и результат по соответствующему интерфейсу передавался на 8-битный компьютер. PDS существенно облегчила жизнь для Realtime Games, Oliver Twins и других игровых компаний.

Carrier Command (1988)

Самая знаменитая игра этой компании, вышла на большинстве компьютеров того времени.



Battle Command (1990)



Кроме того, Realtime Games известна своими PC-версиями Elite и Elite Plus.

Полезные ссылки.

http://www.carriercommand.com/2012/05/inside-the-carrier-5-questions-for-ian-oliver/
http://www.worldofspectrum.org/interviews/OliverIan.htm
http://www.retrogamer.net/retro_games80/the-making-of-carrier-command/
http://www.crashonline.org.uk/29/realtime.htm

Incentive Software делала такие интересные вещи, как, например, Graphic Adventure creator -- конструктор игр-приключений. Однако, наибольшую популярность этой компании принесли игры на основе 3d движка Freescape.

Driller (1987), Dark Side (1988), Total Eclipse (1988), Castle Master (1990)

http://www.youtube.com/watch?v=wZAQafIrNn4

http://www.youtube.com/watch?v=1a62T6pQmDs

http://www.youtube.com/watch?v=Aac2Eo5b288

http://www.youtube.com/watch?v=KgAiS-O-2D4

В 1991 году Incentive Software выпустила на основе Freescape нечто в духе современного Unity3d, под названием 3D Construction Kit. Эта система включала в себя кроссплатформенный 3d движок, редактор уровней и скриптовый язык. Подробнее можно узнать здесь: http://www.3dconstructionkit.co.uk/



Полезные ссылки.

http://www.retrogamer.net/profiles/company/incentive-software/

Atari Video Music и прочее

Начну сегодняшнюю запись с синтезатора. Но не музыкального, а видеосинтезатора. Да, были когда-то и такие устройства. Функции они имели те же, что и современные плагины-визуализаторы для Winamp.

В 1976 году увидел свет аналоговый аппарат Atari Video Music для стерео HiFi-систем. Вот как он выглядел и функционировал.







Далее переходим к музыке David Lowe для игры Carrier Command (http://www.old-games.ru/game/2207.html). Это так называемая tape music, предназначенная для отдельного прослушивания на кассетнике.



Повеяло восьмидесятыми? Продолжим музыкальную паузу.



Данный клип связан с проектом, посвященным истории разработки игр в Великобритании: https://www.kickstarter.com/projects/1195082866/from-bedrooms-to-billions

Теперь хочу обратить внимание на любопытное описание проблем разработчиков Maniac Mansion, связанных с преодолением цензуры со стороны Nintendo:

http://www.crockford.com/wrrrld/maniac.html

Наконец, предлагаю посмотреть видео первого(?) аркадного автомата с текстурированной 3d графикой: Ridge Racer (1993, Namco).


Динамическая (интерактивная) музыка в старых играх

Если исполнение музыки варьируется под действием различных игровых событий настолько разнообразным образом, что о едином статичном саундтреке, который можно куда-то выложить в mp3, говорить уже не приходится, то речь идет о музыке динамической. Есть несколько подходов к созданию подобной музыки.

Смена темпа

Простейшее изменение параметра исполняемого произведения. В игре Space Invaders (1978) проигрывание 4-нотной последовательности ускоряется с уменьшением количества вражеских кораблей на экране. По схожему принципу исполняется 2-нотная секвенция в игре Asteroids (1979). Возможно, подобный подход был вдохновлен муз. сопровождением из фильма "Челюсти" (1975) во время атаки акулы.



Динамическая музыка может действовать на нотном уровне (MIDI, особые внутренние форматы муз. событий) или же на уровне целых звуковых дорожек (PCM). В последнем варианте простейшая смена темпа оказывается проблемой, ведь мы имеем дело с предварительно записанным звуком, а не с отдельными нотами, параметры которых можно менять на лету.

Микширование

Изменение громкости, включение-выключение отдельных дорожек в звучащей композиции. В игре Bomberman (1985, NES) к фоновой музыке добавляется еще один голос, когда герой берет один из "призов".



Музыку для игры Extase (1990, Amiga) написал талантливый композитор Stéphane Picq с использованием звучания знаменитого хора The Bulgarian Voices (вы могли слышать этот хор в телесериале "Зена — королева воинов"). Различные сэмплы воспроизводятся в ответ на манипуляции со стороны игрока, образуя уникальное музыкальное сопровождение каждого игрового сеанса.



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

Граф муз. фрагментов

Примечательны следующие слова Чайковского по поводу процесса сочинительства.

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

Система интерактивной музыки iMUSE (1991, LucasArts) занимается генерированием подобных швов и монтажных склеек. В зависимости от игровой ситуации из базы данных выбираются MIDI-отрывки и применяются различные виды переходов и аранжировок. Композитору, который работает с iMUSE-системой, приходится иметь дело с музыкальным "гипертекстом", продумывать разнообразные варианты соединения разрозненных музыкальных фрагментов, чтобы в игре зазвучало цельное, но уникальное для данного игрового сеанса музыкальное полотно.



Greg LoPiccolo (басист группы Tribe) сочинил динамическую музыку для игры System Shock (1994) с использованием системы, похожей на iMUSE, на основе технологии XMIDI Miles Sound System.

Алгоритмическая музыка

Композицию Song of the Grid из игры Ballblazer (1984, Lucasfilm Games)  можно слушать очень долго, так, впрочем, и не дождавшись полного ее повторения. Качество алгоритма  Riffology (автор Peter S. Langston, http://www.langston.com/Papers/amc.pdf) на удивление высоко, на уровне "серьезной" алгоритмической музыки того времени.

http://www.youtube.com/watch?v=i7V7B57Kbqk

P.S. Может быть, кому-то будет любопытно взглянуть на мой заброшенный текст: http://sovietov.com/tmp/game_sound/stage1/

О танках (в честь выхода Podcast №17)

В сегодняшнем видеоролике (http://www.youtube.com/watch?v=ZA00fjK-XBk ) можно увидеть игру Panther (1975). Увы, во всем интернете, кажется, нет скриншотов еще одной игры с PLATO -- Panzer (1977, разработана для Армии США), которая является развитием Panther по графике и в плане реализма. Даже на Cyber1 (интернет-эмулятор PLATO) этой игры не нашлось.

А вот другая игра для Армии США -- The Bradley Trainer (1981) на базе Battlezone. Это симулятор боевой машины пехоты "Брэдли".



Интересная вышла цепочка: Panzer для Армии США вдохновила создателей Battlezone, а уже сам игровой автомат заинтересовал военных, которые еще и условие поставили: адаптировать игру за 3 месяца, аккурат к выставке вооружений.

http://www.youtube.com/watch?v=vOhpjf9QUTE

Забавно сравнивать эту графику с графикой CT5 Flight Simulator, о котором я писал ранее.

Несколько ссылок на тему The Bradley Trainer.
http://www.atariage.com/news/Bradley/index.html
http://www.safestuff.com/bradley.htm
http://www.thelogbook.com/phosphor/1981/bradley-trainer/

Вспоминается еще и первая, насколько я знаю, российская игра о танках: Tankodrom 55491 (1992, ZX Spectrum) Вячеслава Медноногова. Танковые сражения и гонки на полигоне с видом сверху. Любопытно, что карта в игре соответствовала реальной местности: http://zx-pk.ru/showthread.php?t=9237&langid=1




Возможно, игра Tankodrom 55491 была создана под впечатлением также и от этого советского игрового автомата:

http://www.youtube.com/watch?v=tyNrrg_Nnt4

P.S. Интересующимся разбором внутренностей старых игр предлагаю прочесть анализ приставочной Contra в 7 частях: http://tomorrowcorporation.com/posts/retro-game-internals
P.P.S. Интервью с Ральфом Баером на Gamasutra: http://www.gamasutra.com/view/feature/130108/the_right_to_baer_games__an_.php