home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1999 May / Gamestar_05_1999-05_cd1.bin / cdstar / unreal / mods / ctf / NnCTF051.exe / SYSTEM / openmod_readme.txt < prev    next >
Text File  |  1999-01-07  |  12KB  |  244 lines

  1. OpenMod 0.0.1
  2. http://www.captured.com/nonamectf/openmod
  3. -------------------------------------------------------------------------------
  4.  
  5. IMPORTANT NOTE!: This readme itself is in prerelease form.  It is primarily
  6. here (in the pre-release source-relases) to show off OpenMod's sparkly new LGPL
  7. license, as well as author information.
  8.  
  9.  
  10. -------------------------------------------------------------------------------
  11. 1. Current Features
  12. -------------------------------------------------------------------------------
  13. OpenMod is a simple UnrealScript package which provides Unreal mods with some
  14. powerful dynamically loaded information.  As of the current release, OpenMod
  15. supports the following features:
  16.  
  17. * Dynamic Level Information - Upon the start of a game, OpenMod will load a
  18.   level specific UnrealScript class which can spawn new actors, move existing
  19.   actors, delete existing actors, and perform any other operation allowed in
  20.   UnrealScript.  This UnrealScript class is kept separate of the level and is
  21.   server side only, allowing mod authors and/or server admins to make changes
  22.   to actors in a level without having to have the user download a modified map.
  23.   It also allows and provides the following:
  24.  
  25.   * Single player maps can be converted to DM and/or CTF play without having
  26.     to have users redownload the entire map.  (Some of Unreal's single player
  27.     maps approach 10mb in size.  An OpenMod info file is typically only a few
  28.     kilobytes in size!)
  29.   * CTF map authors can spawn OpenMod-provided "flag placeholders" which, when
  30.     coupled with an OpenMod-compliant CTF mod, will have the mod-specific flag
  31.     spawned in that location.  This allows one map to support multiple CTF mods
  32.     by only having to create one set of flag location data!
  33.   * CTF extensions supported by NoName CTF (http://www.captured.com/nonamectf)
  34.     with UWar support forthcoming (http://www.planetunreal.com/uwar)
  35.  
  36.  
  37. -------------------------------------------------------------------------------
  38. 2. Release Notes
  39. -------------------------------------------------------------------------------
  40.  
  41. 0.0.1:
  42.  
  43.  
  44.  
  45. -------------------------------------------------------------------------------
  46. 3. Future Plans
  47. -------------------------------------------------------------------------------
  48. OpenMod is currently in the very early stages of development.  As such, it is
  49. far from reaching a full feature set.  Some future plans include:
  50.  
  51. * Item-set support - Server admins and/or mod authors can define various
  52.   different sets of items, which can:
  53.   
  54.   * Be provided to each player upon spawning/respawning.  (Ex: Each player
  55.     could be, by default, given a grappling hook for each game.)
  56.   * Replace existing weapons and/or items in a level with different ones.
  57.     (Ex: A mod-author, upon creating a new weapon, could create a corresponding
  58.     item-set to replace all instances of a particular weapon with theirs.)
  59.  
  60. * Multiplayer Dynamic Music Support - Allowing different music to be played
  61.   under certain circumstances.  (Ex: In a CTF game, have fast-paced music
  62.   played when the flag is stolen and have it slow-down when it is in base.)
  63.  
  64. * Improved documentation.  All of this will be available on the currently
  65.   under-construction, OpenMod web site.
  66.   (http://www.captured.com/nonamectf/openmod)
  67.  
  68. Ideas for additional features are welcome.  Please e-mail davidl@captured.com
  69. with your ideas.
  70.  
  71.  
  72. -------------------------------------------------------------------------------
  73. 4. Adding OpenMod support to a mod.
  74. -------------------------------------------------------------------------------
  75. OpenMod, being a server-side only mod, only requires a few minor changes to the
  76. specific game type.  In order to ease this process for mod authors, especially
  77. considering the fact that game types are located in various parts of the class
  78. hierarchy, OpenMod-compliant mods only need to spawn an 'OpenModGameInfo'
  79. object, occasionally provide it with bits of information, and make function
  80. calls to the object.
  81.  
  82.  
  83. -------------------------------------------------------------------------------
  84. 5. Creating an OpenMod-compliant CTF map
  85. -------------------------------------------------------------------------------
  86.  
  87. If you're interested in creating a CTF map which works under any OpenMod
  88. compliant CTF mod (see the "Features" section for a list of currently supported
  89. mods), all you have to do is use OpenMod's "PlaceHolder" objects to specify
  90. where flags and/or flag bases are placed.  These objects are available in
  91. OpenMod.u and can be found under NavigationPoint->PlaceHolder.  The CTFFlagPH
  92. branch contains place holders for flags and the CTFFlagBasePH branch contains
  93. place holders for flag bases (where flags can be captured at.)
  94.  
  95. Note: Be sure to use the proper team specific subclasses of CTFFlagPH and
  96. CTFFlagBasePH, otherwise your map will not have their proper flags and/or flag
  97. bases spawned in them.
  98.  
  99.  
  100. -------------------------------------------------------------------------------
  101. 6. Converting an existing map to an OpenMod-compliant CTF map
  102. -------------------------------------------------------------------------------
  103.  
  104. If you're interested in converting an existing map to CTF play, OpenMod will
  105. let you do this without having to modify the map at all (therefore preventing
  106. you from having to redistribute an entire second copy of the map!).  Also, you
  107. by going through OpenMod, your map can support any OpenMod-compliant CTF mod.
  108. (See the "Features" section for a list of currently supported mods.)
  109.  
  110. To do this, you're going to need a break out a copy of UnrealEd.  Once this is
  111. done, open the level you want to convert as well as OpenMod.u (this can be
  112. loaded by going to the "Browse" selection box (on the right side of the
  113. window), selecting "Classes", and then pressing the "Load" button (bottom-right
  114. corner of the screen.)
  115.  
  116. Next, from within the list of classes, go to NavigationPoint->PlaceHolder.
  117. From there, there will be two branches of objects, Flag place holders and Flag
  118. Base place holders.  Place these items onto the map in the spots you'd like
  119. them to end up at, *BUT DON'T SAVE THE LEVEL!!!!*.  The whole point of this
  120. conversion feature is that you don't have to make any changes to the map files.
  121. Instead, right click on each of the place holder objects (on the map), one by
  122. one, go to the object's properties, look under the "Movement" section, then jot
  123. down the Location's X, Y, and Z values.
  124.  
  125. Now, go back to the list of classes and open up Info->OpenModInfo.  Now create
  126. a subclass underneath this one.  NOTE, the naming of this class is quite
  127. important as it will determine whether or not your module is recognized and
  128. loaded by OpenMod.  You'll need to get the name of the map first (*NOT* the
  129. file name but the map's name.)  This can be found by going to the Options menu,
  130. looking under Level Properties, LevelInfo, and then Title.  If the title is 10
  131. letters or less long, then this will be easy.  Simply write down the name of
  132. it without any spaces or dashes and name your new class:
  133.  
  134. Class Name: Info<LevelTitle>
  135. Package Name: Data<LevelTitle>
  136.  
  137. For example, if you had a level titled "DM MyLevel", you would name your
  138. class InfoDMMyLevel and put it in the package DataDMMyLevel.
  139.  
  140. However, if the level's title is longer than 10 letters long, then you will
  141. have to take the first five and last five letters in the name (excluding
  142. spaces), combine them together end-to-end, and then append the "Info" and
  143. "Data" as explained above.  For example, if you had a level titled:
  144. "DM Warehouse Battle", your class would be called "DMWarattleInfo" and it would
  145. be placed in the package "DMWarattleData".
  146.  
  147.  
  148. Now, before we do anything with this subclass of OpenModInfo, we're going to
  149. have to create another class which will actually spawn the place holders onto
  150. the map.  From the class list, open up Info->DynInfo->DynZoneInfo->
  151. DynLevelInfo->DynDMLevelInfo->DynTGLevelInfo and select DynCTFLevelInfo.
  152. Next, create a subclass underneath DynCTFLevelInfo.  The name of this class
  153. does not matter, however it has to be in the same package as the new subclass
  154. of OpenModInfo is (the one you just created a few moments ago.)  However, for
  155. the sake of consistency and clarity, you should name your class according to
  156. the following convention:
  157.  
  158. DynCTFLevelInfo_<LevelTitle>
  159.  
  160. Note: The <LevelTitle> should be the same one you used when creating the
  161. subclass of OpenModInfo.  For example, if you're working on the level "DM
  162. Warehouse Battle", you'd name your class 'DynCTFLevelInfo_DMWarattle'.
  163.  
  164.  
  165. Once you have this class created, open up it's source code and create an
  166. Initialize() function, such as the one below.
  167.  
  168.  
  169. function bool Initialize()
  170. {
  171.     // Blue Flag
  172.     Spawn(class'CTFBlueFlagPH',,,vect(254.033295, -281.846130, 30.099634));
  173.     Spawn(class'CTFBlueFlagBasePH',,,vect(356.835327, -145.883789, 29.100412));
  174.  
  175.     // Red Flag
  176.     Spawn(class'CTFRedFlagPH',,,vect(8448.337891, -2198.896729, 30.100130));
  177.     Spawn(class'CTFRedFlagBasePH',,,vect(8309.743164, -2309.148682, 29.100412));
  178.  
  179.     return Super.Initialize();
  180. }
  181.  
  182.  
  183. You can simply take this function and copy it into your class.  The values go
  184. in the order X,Y,Z.  So for this example, the CTFRedFlagPH is placed along the
  185. X coordinate at 8448.337891, the Y coordinate at -2198.896729, and the Z
  186. coordinate at 30.100130.
  187.  
  188. Note to UnrealScripters: The function *MUST* call Super.Initialize() and it
  189. *MUST* do so *AFTER* all the CTFFlagPH and CTFFlagBasePH objects have been
  190. spawned!
  191.  
  192. You are more than welcome to make your function as complex as you want.  By
  193. this, you can use foreach to replace various items in a level or possibly
  194. remove some or add some.  It's up to you.  Look at
  195. DataDMAriza.DynCTFLevelInfo_DMAriza for something quite a bit more complex!
  196.  
  197. Now, for the last part, go back to your OpenModInfo class and open up it's
  198. properties sheet.  Open up OpenModInfo->AvailableInfo.  In the next available
  199. AvailableInfo slot (this should be the top one), type in the name of your
  200. DynCTFLevelInfo subclass and hit enter.  The full name of that class should
  201. now show up in that entry.  If not, make sure you have your spelling correct.
  202.  
  203. Lastly, make sure you compile your class (hit F7 within UnrealED) and save it
  204. when you're finished.
  205.  
  206. If you have any questions, feel free to e-mail davidl@captured.com with any
  207. questions.
  208.  
  209.  
  210. -------------------------------------------------------------------------------
  211. 7. Authors
  212. -------------------------------------------------------------------------------
  213. * David "VicViper" Ludwig (davidl@captured.com) - Project Co-ordinator, Coding
  214. * James "StarDrifter" Abbatiello (abbeyj@frag.com) - Differ
  215. * Ob1-Kenobi (ob1.kenobi@mailexcite.com) - TeamTriggers, TShieldBelt, + more
  216.  
  217.  
  218. -------------------------------------------------------------------------------
  219. 8. Copyright and License
  220. -------------------------------------------------------------------------------
  221. OpenMod, Providing Unreal and Unreal Engine based games with a powerful set of
  222. dynamic information tools.
  223.  
  224. Copyright (C) 1998 by it's respective authors.  Please see the "authors"
  225. section of this file for a complete list.
  226.  
  227. This library is free software; you can redistribute it and/or
  228. modify it under the terms of the GNU Library General Public
  229. License as published by the Free Software Foundation; either
  230. version 2 of the License, or (at your option) any later version.
  231.  
  232. This library is distributed in the hope that it will be useful,
  233. but WITHOUT ANY WARRANTY; without even the implied warranty of
  234. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  235. Library General Public License for more details.
  236.  
  237. You should have received a copy of the GNU Library General Public
  238. License along with this library; if not, write to the
  239. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  240. Boston, MA  02111-1307, USA.
  241.  
  242. The GNU Library General Public License may also be found at http://www.gnu.org
  243.  
  244.