ZIL

Материал из Wiki о русской интерактивной литературе (текстовых играх)
Перейти к: навигация, поиск

Lisp-подобный язык программирования, сокр. англ. Zork Implementation Language.

Именно на нём писались все игры Infocom для Z-машины. Язык Inform, на котором пишется большинство игр сейчас, появился только в 1994-м.

Пример кода на ZIL

Отрывок. Полный пример см. на Bitbucket.

<ROUTINE GO ()
 <CRLF> <CRLF>
 <TELL "Hurrying through the rainswept November night, you're glad to see the bright lights of the Opera House. It's surprising that there aren't more people about but, hey, what do you expect in a cheap demo game...?" CR CR>
 <INIT-STATUS-LINE>
 <V-VERSION> <CRLF>
 <SETG HERE ,FOYER>
 <MOVE ,PLAYER ,HERE>
 <V-LOOK>
 <MAIN-LOOP>>
<INSERT-FILE "parser">
<ROOM CLOAKROOM
 (DESC "Cloakroom")
 (IN ROOMS)
 (LDESC "The walls of this small room were clearly once lined with hooks,
though now only one remains. The exit is a door to the east.")
 (EAST TO FOYER)
 (FLAGS LIGHTBIT)>
<OBJECT HOOK
 (DESC "small brass hook")
 (IN CLOAKROOM)
 (SYNONYM HOOK PEG)
 (ADJECTIVE SMALL BRASS)
 (FDESC "A small brass hook is on the wall.")
 (FLAGS CONTBIT SURFACEBIT)>

Необходимые инструменты

В настоящее время (2018 год) самый активный набор инструментов для работы с ZIL - это ZILF от Jesse McGrew. Он состоит из:

  • Компилятора ZILF, который компилирует код ZIL в ассемблерный код ZAP
  • Ассемблера ZAPF, который собирает код ZAP в бинарный формат Z-машины
  • Дезасссемблера DeZapf
  • Собственно библиотеки для текстовых приключений на английском, которая включает в себя парсер и базовую модель мира
  • Примеров, тестов и документации