📄 ch8.mht
字号:
Atkinson to help me. With new determination, we set to work. <FONT =
size=3D-1><A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter8.html#=
top">Top</A>=20
</FONT></P>
<P><A name=3D"THE LONG HAUL: MAY-DECEMBER"></A><B>THE LONG HAUL: =
MAY-DECEMBER=20
1982</B></P>
<P>Here is where we stood in May, 1982: I had established the broad =
design but=20
had left many details unfinished. A number of disparate chunks of code =
had=20
been written, but they did not fit together at all. There was no =
overall=20
design document. Faced with so many things to do, I foolishly opted to =
finish=20
some of the more obvious minor things. I wrote the CALIG module that =
draws=20
Gothic characters onto the screen. Valerie set to work preparing the =
bit map=20
tables for the routine. Larry worked on finishing the title scene by =
adding=20
the music and the dissolve routines. This work, never intended as more =
than=20
flashy window-dressing, unfortunately consumed nearly two months.</P>
<P>In June we began work on the CAMELOT module, with Valerie taking =
primary=20
programming responsibility. This module was actually a set of =
illustrated=20
menus. Each room (menu) had four options described by a single-word =
entry. A=20
vertical band allowed the player to move his crown-cursor to the menu=20
selection. To the right of the vertical band we placed a graphic =
window for=20
showing some critical bit of information. For example, in the Round =
Table=20
Room, we showed a circle depicting the Round Table and a set of =
shields=20
representing the knights of the Round Table. Their spatial positions =
in the=20
room indicated their social relationships. In the Treasury Room we had =
intended to show piles of coins; we had to delete that feature later =
on to=20
show more detailed economic data. We had also intended to use a =
kernelled=20
display that would have allowed much more color on the screen; later =
on we=20
gave up on that idea, for it would have consumed too much execution =
time.</P>
<P>As Valerie set to work on this sizable job, I began working on the =
social=20
game associated with the Round Table. I plunged into the task without=20
realizing the magnitude of what I was attempting. I wanted to produce =
a small=20
game that would require Arthur to manage a social group. I quickly =
realized=20
that the most interesting features of such a situation lay not the =
radial=20
relationships (the relationships between Arthur and the other knights) =
but in=20
the circumferential relationships among the knights. Although Arthur =
must=20
perforce deal with knights radially, the circumferential relationships =
may=20
well be the deciding factors. I found this system fascinating and =
worked=20
intensively with it. I developed a set of algorithms that model group =
behavior=20
in a most interesting way. I was so pleased with the algorithms that I =
threw=20
together a short BASIC program that turned them into a stand-alone =
game. This=20
game seemed very promising to me; particularly impressive was my =
wife's=20
reaction. A woman who takes a dim view of silly games, she took an =
instant=20
liking to this game. Surprised and gratified that I had finally =
produced=20
something she could enjoy, I decided to pursue this new game, =
originally a=20
study for EXCALIBUR, as a completely new project. Aric Wilmunder was =
hired to=20
execute the design, called GOSSIP.</P>
<P>In July we entered a long and slow period of frustrating progress. =
I began=20
devoting a larger share of my time to the writing of this book. Other =
duties=20
further distracted me. Without my active daily participation, the =
project=20
began to flounder. Larry and Valerie plugged away at their work, =
making the=20
best of a weak situation. For months they slowly built on the system =
we had=20
created, fleshing out the skeletal system I had so briefly described. =
Since I=20
had so little time to devote to the project, I did a great deal of =
designing=20
by the seat of my pants. In our regular weekly meetings, they would =
present me=20
with the latest design flaw they had uncovered. Having no clear =
memories of=20
previous decisions, I would hack together an ad hoc solution. My =
intuitions=20
are fairly good, and many times I got away with these deplorable =
techniques.=20
However, many of my on-the-fly decisions fell apart and wrought havoc =
with the=20
overall design. Poor Valerie put features into the CAMELOT module, =
only to=20
have have them stripped out, then later re-installed.</P>
<P>Our records for this period indicate a great deal of wasted effort. =
We had=20
intended that the treasury room in Camelot would be illustrated with =
piles of=20
coins indicating quantities of wealth. A great deal of time was =
expended=20
writing coin-drawing routines. In the end, we realized that we didn't =
have=20
enough screen space to show these piles of coins, so we had to use =
simple=20
numbers drawn onto the screen. Indeed, the list of things we designed, =
programmed, and later dropped is a revealing measure of my own failure =
to plan=20
ahead. The list includes declarations of war (dropped but later =
incarnated as=20
"Attack"), alliances, sieges, demands for tribute, armies moving =
around in=20
Britain, and a host of minor patches.</P>
<P>Six months were consumed in this muddle. These six months were not =
a total=20
loss; indeed, much progress was made: Larry completed the economics=20
processing, the BRITAIN module, disk swapping of modules, the =
presentation of=20
diplomatic news, and a number of major consolidations of the =
ever-burgeoning=20
code. Valerie took the CAMELOT module much further, linking it to the =
new=20
features and making it the largest and most complex module in the =
entire game.=20
Yet, all of this could have been completed in half the time had I been =
more=20
organized and devoted more energy to the project. By Christmas, =
everybody was=20
tired of the project, demoralized, and despairing that the project =
would ever=20
be completed. Those were dark days indeed.</P>
<P><A name=3D"RENEWED EFFORT (JANUARY - APRIL 1983)"></A><B>RENEWED =
EFFORT=20
(JANUARY - APRIL 1983)</B></P>
<P>In January 1983 I was able to return EXCALIBUR to its rightful =
place as my=20
highest priority project. I plunged into the project with a cold =
determination=20
to get this project done and out the door. Gone were the grand and =
lofty=20
feelings of 1982, the misty-eyed vision of a truly grandiose game.</P>
<P>In their place was a bitter resolve to finish the game at all =
costs. I met=20
long and frequently with Larry and Valerie. Ruthlessly I slashed at =
the=20
design, ripping out vaguely defined or non-essential sections. The =
design=20
discipline that I had sought to escape by consuming vast computer =
resource was=20
forced on me by my inability to complete the project. At home, I =
worked on the=20
artificial intelligence routines for the knights in the Round Table =
Room. This=20
took a few weeks. Then I tackled the BATTLE scene. During February and =
March I=20
wrote, debugged, and playtested this module. I was possessed, driven =
to=20
complete the game by my self-imposed deadline of April 1. My records =
indicate=20
that I averaged 300 bytes of debugged code per day. Industry averages =
are=20
75-100 bytes per day. Larry and Valerie were caught up in the frenzy. =
They=20
worked furiously on integrating all the pieces of the program together =
and=20
resolving the myriad inconsistencies thereby produced. Entire modules =
handling=20
Merlin's room, economics, vassalage, tithes, and swapping code were =
designed,=20
coded, and debugged. </P>
<P>Despite this, we failed to make our April 1 deadline. We moved it =
back to=20
April 15. Even this became impossible to meet. Nevertheless we made =
April 15=20
an important milestone -- all coding would be completed by this date. =
</P>
<P>The first two weeks of April were consumed in a wild orgy of =
effort.=20
Meeting every day, sometimes for four hours at a stretch, we hammered =
out what=20
was undoubtedly the toughest part of the design: the artificial =
intelligence=20
algorithms. </P>
<P>I had reserved this task for last, for the AI routines must reflect =
every=20
aspect of the design. The design must therefore be complete, and all =
variables=20
completely defined, before AI algorithms can be designed. Moreover, =
the=20
creation of the AI routines tends to freeze the design, since =
significant=20
design changes after the AI is done can ruin the entire AI design. =
</P>
<P>The AI for EXCALIBUR is easily the most difficult I have ever =
attempted. It=20
must consider the personalities of the different kings, economic =
factors,=20
military factors, and geometric factors. The system we developed uses=20
intermediate variables that express concepts such as the amount of =
military=20
prestige a king has, how much prestige he has an economic manager, and =
how=20
well-liked he is. Personality traits factored into the algorithms =
include=20
ambition, stupidity, and defensiveness. </P>
<P><A name=3D"FINAL WORK (MAY - JUNE 1983)"></A><B>FINAL WORK (MAY - =
JUNE=20
1983)</B></P>
<P>We almost succeeded in meeting our milestone of having all code =
completed=20
by April 15. The code remaining was quite trivial. We all took a break =
for two=20
weeks. In May we began final work on EXCALIBUR. Larry and Valerie =
began=20
rooting out and eliminating all the bugs in the program. As I write =
this, they=20
are still working on the task. In June, we will begin tuning and =
polishing the=20
game. I would like to spend more time polishing this game, but it is =
long=20
overdue. It will have been in development for 18 months, and will have =
consumed 3 programmer-years of effort. In these days of six-week =
development=20
times of quicky games, EXCALIBUR may well be one of the most =
sweated-over=20
games ever done. It is certainly one of the most ambitious designs =
ever=20
attempted. It may not be successful, but if it fails, it will not be =
for want=20
of effort. </P><BR>
<P><I>Crawford's 1998 note:</I> We shipped EXCALIBUR in July.</P></UL>
<UL>
<CENTER>
<P><FONT size=3D-1><A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter8.html#=
top">Top</A>=20
| <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Coverpage.html=
">Return=20
to Table of Contents</A> | Chapters: </FONT><A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter1.html"=
>1</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter2.html"=
>2</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter3.html"=
>3</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter4.html"=
>4</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter5.html"=
>5</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter6.html"=
>6</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter7.html"=
>7</A>=20
- <A=20
=
href=3D"http://www.vancouver.wsu.edu/fac/peabody/game-book/Chapter8.html"=
>8</A>=20
</P></CENTER>
<P>
<HR width=3D"100%">
<P></P>
<CENTER>
<P><FONT size=3D-1><A href=3D"http://www.vancouver.wsu.edu/">WSUV Home =
Page</A> |=20
<A href=3D"http://www.vancouver.wsu.edu/fac/peabody/peabody.htm">Prof. =
Peabody's=20
Home Page<BR><BR></A>Copyright © 1997 Washington State =
University. All rights=20
reserved. REV.5.27.97<BR><I>Comments and questions: <A=20
=
href=3D"mailto:peabody@vancouver.wsu.edu">mailto:peabody@vancouver.wsu.ed=
u</A></I></FONT><BR></P></CENTER></UL></BODY></HTML>
------=_NextPart_000_0059_01C4FB03.29C58260
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.vancouver.wsu.edu/fac/peabody/game-book/marble.JPG
/9j/4AAQSkZJRgABAgEASABIAAD/7QE0UGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQABOEJJTQPzAAAAAAAIAAAAAAAAAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1
AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAA
AAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////
A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D
6AAAAAD/////////////////////////////A+gAADhCSU0EBgAAAAAAAgAA/+4ADkFkb2JlAGSA
AAAAAf/bAIQAEg4ODhAOFRAQFR4TERMeIxoVFRojIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAEUExMWGRYbFxcbFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAVwBgAwEiAAIRAQMRAf/EAT8AAAEFAQEBAQEB
AAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQC
BQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKy
gyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3
h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLh
coKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1
VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//dAAQABv/aAAwDAQACEQMRAD8A7ZKYTAkdjPgnIkBJSiZE
SmAAMlOONBqNEiDOnHfVJTEnXXQeCUEwToOwSJ10nTxT8mO440SUoiDqdB2SBA+A8ExgkAnUpGAY
CSVEmSANPFOBOsz3USEgCCew8AkpcjWR3T9gmmEgZGgn4JIf/9DtTJEFIEgQExM8pwRGiSlwTKYm
dOD2SJ000KiJJJJ4PKSlSQCT280gTMqRBIkapiCEkqAJM9kiIk8nsnB0MKPIkkyElLggSDoQmJBi
OPBIgEz4+KQGqSlzoJPyCQJPGiYyTqnBISQ//9HtSNeeU4EAymA4KcgnnhJTEpgCDI+acgSlEJKX
DiTAEBKBwUwGvgnSSoAR80iADCcBRI180kLghMOdNfFISBKcEAT49klKPgAmGsHiE/Jk6pAaEpKf
/9LtASNE5MCSkQAIHJ5KbQpKXEEyUiNUwKcHSD96SlACQnj7k09xykSeOAElKJ8tEo7pEyYJ1SGv
wSUoiBqmMg+XYJ0xEg6capKUSeEjIA80gZOmpHIUtHAjhJT/AP/T7Z0AAKIHgkTOp7pwO6SliITp
RJTE6wkpWpCcGSZ08CmMgApwJgkn4JKUB3nUpAGUgQDr4J5AB00SUskZIjgJzqJBCYyNSElKAmT3
PdOABI7pgQdQkSQZCSn/1O1EJ14gkkp9vMwYURzqvEkklPtxgeYTajjULxJJJT7aSZ4EKXnrHgvE
EkkvtpGsz8ASnBOoI08V4ikkp9rG7WJhTHmvEUkkP//Z
------=_NextPart_000_0059_01C4FB03.29C58260--
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -