Robert Natus and Game Oriented Assembly Lisp: Difference between pages

(Difference between pages)
Content deleted Content added
Jarmo (talk | contribs)
mNo edit summary
 
rv unexplained deletion by 192.103.152.52
 
Line 1:
'''Game Oriented Assembly Lisp''' (or '''GOAL''') is a computer game programming language developed by [[Andy Gavin]] and the [[Jak and Daxter]] team at [[Naughty Dog]]. It was written using [[Allegro Common Lisp]] and used in the development of the entire [[Jak and Daxter]] series of games.
'''Robert Natus''' ([[march 16]], [[1890]] in [[Viljandi]], Estonia - [[march 31]], [[1950]] in [[Bad Wilsnack]], Germany) was a [[Baltic German]] architect, mainly working in [[Tallinn]], Estonia. He studied in Tallinn and [[Riga]] (in [[Riga Technical University]]). In 1939, Natus moved to Germany.
 
Syntactically GOAL resembles [[Scheme (programming language)|Scheme]], though with many idiosyncratic features inspired by other languages such as classes, inheritance, and virtual functions. An example of what GOAL code looks like can be found at [http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html]. GOAL encourages an [[imperative programming]] style: programs tend to be comprised of sequence of events to be executed rather than the [[functional programming]] style of functions to be evaluated recursively. This is a diversion from [[Scheme (programming language)|Scheme]], which allows such [[side-effect (computer science)|side-effects]] but does not encourage imperative style.
His best known work is the current City Hall of Tallinn, built in 1932 - with its red clinker mosaique façade and lanterns by the Estonian sculptor [[Jaan Koort]], it is the most prominent building surrounding Freedom Square, and the most beautiful example of expressionist [[art deco]] in Tallinn.
Red clinker mosaique was soon copied on another of Natus' well-known building on the corner of Pärnu and Roosikrantsi street, only a few hundred meters from the City Hall. This building was inspirated by [[Johann Friedrich Höger]]'s Chilehaus in [[Hamburg]].
Natus has also created several functionalistic apartment buildings and private dwellings.
 
Like many modern implementations of Common [[Lisp programming language|Lisp]], GOAL does not run in an interpreter, but instead is compiled directly into [[PlayStation 2]] machine code for execution. It offers limited facilities for [[Garbage collection (computer science)|garbage collection]], relying extensively on runtime support. It offers dynamic memory allocation primitives designed to make it well-suited to running in constant memory on a video game console. GOAL has extensive support for [[Inline expansion|inlined]] assembly code using a special <code>rlet</code> form[http://lists.midnightryder.com/pipermail/sweng-gamedev-midnightryder.com/2005-August/003804.html], allowing programmers to freely mix assembly and higher-level constructs within the same function.
In [[1920's]] Natus (together with [[Ernst Gustav Kühnert]]) drew the general plans for garden cities Merivälja and Nõmme, both just outside Tallinn (Nõmme was added to Tallinn in 1940).
 
The GOAL compiler is implemented in [[Allegro Common Lisp]]. It supports a long term compiling listener session which gives the compiler knowledge about the state of the compiled and therefore running program, including the symbol table. This, in addition to dynamic linking, allows a function to be edited, recompiled, uploaded, and inserted into a running game without having to restart. The process is similar to the "edit and continue" feature offered by some [[C++]] compilers, but allows the programmer to replace arbitrary amounts of code (even up to entire object files), and does not interrupt the running game with the debugger. This feature was used to implement code as well as level streaming in the [[Jak and Daxter]] games.
==Gallery==
<gallery>
Image:Robert natus - linnavalitsus - pilt 1.JPG|Tallinn City Hall on a foggy afternoon.
Image:Robert natus - linnavalitsus - pilt 2.JPG|One of the two lantern holders by the sculptor Jaan Koort.
</gallery>
 
GOAL's first use was for the original [[Jak and Daxter]] PS2 game; the predecessor language, GOOL, was also developed by Andy Gavin for [[Crash Bandicoot (video game)|Crash Bandicoot]].
[[Category:1901 births]] [[Category:1963 deaths]] [[Category:Modernist architects]] [[Category:Estonian people]] [[Category:Tallinn]]
 
==External links==
{{architect-stub}}
* http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml &mdash; Franz Inc. success story
{{Estonia-bio-stub}}
* http://bc.tech.coop/blog/060118.html &mdash; Page about LISP developments by [[Paul Graham]] and [[Naughty Dog]]
* http://www.gamasutra.com/features/gdcarchive/2003/White_Stephen.ppt &mdash; (Powerpoint) ''Jak & Daxter: The Precursor Legacy'', development overview, lessons learned, very interesting
* http://www.gamasutra.com/features/gdcarchive/2003/Denman_Stu.ppt &mdash; (Powerpoint) ''Highly detalied continuous worlds'', about the streaming world loader
 
[[Category:Lisp programming language family]]
[[Category:Functional languages]]
[[Category:Object-oriented programming languages]]
 
{{videogame-software-stub}}