I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX

User:00zX/GameDex Framework (UT3)

From Unreal Wiki, The Unreal Engine Documentation Site
< User:00zX
Revision as of 03:20, 24 April 2010 by 00zX (Talk | contribs) (GameDex: Framework (UT3): - Updated for new commit, fixed tree)

Jump to: navigation, search

GameDex: Framework (UT3)

Status: Alpha 8 (testing)

Repository: GameDex @ GitHub --00zX 09:07, 24 April 2010 (UTC)

Download Alpha 4 Packaged: GameDex_AllGDP_DodgyAlpha_150909.rar
Download Alpha 4 Source: UT-GameDex-Src-150909.rar

Description

  • Not being a fan of the one class/mutator does everything approach, I like to keep things modular and interconnecting, I noticed inherent problems with Unreal Engines mutator system (as you all would have at one point or another) so I went about starting to hook through it and creating a new system which could actually replace the system especially now we have the UDK at our disposal.
    • The initial ideas and concepts from this project came about while I was working on the Newtators mutator pack and Attrition gametype, eventually these projects and some of the major functionality was rolled into Gamedex as it provided a more modular approach and allowed me to reuse alot of said functionality easier.
    • Basically things like the FactoryReplacer class became a foundation class and an integral part of the Gamedex.
  • Since the new system is totally reliant on Object's I suspect that its better on system performance and will be dealt with by the internal garbage collection system. These objects can be initialized at any time and for any number of actors, for instance since all damage is hooked through one function one can prune the unwanted actors rather than searching for the specific actors you want to apply a rule to. The rules are meant to be simple as in the vampire mutator, which gives players a portion of the damage they deal back in health. Any number of players could be affected by this, for a duration or globally for the entire match. Mutators dont really allow this kind of control, they can but I believe the front end for interfacing with this system would be much more intuitive.
  • This is where I hit my first major hurdle as I wanted to provide a UI similar to 2k4's for adjusting mutator settings, maybe even extending that to allow server admins to interface with the modules on the fly whilst connected to their server.


Future Directions

  • New UI which is made to function based on the modular approach of the new GameRules objects, this will allow the objects to be created as required through the UI rather then in UScript.


Project Class Tree


Naming Convention

The over all name for the project Gamedex was a play on words, being part nod to UnCodex and extension from my Noir Highlighter theme code named Redex, which inturn was inspired by Epic/DE's use of Redux in UT2k4.
Basically I see it as a 3rd full revision, with Newtators and Attrition being the first two. Upon closer inspection you'll see it says 'Gamed-ex' :)
It actually took me awhile to settle on a naming convention for these packages and classes.
Eventually I settled on appending UT_ as a prefix to designate that it was a modification for UT3.
The MDB is just an acronym to set the project apart incase I ever have other projects where I have similar named classes.
The beauty of using an acronym for projects is you can have multiple versions/branches of the same project on the same tree without conflicting class names.
Not only that but you can also develop classes and diff/merge the results based on the requirements for such projects.
As in Epic's base source code all classes have fixed names, so while you might be using 1 version of GameRules if that class changes you might get errors which cascade.
With this system you can work from one class say MDB as in the example, yet develop another which we'll call MDA all while keepin on the same class tree.
The UT_GDP designates any package which requires UT_GameDex and UT_MDB.


Project Package Tree

UT_MDB- This package contains buffers (empty classes to keep the tree clean) and classes which extend UT3's for things like bNoDelete=true spawning.
\- UT_GameDex - Main package containing all the base functionality classes.
   +- UT_GDP_Newtators - Is one of my mutator packages.
   \- UT_GDP_Mutatoes


Initial Prototypes

Newtators (Mutator pack)

Download: Newtators-v1.9e

Description: Well this started out as just a way for me to make some stuff that I would have liked in UT3 such as a few remakes of Epic's classic muts included across other UT games, acouple were taken from options also. It grew into something much larger, the idea has always been to keep the pack as small and tight as I can providing quality mutators with compatibility between them all.I ended up adding a few customs things after I got done with a few of the remakes and things evolved from there, alot of stock assets have been reused and remixed to create some extended gameplay.

