From 3d999b1a2cbdaf0102ffc8b5abb2015931c5d0e7 Mon Sep 17 00:00:00 2001 From: David Griffith Date: Thu, 21 Apr 2016 20:53:19 -0700 Subject: [PATCH] Adding chapter 17. --- chapters/17.rst | 157 ++++++++++++++++++++++++++++++++++++++++++++++++ images/picJ.png | Bin 0 -> 3264 bytes 2 files changed, 157 insertions(+) create mode 100644 chapters/17.rst create mode 100644 images/picJ.png diff --git a/chapters/17.rst b/chapters/17.rst new file mode 100644 index 0000000..f0b148c --- /dev/null +++ b/chapters/17.rst @@ -0,0 +1,157 @@ +========================== +\*\*\* You have won \*\*\* +========================== + +.. epigraph:: + + | *I might just as well have saved the labor and sweat I had put into* + | *trying to make my reports harmless. They didn't fool the Old Man.* + | *He gave me merry hell.* + + -- The Continental Op in Dashiell Hammett's *Red Harvest*. + + +.. only:: html + + .. image:: /images/picJ.png + :align: left + +.. raw:: latex + + \dropcap{j} + +ust a few final words to round things off. All that remains are the +appendices, with terse but comprehensive summaries of the Inform +language and its IF library, plus the source code and run-time +transcripts of the games we have developed here. Our "labor and sweat" +have been oriented towards making your introduction to Inform as +harmless as possible, but this probably won't fool you for long. +Although we believe we have covered the system's basic functionality and +given you enough grounding to feel comfortably sure-footed as you roam +the designing wilderness, there are still many techniques to be mastered +and additional aspects to be learnt, including medium and advanced +features at which we have not even hinted. + +Before you give us merry hell, however, be reassured that the remaining +lore, which may at times feel obscure and enigmatic, is fundamentally +constructed around the principles that you have already seen. You should +now be ready to browse through other documentation and resources without +them seeming full of inscrutable hieroglyphs; on the contrary, you'll be +able to focus on those bits you don’t know about (which now, we hope, +will be rather less abundant). Inform, like other powerful and flexible +IF design tools, is prepared to cope with the needs of demanding +authors: "I don't like the way it handles the TAKE ALL command; I wanna +change it." And so you can. "I'd prefer the listings of objects +organised in a prettier way." Go right ahead. "I want to have a better +social life thanks to Inform." No problem, but you'll have to be one +damn charming designer. Oh, well. + +Inform has been designed to let you do simple things intuitively and +quickly. Left to its own devices, it offers a wide range of default +functionality, and we’ve seen that it’s also easy to alter some of its +standard behaviour. The desirable goal is for you to reach a state of +such familiarity with the system that you can concentrate on designing +your games. By "such familiarity" we are not implying that you should +know the innards of the library inside out; such people exist, but +they're few and far between. However, once you become reasonably +proficient at typing in code, with a knowledge level similar to the one +provided by this guide, a careful look at the appropriate section of the +*Inform Designer's Manual* should help you through most difficulties. +Admittedly, there are problems and *problems*, from the slap-on-the-head +trifle to the teeth-gnashing nightmare. We advise you to put the +nightmares on hold for the time being. It may be that one day you +discover that their fangs were not as sharp as they seemed. + +There are many interesting topics that you could pursue next. Here are a +few: + +* **Score:** we have seen two ways of scoring a game, but you may decide + that scores have no meaning in your game. And there is yet a third + built-in system for defining "tasks" worthy of reward, from "wearing + the ridiculous bonnet at the Ambassador's party" to "convincing the + unfriendly monkey to play the upright piano". This technique requires + a bit of knowledge about... + +* **Arrays:** these are enumerated lists of variables. Instead of having + just one variable to play with, you can have a collection of them, + indexed by number. + +* **Lists and inventories:** there are many functions to let you arrange + the way objects are grouped and presented to the player at run-time. + +* **Vehicles:** cars, elevators, hot-air balloons, magic carpets, + spaceships -- or any other device in which the player may travel + around. + +* **Create verbs and vocabulary:** although we have already nibbled at + this concept, you can fine-tune the parser to allow for all sorts of + amazing commands (from magical utterances that trigger unfathomable + spells, to special actions that affect many objects at once). + +* **Changing the player:** who says that the player character must be a + boring human being? Metamorphose the unsuspecting mortal into a + virtual-reality proxy, a fantastic animal, an untouchable ghost, a + powerful telepath or a telekinetic vampire. Undecided about which one? + Make your game with multiple starring characters and switch between + them when you want. + +* **Passing of time, timed machines and events:** set a timer that ticks + away, unbeknown to the player and attach it to a bomb; a door which + opens only once every ten turns; a dragon with short fuse and little + patience; a marching patrol of soldiers; a clock that ominously chimes + the arrival of sunset and doom. Change the "turns" count on the status + line into minutes, or days. + +* **Mutable directions:** north is north? Not necessarily. Change the + direction objects of the game to "forward", "back", and so on. You are + on a ship? "fore" and "aft", "port" and "starboard" may be the thing + for you. Enter a mirror and have the map and all the directions reflected. + +* **Complex NPCs:** how unpredictable can the behaviour of that + impertinent butler be? Can he talk, move, steal your possessions, + poison your tea? Does he react coherently to the player's actions? + Does he have a hidden agenda of his own? Although NPC creation is + indeed a knotty craft, it’s one worth mastering. "Living" NPCs + increase immensely the reality of your games. + +* **Techie features:** change the status line, or the command prompt. + Clear the screen, or alter its colour; centre text upon it, and colour + the text as well. Wait for the player to press a key and then trigger + some action. Display a message one letter at a time. Add a tiny + compass showing available exits at all times. + +Interactive fiction mixes creativity and narrative skills with coding +expertise. Usually, those games which make the biggest impact have a +fair amount of both. If you feel yourself lacking one of these qualities +at present, contemplate a little teamwork: there are IF collaboration +lists on the Internet, where people offer to lend a hand with ideas or +programming (and some very good games have come from the mixed efforts +of a well-tuned collaboration). Above all, don't forget the importance +of beta-testing, which may produce the feedback inspiring you to turn +your decent attempt into a killing machine. There's little as obnoxious +to players as a game which is obviously under-tested. Getting those bugs +out is your responsibility; be sure to clean it as best you can, but +never *ever* release a game until it has been kicked around by others. +And remember that beta-testers are (almost certainly) experienced +players, so their advice beyond the call of bug-hunting is as priceless +counsel as you are likely to get. Encourage them to comment on your +achievements in both programming *and* design. + +Now: where to go, what to do? Allow us to insist one last time on the +importance of reading the *Inform Designer's Manual*, an excellent book +in all respects. While you are at it, write small games, training +exercises; we don't advise you to try an epic saga for your first +scenario, but if nothing else will work for you -- the Think Big +approach -- don't let us deter you. It's a good idea to play other +people's games, because you'll know the average level that players may +expect; check the newsgroups for comments on good titles. Be sure around +September to keep an eye open for the Interactive Fiction Competition +(http://www.ifcomp.org/), an annual showcase for short(ish) works. + +And, who knows? It might be that next year we’ll all be smashed by +*your* entry. + + +.. todo:: This signoff should be aligned to the right side. + +*Sonja and Roger* diff --git a/images/picJ.png b/images/picJ.png new file mode 100644 index 0000000000000000000000000000000000000000..b681ee59ba25c23ab4d5d457f58bbae1cc2d2b8e GIT binary patch literal 3264 zcmV;x3_tUUP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0063uBQgL000(qQO+^Rb1P}-_FD{@-tN;KD$Vo&&RA}DinjxI4J`%?xBazrh zBr-M<85tXiL}DW&k+Dc5G8TzM#v+kOZYGqLZYlfT{qN2k?|rsin&z9C{AMxv zMgE^*Q#YP|TgI^7w_is8xc&w<8>0jxgs{`igy0Q|KU2nX!NrgN8F^mKU%(3JPZkNh z46mDv{PD%6zkmrsa$T1tCFXT=aNXf0OA=EX+lRi%UkKj#Aq4o?Eq~+2jHCqz*NBYP zs{H&s5PrNhFPQn>;dj{RX?_fD9Sc%lz{K&ke!=RmJ$``&2|6f1O>=9?y3_?sJNszm zU$EvMz$77R-UcISZnw?ZDNSU52Xil&{#zKxH!o8{?NFIz>q^I$i&p<3*dSTTOgib! z7voyDi@a)e4O4#$i&v-`im#YIimL|QB}{zp@eT&@JHv~Zw}oCca4+fqW7x7wYc=!M z=GQRxdi%Vxe+#yeBqM4;H|Ceqehp(c9e#CUCrED$&6_dk>+rdTQHcpzR#H@dm>UNH zc|Bd&5Fq5z(nE~9KZGTa-wLfczVH43wt^{4Q4(7CW%5hAjWFWz6P8}Uj_I9kPU!qA zY{ez1aGvtHe6;RyGL|3hIzldBM3$y1nnLNdBGs?3nCR%TDWV&yT35&vS?p)HdP3F< zm@_()biiJ9Nx`v2S^iLUxQ40PR8{L5sZBjJAhR3TitU#;PqdIql580uDU*g)!oIZ} zE@8#wT34I>pYt8b=kG9>iF)1&J>{hA0^|{~H7aAIm)fzPu;~*fwlH{iR9N%YCu#T! zGo+nk{Q+K7+O$NNSW)R(o8*TZpDFVM;}a-ETcd?2tI93?K=b7rObQR{ z47RRQ&{Y=r^bWgDSF1C%!%o&2a`>_hDPON)OWIagfK*@(FWYgVS`>9vf@-+e?K>>J zguy2vET@JYQR^kFCP8gO0uzgQ3aSr)r3}<4x2%xWJM1c`sj6jz>QGwnLaV0Rz%S9Z z511rtxjD9A&d^0lbD~-(jB`@2Jf&|1-5S@spD@yQAi@cZ3)9fKej2BBDI@IzmL-D) zos}Nu42$)aXrpA75Qb^weZ{8FQuzc+)n{!?l_q@tgc0UoV#>XZ(2atMy&a$g&zfOW zBtP#KvTNxtAwc@}zH<<9&ihGbShUj%7%|Y_8tdtPu#OQs^erqHFoas`jPP!K!7k?P zqBbge*rU|VCoCm(zfEGs%wG;o_1u(z#~1@;Qj#8;WXT0A{e+2!J1zv$*hN=%#Yj%F z9AQkTl-SMYnUE&!R~Q%inH$5K8)1cJ*m28MTo=Sw z%OJ8Ka|kEUH50^kwNGzmby~#zZ4vil4hM1#(*$xiI=3j%0h|5~+azU`%?3_!jfP;{ zYg{a31|wJkK`=vJ324Fk34_*(xM-ObCME_}eTOZO%4k74N+8;(pCW8NBt3Hiz&H!$ zxp=XR^S;~!op`s}piWAoFmZ_uTg&zX1pBdyGHq6U}Cj}$qgbqKH zH?VDlTBj12BIvrP-Lm3Y6R5P<3xb9m$!mC*{`(b<;{8iSykgc3AQ9?7f?MqP<;QZ9 zDNek5mb~K&cCoSe1qO4!r(y%ube!IvlV$(N0LXI}VMpQ`-qiTluts4;1<{%nv1t&= zqioFiF%8{w1K{5*o0p|S2hZMB7}Tk}hiQYhc`zZ-`z)|W(isU(ULqDmm`@l=Kj8#3 zh{@B~g0WlJQmDzhbl7}K#11R;9xZiTo^xgqQD4F`qN6t(0oyKkef01RHVWR21PVUS zNVYeX<=!)kzgDS01pkC-Jl`rJtQSRs?v(r%W<{D~z z^)1X32rp7wY?tHi*4LF!Et!A94*cnG^P-fyw+tpD5oryRTbC)GNle1FnI`KuSownS z&+ck>2XjOV*d#&pS6Q~7mbI|_e!B6fQuSL!JomN11nlctp)-uXgN>}NEzRHyiY8D( z^`3cMlJWy~EMCQ%8qGr|IukLd>-G+|P}>;7VSi8*RfetUz%3a+V27>Z4OWtbVjOF! z5Vzd%ZwAe0@8D=wkoTBhg*cMj=gVGl*%fcVQ80kaR zGE9%P(XfUT(RpL*EOfcAYR{m4!C2IhA2EY;YaKn#hu>g?%nR>0CjPP%d_SaVj$ZQz z;{$f}xFP@5GH^%`xH#Cvr~AaOr$jM-fn7Xj+gSG-jFKr6SPgsPlHENg)?Ro&Vf1D`)bb7#+(;!w^JRi4ajOQZm$#ce+8(2XM(J{3N zC}6Pjvtj$r?5L|x#g*TNwsCFi{V>L(xfM?V`gZN_EK5mEswg+h_AEqCtaQ}1T@Ki( zDwr1I+TM>K`DygFHcf9$S>}GdjWc4?ES{B)N!0p$HY}U1vtuF-mp|`sqXNfOcqm;+ zQ|bzws30S&>JDZ}$4f#346&f`==ThRZ5#K?qx_!EY1nsTjQBasV~;0gu5Mjps^%TG zRJQYAbXzJRTiAR-E*4lnaP(tXPb?Z%@YL|w#hecP)~#zy?eKKdIFE;pu3zGj&kyPM zw#O4t=X!jsy$_dR8O+g-*?P)J7WSXj+U@6!=i{Be>V_~lXTcN=I6urGc(BmEEL(C0 z7nk7cx=>08(d`@E%$VUJ`Ko&MiBr|3CHAjZLWCm0?` z!UcDIYrxN)U#EEZ$00_*q7r{REyE+&MocRnrmW>jqli+o7vddlxZ3Y9o##K#(jj{!o#-|zh zzcC!fWl(@%j?hY;4lSDA0gVrjWeueW^1>Ar0(vwuUft zEj~JdL5%?i;?Zr;rGyFYTI zy%KGt7k%ybn)C~bW<|GuH1e^+u9X#D`ekg>Kh1p z!Id?tcs{zC2gpbzB!$NH)BGuuA&m1)y816%|5Mn%0LkfBq}JF)TL1t6C3HntbYx+4 zWjbSWWnpw>05UK!HZ3qTEipD!FflqcF*-6fEigAaFfbgiT@U~O03~!qSaf7zbY(hi yZ)9m^c>ppnFfuJLGA%MOR539+GB7$bI4v+ZIxsK>pTNWb0000