вторник, 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 -- еще одно подтверждение того факта, что Форт лучше всего чувствует себя в космосе, пусть даже виртуальном.

Комментариев нет:

Отправить комментарий