Mutators:

Agile - Adds dodge-jump, wall-dodge-jump and removes the delay on jumps, dodges or jumps with smaller falls.
Bloodlust - Replaces the UDamage with a Red Vampyric version which allows you to suck health from damaged enemies. You are not allowed to pickup health while using this powerup but you can get up to 199 from sucking enemies health.
Booster - Replaces the Berserk Powerup with a new Booster Powerup. It gives the player health every 10 seconds, it raises the health cap to 199/299 and allows you to pickup health to reach the cap quicker. Once it has depleted your health will slowly drip back to normal levels
Dual Enforcers - Gives you dual enforcers on spawn.
Energy Leech - Leeches a percentage of the Shields/Armour from damaged players or vehicles and gives it back to you. (UI)
Extra Self Damage - Players take more damage from their own shots.
Fast Weapon Switch - Weapons switch faster.
Hardcore - Like UT's Harcore option this raises all damages to 125% of their original.
Hoarding - Lets you choose which items players can pickup and which they cant when they already have the maximum. (UI)
No Double Jump - Removes double jumping and adds a single higher jump, wall dodging is still enabled, also allows you to walk so you dont activate the jump boots when single jumping much like UT.
No Health Pickups - Removes all health pickups from the game.
No Super Weapons - Removes all super weapons from the game.
Quad-Jump Boots - Spawns new jump boot pickups which gives the user limit charges to perform quad jumps. This allows you to do many jump combinations like wall-dodge-double-jumps.
Speed Boots - Spawns speed boot pickups instead of jump boots. When picked up these boots increase the players speed dramatically for 30 seconds.
Strong Vehicles - Makes all vehicles stronger vs most damage types. Vehicles are still similarly damaged from crashes and falls.
SuperBots - Will make Bots deal more damage to Human players.
Translocator - Will add the Translocator to Deathmatch or Team Deathmatch.
Vampire - A percentage of damage done to enemies will be given back to you in health. This health is shown on the screen so you know how much you have received. This also allows the option for vehicles to take a percentage of damage from other vehicles. (UI)
Vehicle Replacer - Allows you to choose which vehicles to replace and with what. It also has an option for per map settings which is accessible from the config files. (UI)
Vehicle Team Swap - Allows you to set Red/Blue to use Necris/Axon vehicles regardless of the map defaults. It also has an option for per map settings which is accessible from the config files. (UI)

Attrition (Gametype)

Download: Attrition-v0.5pb.rar

Description: The idea behind this gametype was a war of attrition so everything featured is geared towards that. To win though you have to make a kill with every weapon once, you start with all weapons and they are removed from your inventory as you make a kill with them. Suicides will return a weapon back to your inventory unless it is already full. There is a catch, you have unlimited ammo and all pickups are removed except, Jumpboots, Vials, Armour, Shields and the Keg.

In this gametype frags dont really matter a great deal, except they are a way to get rid of your weapons!

This gametype is best suited for lower player counts, around the 2-4 range is really good but anywhere between 2-8 should make for good matches as it really does depend on the size of the map and how many rounds you want to play.

Features:

Health/Armour Degen - after these are picked up they start to wear in, then over time they wear out and break down. Wear only occurs over 100 health and always on armour.
Round Based Play - at the moment it only supports winning the match by getting to the rounds won, so if you win 3 rounds, in any order first, you are the winner. More victory conditions are on their way though, like playing out an amount of rounds no matter what and the player with the most wins at the end is the winner.
Anti-Camper - This was put in because of the unlimited ammo, keeps people moving and makes the matches faster especially 1 on 1 matches. Since there is no time limit this was almost a requirement.
Tweaked Music - To give more of an action feel the music was tweeked so it ramps up alot more.
Tweaked HUD - Alot of the excess text was removed from the hud as well as tweaking to make it fit with the gametype. I will be updating this so people can customize alittle more and reallow acouple of the default options.