View Single Post
  #1  
Unread 9th August, 2006, 05:01 AM
SuperApe's Avatar
SuperApe SuperApe is offline
Forum Newcomer
 
Join Date: Oct 2005
Location: Inna Jungle
Posts: 9
Talking Old Skool Monsta Toolz (including the OSM Adventure gametype)

Old Skool Monsta Toolz

The Toolset for Old Skool Unreal-style Monster Support in Unreal Tournament 2004

Final version : v1.53

Overview

This is a set of mapping tools that you can use to implement complex monster behavior in any gametype. It also includes a new story-driven gametype (OSM Adventure) with progressive objectives conquering puzzles, traps and monsters.

Download

Final version : OSMT v1.53 ( ~ 560k .zip )
Release date : Dec 31, 2006 (final : Oct 30, 2014)

Installation instructions are included in the ReadMe file.
There is also a Manual and Development Log included.

ScriptedMonster

This is a new class of Pawn (subclass of Monster) and the parent class for all the new "Monstas" in this toolset. They can be placed in any gametype map without any of the typical problems like team imbalance and Invasion-style teleporting. They are much more sophisticated than Invasion Monsters. The main abilities that mappers will use are available through the AttitudeToPlayer, AlarmTag and Orders properties. Essentially, you can give the monsters much more to do than just, "go kill players until you're dead".

ScriptedMonster Orders and states

The Orders property is one of the most powerful "new" Old Skool Monsta features. In conjunction with the OrderTag, other properties and other actors, the Orders property can dramatically change the way ScriptedMonsters behave in your map. Here are some of the valid Orders available to all ScriptedMonsters:

Waiting : (default) Wander or Camp nearby the placed spot until an Enemy is detected. Attack and freely roam afterwards.

Ambushing : Travel to an AmbushPoint (or spawn at one at map start) whose Tag matches OrderTag, wait for an Enemy, then Attack. Find an AmbushPoint again after combat and wait for another player.

Guarding : Guard an actor whose Tag matches OrderTag. Remain near and return to the placed spot after combat.

Patroling : Travel from one PatrolPoint (or spawn at one at map start) whose Tag matches OrderTag to the NextPatrol in a series, leave for combat and return to patrol afterward.

Some other behaviors ScriptedMonsters will automatically demonstrate include the Retreating state, where hurt (and afraid) monsters will flee to a HomeBase whose Tag matches the monster's Tag, and the Alarm states (TriggerAlarm and AlarmPaused), where an "alarmed" monster (one who has seen an Enemy for the first time) moves to an AlarmPoint, whose Tag matches the monster's AlarmTag, at all costs and possibly shoot a target, activate a trigger, etc.

In addition to these general behaviors, individual monsters may also have special Orders or behaviors. A couple examples include, the Krall which have a Sleeping Order that can be used in conjunction with one of the sleeping animations set in the StartingAnim property, and the Warlord has a Mutilating Order that will cause the Warlord to continually kick, punch and munch on a long dead carcass until an Enemy is seen.

Mapping AI Tools

There are several AI supporting actors that are included in this toolset. Some are placed or used automatically by the Pawn and Controller code of the new Monsters, but many are provided for use by mappers to help define the AI for the monsters in their map. Many are NavigationPoints, like AlarmPoint, AmbushPoint, HomeBase, PatrolPoint and SpawnPoint. Some are KeyPoints, like ThingFactory and CreatureFactory. All are adaptations of the original AI supporting actors from old style Unreal and work accordingly.

Reference Sources

There is a lot of information on Unreal Wiki, including info relating to the individual monster abilities and behaviors as well as the AI supporting actors. There is a Manual included with the package as well that gives some rudimentary information. Also, since these tools are meant to mimic the abilities of the original UT AI, the old document Unreal Creature Care and Feeding Guide by Steven Polge is another excellent source for information.

OSM Adventure

