kids encyclopedia robot

Game Oriented Assembly Lisp facts for kids

Kids Encyclopedia Facts
Quick facts for kids
Game Oriented Assembly Lisp
Paradigms Multi-paradigm
Family Lisp
Designed by Andy Gavin
Developer Naughty Dog
First appeared 3 December 2001; 23 years ago (2001-12-03)
Stable release
3 / 7 February 2012; 13 years ago (2012-02-07)
Typing discipline Dynamic, latent, strong
Scope Lexical
Implementation language Allegro Common Lisp
Platform PlayStation 2, PlayStation Portable, PlayStation 3
License Proprietary
Influenced by
Lisp, Scheme,
Game Oriented Object Lisp (GOOL)

Game Oriented Assembly Lisp (GOAL) is a special programming language. It's a type of Lisp, which is a family of programming languages. GOAL was created by Andy Gavin and the team at Naughty Dog. They used it to make video games, especially the Jak and Daxter series.

GOAL was written using another language called Allegro Common Lisp. It helped develop all the Jak and Daxter games, except for Daxter and Jak and Daxter: The Lost Frontier.

How GOAL Works

GOAL's Style of Programming

GOAL's rules for writing code are similar to a Lisp language called Scheme. However, GOAL also has many unique features for object-oriented programming. This means it uses "objects" as building blocks for programs. These objects can have their own features and actions.

GOAL uses ideas like classes and inheritance. A class is like a blueprint for an object. Inheritance means new objects can get features from older ones. GOAL encourages a style where programs follow a list of steps. This is different from some other languages that focus more on mathematical-like functions.

Compiling and Memory

GOAL programs don't run in an interpreter. An interpreter runs code line by line. Instead, GOAL code is compiled directly into machine code. This is the language a PlayStation 2 console understands. This makes the games run very fast.

GOAL also manages computer memory carefully. It's designed to work well on game consoles. These consoles have a fixed amount of memory. GOAL can mix its own code with assembly language code. Assembly language is a very low-level code. This mix helps developers make games run even faster.

The GOAL Compiler

The GOAL compiler itself is written in Allegro Common Lisp. It has a special feature that helps developers. It can remember what code has already been compiled and is running. This means a developer can change a part of the game's code. Then, they can recompile just that part and put it into the running game. They don't have to restart the whole game! This feature was very useful for making the Jak and Daxter games. It helped them load new parts of the game world smoothly.

Where GOAL Was Used

First Games and Changes

GOAL was first used for the game Jak and Daxter: The Precursor Legacy. Before GOAL, Naughty Dog used a similar language called Game Oriented Object Lisp (GOOL). Andy Gavin also developed GOOL for the Crash Bandicoot games.

Later, Naughty Dog stopped using GOAL for a while. This happened because they became part of Sony. Sony wanted Naughty Dog to share their technology with other game studios. However, GOAL was very unique. Other studios found it hard to use Naughty Dog's code. Also, new developers found GOAL difficult to learn. Naughty Dog had to create its own tools for GOAL, like a compiler and debugger.

Return to GOAL

Even with these challenges, Naughty Dog started using GOAL again. They used it for scripting in some PlayStation 3 games. This included The Last of Us.

OpenGOAL Project

A community project called OpenGOAL started in 2020. Their goal is to make GOAL work on modern computers (like those with x86-64 processors). They do this by taking the existing code from Jak and Daxter: The Precursor Legacy, Jak II, Jak 3, and Jak X: Combat Racing. They then "decompile" it, which means turning the machine code back into GOAL code. After that, they recompile it for modern systems.

OpenGOAL includes its own GOAL compiler, written in C++. It also has a "read–eval–print loop." This tool lets developers try out code quickly. It's similar to how Naughty Dog worked originally. As of November 2023, the OpenGOAL team has made versions of the first two games for Windows and Linux. These versions are 100% completable. A version for Jak 3 is also being developed as of 2025.

kids search engine
Game Oriented Assembly Lisp Facts for Kids. Kiddle Encyclopedia.