home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1997 June / CDW0697.iso / Quake / NIVELES / QC106PAC.ZIP / README.TXT < prev   
Encoding:
Text File  |  1996-11-19  |  3.9 KB  |  106 lines

  1. Complete Quake-c ver 1.06 package:
  2. Compiled by Rob Albin (albinatr@apci.net)
  3.  
  4. I basically made this since Id never got around to making a complete
  5. Quake-c ZIP including the QC source and compiler for ver 1.06.
  6. Also added two files that IMO are really usefull with the package.
  7.  
  8.  
  9. Includes:
  10.   Original Quake-c utilities
  11.     (compiler and source code for compiler)
  12.   
  13.   ver 1.06 of the QC PROGS.DAT source files
  14.     (includeing updated client.qc and weapons.qc)
  15.  
  16.   qccwin32.exe, a faster QC compiler
  17.     (author unknown, from ftp://cdrom.com/pub/quake/utils/quakec/)
  18.   
  19.   qcman10.txt, a comprehensive QC reference manual
  20.     (by Ferrara Francesco, from ftp://cdrom.com/pub/quake/docs/editing/)
  21.  
  22. (PROGS.DAT deleted from archive, for space.)
  23.  
  24.  
  25. --------------------
  26.  ORIGINAL README.TXT
  27. --------------------
  28.  
  29. This is the last major component of the quake utilities to be released.
  30. To be honest, I have been a little reticent to release this because
  31. most of the actual qc code is basically rather embarassing crap.
  32. The time never became available to even give it a good top to bottom
  33. going over.  I never spent any quality engineering time on my parts,
  34. American wrote a lot of qc code, and even Romero has a bit of work in
  35. there.  It is a mess.  If you look through the code and occasionally
  36. think "This is stupid!", you are probably right...
  37.  
  38. The compiler itself can be drastically sped up by just replacing the
  39. symbol searches with binary trees or hashing.  We remotely compile on
  40. our alpha, so it hasn't been a big enough issue for me to do it, but
  41. as the code size grows and grows it will be done sooner or later.
  42.  
  43.  
  44. The resulting code is horribly nieve and space ineficient (twleve
  45. bytes / instruction).  If common subexpression removal was added,
  46. the instruction count could probably be cut nearly in half.  I would
  47. have liked to have done a better job at this, but this was my first
  48. compiler front end, and I had a ton of other things fighting for my
  49. time.  The next one will turn out better. (wow, I'm making a lot of
  50. excuses here, aren't I?)
  51.  
  52.  
  53. Qcc also performs some other maintenence functions for us, like
  54. rebuildinng all the brush models and making pak files, but those
  55. functions are only usefull if you have created all new data for
  56. everything.  models.qc and sprites.qc don't actually generate any
  57. code, they are just parsed by modelgen and spritegen and included for
  58. completeness.
  59.  
  60.  
  61.  
  62. To modify the quake program code, set up a new game directory parallel
  63. with id1, and containing a "progs" subdirectory.  Copy all the .qc
  64. files and progs.src into that, and just run qcc from that directory.
  65. That will compile all of the files listed in progs.src and (if there
  66. aren't any errors) generate a new progs.dat file in the parent
  67. directory.
  68.  
  69.  
  70. As a simple test, open the client.qc file, go to the ClientObituary
  71. function at the end, and change some of the messages.
  72.  
  73. The directory structure will look something like:
  74.  
  75. /quake/quake.exe
  76. /quake/id1/
  77. /quake/mygame/progs.dat
  78. /quake/mygame/progs/progs.src
  79. /quake/mygame/progs/world.qc
  80. /quake/mygame/progs/client.qc
  81. /quake/mygame/progs/... etc ...
  82.  
  83. Run quake with "-game mygame", which will cause quake to look for data
  84. in the mygame directory before falling back to id1.  In this example,
  85. it will find the new progs.dat from mygame, and take everything else
  86. from id1.  You can type "path" at the quake console to verify the
  87. current search order of directories and pak files.  THIS WILL ONLY
  88. WORK WITH A REGISTERED VERSION OF QUAKE.
  89.  
  90.  
  91. The header qcc.h has the language spec and some documentation, but
  92. I'm not positive if it is all current.
  93.  
  94.  
  95. The only documentation for the various builtin functions I can offer
  96. is the source code used by quake.  See builtin.c.  Some of them are
  97. required to do things outside the scope of the qc world, and some are
  98. just there for speed reasons.
  99.  
  100.  
  101. PLEASE don't ask me questions about all this!
  102.  
  103.  
  104. John Carmack
  105.  
  106.