This is a custom story-driven gametype for maps with the OSM- prefix, that is capable of presenting singleplayer and cooperative adventures. This gametype will not show up in the UT2004 menus until an OSM-MapName map is in your .../UT2004/Maps directory. It's LevelInfo.DefaultGameType is OSMT.OSMGame. It should not allow bots or spectators. It has optional player-configurable MaxLives limits and TimeLimits, but no GoalScore limit. This gametype supports intro and "outtro" matinees, similar to Assault, as well as mid-level matinees, for achieving intermediate Objectives. It also supports mapper-configured per Objective timelimits. The "win" (EndGame) for the level is Triggered by the OSMEndGameTrigger, included in this toolset, which the mapper can configure to end the adventure a number of different ways, or simply continue on to another map (or "chapter" of the adventure) via Level Transition.

Installation

To use this toolset, simply install the OSMT.u and OSMT.ucl files in your .../UT2004/System directory, the OSMTex.utx file in your .../UT2004/Textures directory and the Flashlight.usx file in your .../UT2004/StaticMeshes directory. In Ued, you will be able to open the OSMT.u package file from the Actor browser. Once the package has been opened, all the toolset actors will be available to add to your custom map.

OSMT.u ---> .../UT2004/System
OSMT.ucl -> .../UT2004/System
OSMT.utx -> .../UT2004/Textures
Flashlight.usx -> .../UT2004/StaticMeshes

Mapper Guide

Mappers are free to use these tools and the components in their custom maps. However, the OSMT.zip file must be included in the distribution of that custom map. In addition, I give permission for mappers to use these tools in their custom map if they will also please credit me in their own ReadMe file for that custom map.

>>> Warning <<<: Any map that uses the components found in this toolset *must* be able to access to the OSMT.u, OSMTex.utx and Flashlight.usx package files or the map will fail to load properly. Do not attempt to distribute a custom map with these components without the OSMT.u, OSMTex.utx and Flashlight.usx package files or you will get complaints by end users that your map won't load.

The OSM Adventure gametype is designed for players to "run the gauntlet" among monsters, traps and puzzles to get to the end and win. They are given a limited number of lives and possible timelimits, but no goal (score) limit. Players should start out with a limited number of weapons and other powerup items at their disposal. The advercity they face should be likewise limited. As they progress, the monsters, traps and puzzles can get more difficult and the powerups and items they find can get more powerful to help them. At various stages within the map, after the player has achieved some goal, they should be allowed to start from that point, as opposed to starting fromt the beginning again. Monsters, traps and puzzles should be combined to offer more variety, in other words, a simple trap often seems "unfair" to players, however a trap that is combined with a puzzle or a monster can be more interesting. At the end of an adventure, use an OSMEndGameTrigger to end the map, either by leading the player to touch it or by using another trigger system (that the player instigates) to trigger it. See included Manual for more on mapping for OSM.

The Old Skool Monsta Toolz can be used in any gametype. However, it is up to the mapper / level designer to implement them in a way that offers more interest and challenge to players, rather than serving to frustrate and distract from player's enjoyment of the gametype. Be aware that monsters will attack all players equally, regardless of team. As a general rule, the monsters should be used to guard powerful alternative items or routes to game objectives, rather than to guard the game objectives themselves. Be aware that gametypes that allow vehicles are inheritently more dangerous for players and monsters alike. Most monsters are no match for vehicle weaponry and should be appropriately supported against players with vehicles.

Component List

