'''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.
'''Independent Television Service for Wales and the West''' or '''ITSWW''' is a remarkably unusual entity.
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.
The period from March to May of 1968 saw one of the most remarkable and short-lived "franchises" in the history of [[ITV|Independent Television]]. Only the ill-fated <i>Associated Broadcasting Company</i> of 1955 (later renamed [[Associated_Television_Network_Limited|ATV]]) seems to have had a shorter life.
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.
When in June 1967 the [[Independent_Television_Authority|ITA]] had announced the intended changes to the ITV structure and franchises to take effect more than a year later, the most dramatic news had been the loss of the [[Wales]] and West contract held by [[Television_Wales_and_the_West|TWW]]. After some months fighting the decision, the board accepted the inevitable and vowed to carry on providing a reliable programme service to the area until the end of the contract period in July [[1968]].
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.
Although a condition of the new incumbent's licence would be that all technical, office and engineering staff of the old company should be taken on (the standard ITA practice at the time), it was becoming obvious that the new contractor, [[Harlech_Television]], intended to dismiss all the on-screen personnel of TWW, and launch with a fresh team. This later turned out to be a strategic miscalculation by Harlech, which did more to alienate local viewers than to give a fresh image. These intentions had a marked effect on TWW morale, and programme production became more difficult as the Winter of [[1967]]-8 wore on.
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]].
Early in the new year, as the TWW share price traded ever lower, it became obvious to the TWW board that more money would be realised for the shareholders in the eventual winding up of their company if they were to "sell" the last part of the old contract to incoming consortium. This would mean a fixed guaranteed income for the final months of TWW and give some underpinning to the now-weakened share price. TWW's accountants advanced this plan, and the ITA, who thought it would bring more stability to the situation, backed it.
It was calculated that the profit after expenses that TWW might have made would be about £100,000 per month - a considerable sum in those days - and that the earliest that TWW could reasonably exit would be around the end of February 1968. It was agreed to sell the last five months of the contract to Harlech for just under half a million pounds, and this figure was announced as the lead item in <i>TWW Reports</i>, the daily news magazine, in late February. It was axiomatic in those days that viewers had affection for their local ITV company, and TWW was no exception.
* http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml — Franz Inc. success story
* http://bc.tech.coop/blog/060118.html — Page about LISP developments by [[Paul Graham]] and [[Naughty Dog]]
* http://www.gamasutra.com/features/gdcarchive/2003/White_Stephen.ppt — (Powerpoint) ''Jak & Daxter: The Precursor Legacy'', development overview, lessons learned, very interesting
* http://www.gamasutra.com/features/gdcarchive/2003/Denman_Stu.ppt — (Powerpoint) ''Highly detalied continuous worlds'', about the streaming world loader
[[Category:Lisp programming language family]]
This left one problem for Harlech. They were not yet "in the saddle" and would be forced to launch their promised new service using "in the can" TWW productions - hardly ideal for a replacement franchisee.
[[Category:Functional languages]]
[[Category:Object-oriented programming languages]]
{{videogame-software-stub}}
The ITA suggested an ingenious solution. Harlech would receive all advertising revenue from the handover date, and would pay TWW a fixed weekly fee to continue making local productions for a further five months. During that time Harlech would be preparing its own programmes, using the same studios and staff, for launch proper in the summer.
This idea commended itself to all parties, and it meant that Harlech would not have to "take on" the TWW screen personnel that it intended to dismiss in the long run anyway.
The service would require a temporary name, and the literal <i>Independent Television Service for Wales and the West</i> was chosen.
The cordon sanitaire that was thus created between the end of TWW and the start of Harlech was somewhat undermined, however, by the TWW staff who ran the service using Harlech's money. They insisted that "in the can" TWW productions, of which there were many, would still carry "TWW presents" and "TWW production" captions. This left the viewers in a confused state, as a new service appeared to be presenting productions from the long-standing local contractor.
To cap it all, the TWW in-vision announcers were retained by the interim set up, giving a superficial impression that little had changed. This was an irony, and referred to in the local press as "TWW's revenge". In the event Harlech realised that the confusion was not helping, and brought forward their own start date to late May. The interim service lasted just under three months, before it was forgotten by history.
The interim service carried on with both of the former TWW services under the names 'South Wales and West' and '[[Wales_West_and_North_Television|Teledu Cymru]]' – the latter having been the name the existing on-air name in that region. For the interim period, both names were prefixed with the new phrase "Independent Television Service". Thus the new <i>ITSWW</i> (the initials were never used on air, and mainly served as an abbreviation used by the newspapers) was operating two channels known as <i>ITSSWW</i> and <i>ITSTC</i> respectively. What the viewers made of all this was anybody's guess, but extensive [[broadsheet]] press advertising was taken out to explain the arrangements to those viewers deemed to be interested. Nothing was placed in the [[tabloid|tabloids]].
A temporary ident was designed, with four white horizontal bars shooting towards the viewer, electronic music, and the name revealing itself a line at a time. The old TWW clock was retained, as were the in-vis announcers. With TWW production captions on the local programmes, it seemed as if TWW had moved to another region, and the new local incumbent was presenting programmes from them sent over the network. It was a short lived and unsatisfactory arrangement, but provided those 'in the know' with a fascinating glimpse of a 'behind the scenes' struggle.
When Harlech Television launched its own identity in late May, viewers must have been more startled still, as it was "all change" for the second time, and this time with new screen personalities.
ITSWW has been written out of the history books ([[Brian Sendall]]'s otherwise complete history of the ITA's operations makes not one single mention of the service), and is all but forgotten now. Only stills from the time even prove that it existed, along with a few tape recordings and some broadsheet corporate advertising.
<i>This article, by </i>Kif Bowden-Smith <i>first appeared on the [http://www.transdiffusion.org/ Transdiffusion] group of websites and is used with permission</i>
* Ident from Electromusications (unofficial history site) http://www.transdiffusion.org/ident/album/itsww/
{{ITV}}
[[Category:ITV]]
[[cy:TWW]]
|