Announcement

Collapse

The Infinity Blade Forums Have Moved

We've launched brand new Infinity Blade forums with improved features and revamped layout. We've also included a complete archive of the previous posts. Come check out the new Infinity Blade forums.
See more
See less

Old Skool Monsta Toolz (including the OSM Adventure gametype)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Old Skool Monsta Toolz (including the OSM Adventure gametype)

    Old Skool Monsta Toolz

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

    Final version : v1.53

    Overview

    This is a set of tools that you can use to implement complex monster behavior in any gametype. It also includes a new gametype, OSM Adventure (OSM) 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 available 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 can be configured by the mapper 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


    ( this announcement is continued on the next post )

    #2
    ( announcement continued from the previous post )

    Mapper Guide

    Mappers are free to use these tools and the components in their custom maps. However, the OSMT.u, OSMTex.utx and Flashlight.usx package files, the OSMT_ReadMe file, the OSMT_DevLog and this OSMT_Manual 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 a timelimit, but no goal (score) limit. Players should start out with a limited number of weapons and other powerup items at their disposal. The adversity 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 from 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 inherently 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 of UnrealPlayground, especially TexasGtar, for their insight into how the old ScriptedPawn AI was used. Also a big thanks to Kingster and Blitz for facilitating our private beta testing subforum.

    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.


    FamilyPhoto.jpg (courtesy of UnrealPlayground)

    Comment


      #3
      Excuse the double-size announcement post. Other forums allow longer posts and I wanted this announcement to be consistent.

      To be clear, OSMT can be used in maps of any gametype, although there is a challenge to the level designer to make sure such an addition adds to the gameplay and doesn't detract from the player's enjoyment.
      OSM Adventure, on the other hand, is a brand new gametype available through this toolset that can be used to make singleplayer or cooperative story-driven adventures.

      There will be an OSM Adventure Map Pack released and announced shortly; between 6 and 10 maps are currently being developed by veteran Unreal engine level designers.

      As an example and prototype of OSM Adventure, I've made OSM-Gauntlet available on UnrealPlayground. The OSMT toolset is included with this map's .zip file for your convenience.
      EDIT: I've written a series of Walkthroughs for each section and each route to take in this adventure. It's posted on UnrealPlayground forums, here.

      Thank you.
      Please enjoy.

      Comment


        #4
        *round of applause*

        Comment


          #5
          Very enjoyable ... I would really like to see this implemented in UT2K7 with some nice visual upgrades for the monsters ... really looking forward to the OSM map pack ... good job.

          Comment


            #6
            New OSM map by Lord Simeon!

            http://www.unrealplayground.com/newest.php?game=ut2k4

            This is the only link I have ... sorry ... I know how some of you despise UP but for now this is the only place I know of ... maybe someone will find another site.

            Comment


              #7
              here is filefront out too .. this mappack looks nice and fun !

              http://unrealtournament2004.filefron..._Wangara;67181
              teaser shots ..


              AnubanUT2 just like old time ... haha

              Comment


                #8
                only 3 screenshot can post ?? ATARI is better

                this is OSM-Wangara3


                OSM-Gauntlet is Aamzing map ! I love cut scene so !!!
                http://www.unrealplayground.com/mapper.php?id=4288

                Comment


                  #9
                  Excellent toolset for us mappers SuperApe!
                  Only two things that bug my mind about this:
                  - The time still ticks down when cutscenes are shown.. I got "You lost the match!" during the "you win" cutscene
                  - There should be some way to skip cutscenes

                  OSMT reminds me of Sven Coop for Half-Life, which I love, so yay for OSMT! \o/

                  Comment


                    #10
                    Glad you guys have had a chance to check it out. Yes, the OSM Map Pack looks like it will be primarily SinglePlayer adventures, but it's not out yet. What you're seeing is sort of a sneak preview. About 6 more maps are still in the works. We'll post a big announcement for that. I'm hoping to see more maps made soon in other gametypes, like DM or ONS. We should also see Cooperative OSM Adventures soon. Stay tuned.

                    Originally posted by Wolferey
                    - The time still ticks down when cutscenes are shown.. I got "You lost the match!" during the "you win" cutscene
                    Yes, time still ticks down during cutscenes, although "bullettime" cutscenes take less time, as one would expect. While mappers are able to set per Objective Timelimits (they can add a little extra urgency and tension) that players cannot control, you *can* always control the map's overall Timelimit, just like Deathmatch, in the Game Rules menu. In general, I'd just keep that Timelimit at zero, for "no time limit".

                    Originally posted by Wolferey
                    - There should be some way to skip cutscenes
                    While you can sometimes skip the intro cutscene (if the mapper has properly set it up that way), intermediate cutscenes are not skippable. This was a decision I made early on, thinking that a crucial story point told via cutscene (like Objective directions or hints) could easily be missed by a trigger-happy player. In subsequence OSMT versions, we can rethink that, but as long as mappers keep these short and to the point, I think it will become part of the pace of the game and not too much of a problem. (like other SinglePlayer video games with cutscenes)

                    Comment


                      #11
                      Well, it should be on "no time limit" as default if that is possible, and rather have some sort of map property that can overrule this so the mapper can set a time limit for his course to add that extra urgency and difficulty to his map.

                      But I mostly thought it was kinda stupid to finish the map, and get "5..4..3..2..1..you have lost the match" in the finishing scene.. Cutscenes shouldn't take up ingame time, specially since you can't skip the cutscenes.

                      I know it seems important to have cutscenes to tell the story, but after going through the map once, like OSM-Gauntlet where you have 3 different pathes to take, skipping some parts would be nice on the second run.. also, going through the same map, same path again to see how well you did it the second time if you set higher bot difficulty or different time limit, skipping cutscenes would be great there too..

                      How about some having to press two times to skip? First time gives a "press again to skip" message, if he doesnt press again, the cutscene goes on, if he presses the cutscene skips?

                      Comment


                        #12
                        Originally posted by Wolferey
                        Well, it should be on "no time limit" as default if that is possible, and rather have some sort of map property that can overrule this so the mapper can set a time limit for his course to add that extra urgency and difficulty to his map.
                        Yes, I think setting match timelimit to zero by default would help OSM players the first time or before they go to the config menu. I can put that on the ToDo for any subsequent versions, but honestly I'm not too concerned about it. Once you go to the config menu, it's pretty self-explanitory and no different than any other gametype. The level designers are able to set per Objective timelimits, as I mentioned, and so if one wanted to, they could string them all together to make a whole map timelimit. That is up the the LD and their ability to keep Players from complaining about that.

                        Originally posted by Wolferey
                        Cutscenes shouldn't take up ingame time, specially since you can't skip the cutscenes.
                        I'm sorry, I have to disagree. While per Objective timelimits are indeed shut off as soon as the objective is complete (and before the cutscene runs), per map timelimits set by the player are there to time the player to run through the whole adventure. The mapper sets up these cutscenes for several reasons, but mainly to help tell the story. They are definately part of the adventure. Cutscenes can show lots of things going on, gates opening, players moving, new objectives coming to light, etc. These things do take time and it made no sense to me to suspend time for them. I had to make several decisions during the design of this toolset and the design of OSM Adventure and some of them are not clear cut, but my guidelines were to keep Players in control of as many settings as they're used to while keeping the Mapper happy with having enough control to tell the story. It's a fine line and I stand by that decision. If you'd like to discuss this issue further, please PM (private message) me and we'll discuss it. Thank you.

                        Originally posted by Wolferey
                        How about some having to press two times to skip? First time gives a "press again to skip" message, if he doesnt press again, the cutscene goes on, if he presses the cutscene skips?
                        That's almost exactly what I was thinking.

                        EDIT:
                        In case it was missed, a new OSM Adventure map is available. (Or rather the first couple "chapters" of a large campaign)

                        OSM-Wangara, by Lord_Simeon

                        Comment


                          #13
                          Originally posted by Circus
                          Does anyone know if we are going to have something like this soon for this mod? Several maps or more coop adventure?
                          Yes, although this toolset is new, I expect some more single player OSM Adventure maps to come out very shortly, those in development for the OSM Map Pack. Along with new OSMT maps in other gametypes, adding monsters to DM or ONS for example, I expect to also see OSM Adventure Cooperative maps to start being made by ambitious mappers. Heck, if I can break away from the rigors of newborn baby care for a decent length of time, I may be able to put something together as an example for CoOp OSM. Cooperative play in OSM Adventure was a fairly late addition, and that's the only reason there aren't CoOp maps expected to come with the OSM Map Pack. But CoOp maps are coming soon, they just take an extra few design and techincal setup to get right for smooth online play.

                          Comment


                            #14
                            Yep.

                            UnrealPlayground.com is the site to watch. They allow OSM map uploads/downloads. (Please support UnrealPlayground, as it is a member supported service to the Unreal community)

                            Here is a link to bookmark that will list all available OSM Adventure maps on UP:
                            http://www.unrealplayground.com/foru...p?do=cat&id=18

                            And also keep an eye out for standard gametype maps that use OSMT, like DM, BR, DDOM or ONS. They will probably mention it in the map description and will likely include the toolset in the .zip file, because it's so small (~500k).

                            Comment


                              #15
                              As a small update I'd like to mention I've written Walkthroughs for each section and each route in OSM-Gauntlet, the example map I made for OSM Adventure. They're posted on UnrealPlayground forums, here.

                              Hope that helps.

                              Comment

                              Working...
                              X