Code:
(Object)
  +- (Actor)
  |  +- (Brush)
  |  |  +- (Volume)
  |  |     +- DarkVolume
  |  +- (Controller)
  |  |  +- (AIController)
  |  |     +- (ScriptedController)
  |  |        +- (MonsterController)
  |  |           +- ScriptedMonsterController
  |  +- (DamageType)
  |  |  +- (Burned)
  |  |  |  +- Burning
  |  |  +- (DamTypeKrallBolt)
  |  |  |  +- LesserBruteBoltDamage
  |  |  +- (DamTypeRocket)
  |  |  |  +- BehemothRocketDamage
  |  |  +- (DamTypeSkaarjProj)
  |  |  |  +- DamTypeSmartSkaarjProj
  |  |  +- (MeleeDamage)
  |  |  |  +- MeleeDamTypeBite
  |  |  |  +- MeleeDamTypeClaw
  |  |  |  +- MeleeDamTypeClub
  |  |  |  +- MeleeDamTypeKick
  |  |  |  +- MeleeDamTypePunch
  |  |  |  +- MeleeDamTypeStab
  |  |  +- NoGoreDamage
  |  |  +- Poisoned
  |  |  +- Poisoning
  |  +- (Decoration)
  |  |  +- Carcass
  |  +- (Effects)
  |  |  +- PoisonEffect
  |  +- (Emitters)
  |  |  +- CarcassFlies
  |  |  +- KrallDice
  |  |  +- NoGoreDamageEFX
  |  |  +- VehicleFactorySpawnEFX
  |  +- HintItem 
  |  +- (Info)
  |  |  +- (GameInfo)
  |  |  |  +- (UnrealMPGameInfo)
  |  |  |     +- (Deathmatch)
  |  |  |        +- OSMGame
  |  |  +- (LocalMessage)
  |  |  |  +- OSMDeathMessage
  |  |  |  +- OSMFlashlightMessage
  |  |  |  +- OSMPopulateMessage
  |  |  +- (MapList)
  |  |  |  +- MapList_OSMAdventure
  |  |  +- (Mutator)
  |  |  |  +- MutFlashlight
  |  |  |  +- MutPopulate
  |  |  |  +- OSMMutator
  |  |  +- OSMObjectiveManager
  |  |  +- (ReplicationInfo)
  |  |     +- (GameReplicationInfo)
  |  |        +- OSMGameReplicationInfo
  |  +- (Inventory)
  |  |  +- (Ammunition)
  |  |  |  +- (BruteAmmo)
  |  |  |  |  +- BehemothRocketAmmo
  |  |  |  +- (KrallAmmo)
  |  |  |  |  +- EliteKrallAmmo
  |  |  |  |  +- LesserBruteAmmo
  |  |  |  +- (SkaarjAmmo)
  |  |  |     +- IceSkaarjAmmo
  |  |  |     +- FireSkaarjAmmo
  |  |  +- FlashlightInventory
  |  |  +- Poison
  |  +- (KeyPoint)
  |  |  +- ThingFactory
  |  |     +- CreatureFactory
  |  +- (Light)
  |  |  +- (TriggerLight)
  |  |     +- CoronaFlashlight
  |  +- (Mover)
  |  |  +- VariableTimedMover
  |  +- (NavigationPoint)
  |  |  +- AlarmPoint
  |  |  +- AmbushPoint
  |  |  +- GuardPoint
  |  |  +- HomeBase
  |  |  +- PatrolPoint
  |  |  +- SpawnPoint
  |  |     +- PortableSpawnPoint
  |  +- (Pawn)
  |  |  +- Dummy
  |  |  +- (UnrealPawn)
  |  |     +- (xPawn)
  |  |        +- (Monster)
  |  |           +- ScriptedMonster
  |  |              +- ScriptedCharacter
  |  |              |  +- SmartSkeleton
  |  |              +- SmartBrute
  |  |              |  +- SmartBehemoth
  |  |              |  +- SmartLesserBrute
  |  |              +- SmartFly
  |  |              |  +- SmartPoisonFly
  |  |              +- SmartGasbag
  |  |              |  +- SmartGiantGasbag
  |  |              +- SmartKrall
  |  |              |  +- SmartEliteKrall
  |  |              +- SmartManta
  |  |              |  +- SmartCaveManta
  |  |              |  +- SmartGiantManta
  |  |              +- SmartNaliCow
  |  |              +- SmartPupae
  |  |              +- SmartSkaarj
  |  |              |  +- SmartIceSkaarj
  |  |              |  +- SmartSkaarjAssassin
  |  |              |  +- SmartSkaarjBerserker
  |  |              |  +- SmartSkaarjLord
  |  |              |  +- SmartSkaarjScout
  |  |              +- SmartWarlord
  |  +- (Pickup)
  |  |  +- (TournamentPickUp)
  |  |     +- FlashlightPickup
  |  |     +- ShieldGunPickup
  |  |     +- (TournamentHealth)
  |  |        +- (MiniHealthPack)
  |  |           +- Antedote
  |  |           +- PoisonPickup
  |  |     +- TranslauncherPickup
  |  +- (Projectile)
  |  |  +- (GasbagBelch)
  |  |  |  +- GiantGasbagBelch
  |  |  +- (KrallBolt)
  |  |  |  +- SmartEliteKrallBolt
  |  |  |     +- LesserBruteBolt
  |  |  +- (RocketProj)
  |  |     +- (SeekingRocketProj)
  |  |        +- BehemothRocketProj
  |  +- (Projector)
  |  |  +- (DynamicProjector)
  |  |     +- Flashlight
  |  +- (SVehicleFactory)
  |  |  +- TeamVehicleFactory
  |  +- (Triggers)
  |     +- ButtonFlashlight
  |     +- PoisonTrigger
  |     +- RandomTrigger
  |     +- (Trigger)
  |     |  +- ExclusionTrigger
  |     |  +- OSMEndGameTrigger
  |     |  +- OSMObjectiveTrigger
  |     |  +- PlayerAloneTrigger
  |     +- (UseTrigger)
  |        +- PlayerUseTrigger
  +- (GUI)
  |  +- (GUIComponent)
  |     +- (GUIMultiComponent)
  |        +- (GUIPage)
  |        |  +- (UT2K3GUIPage)
  |        |     +- (PopupPageBase)
  |        |        +- (FloatingWindow)
  |        |           +- (UT2K4PlayerLoginMenu)
  |        |              +- OSMPlayerLoginMenu
  |        +- (GUIPanel)
  |           +- (GUITabPanel)
  |           |  +- (UT2K4TabPanel)
  |           |     +- (MidGamePanel)
  |           |        +- (UT2K4Tab_PlayerLoginControls)
  |           |           +- OSMTab_PlayerLoginControls
  |           +- OSMSaveLoadPanel
  +- OSMGameProfile
  +- (ScriptedAction)
     +- ACTION_AssignMonsterToTeam
     +- ACTION_DummyReset
     +- ACTION_ExitVehicle
     +- ACTION_GiveGoodie
     +- ACTION_HealPawn
     +- ACTION_IfGameDifficulty
     +- ACTION_IfHasInventory
     +- ACTION_IfMonsterSeesEnemy
     +- ACTION_IfNumPlayers
     +- ACTION_IfScoreReached
     +- ACTION_Monsterize
     +- ACTION_PossessPawn
     +- ACTION_SetEnemy
     +- ACTION_SetOrders
     +- ACTION_SpawnMonster
     +- ACTION_SubTitleSwitch
     +- ACTION_TryToDrive
     +- ACTION_VehicleFire
     +- ACTION_VehicleFireStop
