Лисп на ассемблерном языке, ориентированном на игры

  • История и разработка

    • 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.  

Полный текст статьи:

Игроориентированный ассемблерный Lisp

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

Прокрутить вверх