Оглавление [Скрыть]
Лисп на ассемблерном языке, ориентированном на игры
-
История и разработка
- GOAL (Game Oriented Assembly Lisp) разработан Энди Гэвином и командой Jak and Daxter из Naughty Dog.
- Использовался при разработке всей серии игр Jak and Daxter, кроме Daxter и Jak and Daxter: The Lost Frontier.
- Написан на Allegro Common Lisp.
-
Дизайн и особенности
- Синтаксис напоминает Lisp, но с объектно-ориентированными функциями.
- Поощряет императивный стиль программирования.
- Компилируется в машинный код PlayStation 2.
- Ограниченные возможности для сбора мусора, динамическое выделение памяти.
- Поддержка встроенного кода на ассемблере.
- Целевой компилятор реализован на Allegro Common Lisp.
- Поддержка долгосрочного сеанса прослушивания компиляции.
-
Использование
- Впервые использован в Jak and Daxter: The Precursor Legacy.
- Предшественник GOOL разработан для Crash Bandicoot.
- Naughty Dog отказалась от использования GOAL из-за требований Sony.
- Возобновили использование для сценариев в The Last of Us.
-
Проект OpenGOAL
- Запущен в 2020 году для портирования GOAL на x86-64.
- Включает компилятор на C++ и цикл чтения–оценки–печати.
- К ноябрю 2023 года подготовлены порты для первых двух игр.
- В разработке порт Jak 3.