Credits

The original Unreal Monsters, animations, sounds and code structure by Epic Games, Inc.

The original AI structure was masterfully created by Steven Polge.

So, these monsters, tools and other actors are loving adaptations by me (SuperApe), based mostly on second-hand knowledge and accounts of the original ScriptedPawn abilities, behaviors and components.

Some miscellaneous improvements to settings, code and behaviors are original additions by me, meant only to enhance the original flavor of these creatures.

Special Thanks go to the Beta testers, AquaBlue, saka, outpt.co.uk, MortalPlague, Ironblayde, JoystickMonkey, n3m35i5, Sjosz, Boreas, harryhash, TexasGtar, Blitz, Lord_Simeon, King Mango, Hawkwind, Lecter and SabbathCat, and to all the helpful members and staff of UnrealPlayground, especially Kingster.

Family Photo

Top Row : SmartFly, SmartCaveManta, SmartGiantManta, SmartManta.

Middle Row : SmartWarlord, SmartGasbag, SmartGiantGasbag.

Bottom Row : SmartBrute, SmartBehemoth, SmartLesserBrute, SmartNaliCow, SmartKrall, SmartEliteKrall, SmartSkaarjPupae, SmartSkaarjAssassin, SmartIceSkaarj, SmartSkaarjBerseker, SmartSkaarjLord, SmartSkaarj, SmartSkaarjScout.

Not Shown: SmartPoisonFly and SmartSkeleton.
Attached Thumbnails
Click image for larger version

Name:	OSMGameScreenie.JPG
Views:	156
Size:	50.1 KB
ID:	1124  
__________________
- SuperApe


Last edited by SuperApe : 1st November, 2014 at 05:18 PM. Reason: Release Version v1.53
Reply With Quote