Announcement

Collapse
No announcement yet.

Splitscreen Enhancement Mod [PC]

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

    Splitscreen Enhancement Mod [PC]

    Edit: Incase anyone finds this old relic of a thread, look here: http://forums.epicgames.com/threads/...amepad-support

    Hello everyone,
    This is my first post to the forums, but I thought I'd drop by and mention a small project I've been working on to enhance the splitscreen functionality in the PC version of UT3. I've been a fan of the series since UT'99, and pound-for-pound UT2k4 is still one of the best multiplayer packages in my library. However, I'd never really looked at UT3 at all, so earlier this year I finally decided to check it out and see what I'd missed a few years back.

    Once I'd played a bit and familiarized myself with the game, my first order of business was splitscreen functionality. I knew the game had basic support via console commands, however there were many things unsatisfactory - splitscreen players could not change their options, players had garbage names assigned, and all types of audio played on every viewport. So I set out to correct these issues and make this feature as user-friendly as possible.

    Thus, here it is - a work-in-progress, aptly titled "foxMod - Splitscreen" (originality was always my strong suite). It currently resides on a lazily drafted ModDB page with lots of text, pretty pictures, and a short demonstration video. A user there recommend via comment that I share this work here, so here I am. :P

    If anyone wants to check this out, simply head on over here: http://www.moddb.com/mods/foxmod-splitscreen/downloads

    Code:
    foxMod - Splitscreen v0.2
    A Mutator and INI modification to support better splitscreen play through UI tweaks and re-written gamepad handling code
    By foxUnit01 (foxBox)
    
    ------
    Features
    ------
    UI Additions:
    -- Default to 2P Splitscreen option
    -- Additional gamepad options
    -- Additional bindable controls:
       -- Add Splitscreen Player
       -- Cycle Splitscreen Control
       -- Show Base Path
       -- Network Statistics
       -- Screenshot
       -- Toggle Duck / Dodge (Gamepad)
       -- Weapon Picker (Gamepad)
       -- Toggle Impact Hammer (Gamepad)
    
    Splitscreen Tweaks:
    -- Allow local players to tweak options (for current session only, see known bugs)
    -- Automatic XBL guest-style player renames ("fox", "fox(2)", "fox(3)" instead of "Player258")
    -- Automatically disable Music, Dialogue and Announcer when splitscreen active (see known bugs)
    -- Allow local players to drop-in midgame via Add Splitscreen Player bindable control
    -- Allow local players to drop-out midgame via "Disconnect" from the menu
    
    Enhanced Gamepad Support:
    -- Tighter looking and aiming controls, with adjustable quick-turn speed
    -- Subtle target adhesion, sticky aim and autoaim (ported from console code)
    -- Revamped default control setup (see below)
    -- All gamepad controls can be re-mapped from keys menu (some were mysteriously missing)
    (Note: Gamepad enhancements only apply when actually receiving input from a gamepad - features toggle automatically and appropriately for keyboard/mouse input, even when both are being used at the same time on a single player)
    
    Source for the mutator comes pre-extracted in the src folder so you can laugh at my silly code.
    
    ------
    Installation
    ------
    Extract the archive to "Documents\My Games\Unreal Tournament 3\UTGame". There should be no file overwrites if you've never installed the mod before. DO NOT place any files in your UT3 install folder.
    
    To use the INI tweaks, navigate to the Config folder and delete UTGame.ini and UTInput.ini. When you next launch UT3, new files will be generated from the mod's DefaultGame.ini and DefaultInput.ini with the necessary tweaks.
    (Note: This will not reset your profile settings! These modified INIs are also perfectly compatible with normal games not running this mutator)
    
    Finally, to fix a few issues with the new controls not being saved, navigate to the Config folder and open up UTEngine.ini. Find the following line:
    
      ProfileSettingsClassName=UTGame.UTProfileSettings
    
    Comment this out and replace it with the following:
    
      ;ProfileSettingsClassName=UTGame.UTProfileSettings
      ProfileSettingsClassName=UTMutator_foxSplitScreen.foxProfileSettings
    
    ------
    Uninstallation
    ------
    Simply delete all files that were extracted from the archive. Additionally, reverse your changes made to UTEngine.ini, and delete your UTGame.ini and UTInput.ini files (to generate new files from vanilla UT3's DefaultGame.ini and DefaultInput.ini).
    
    ------
    Usage
    ------
    You will need an XBox 360 Controller set to Player 2 or higher. If you only have one XBox 360 Controller (or have no controller and need to emulate it), you may be able to set it to Player 2 or higher using xbox360cemu - http://code.google.com/p/xinput/
    
    You should notice several new settings in the options menu, particularly under the Input tab. Play around with these as you wish - it will not create any issues should you decide to uninstall the mod later.
    If you would like to utilize the new default controls (and receive default keybindings for the new actions), simply click "Restore Defaults" on the Keys page and click Accept. When viewing the Keys page again, the new bindings should display.
    
    To start a splitscreen game, you have two options - for a 2P splitscreen game, you can simply check the "Splitscreen" box under the Player tab, which will automatically set 2P splitscreen for Instant Action and Multiplayer games (on servers running this mutator). For more than 2 players, check the Keys page for an "Add Splitscreen Player" action. Once in-game, this key will add splitscreen players in order of viewports available.
    
    Splitscreen players should be able to use the ingame menu like normal (unless the Vote tab is up, in which case the first player will have to enter the menu and cycle out of the tab first). If a splitscreen player chooses "disconnect" from the menu, it will drop only that splitscreen player from the game (unless it's the first player, which will disconnect the client as normal).
    
    I have not tested this mutator in network games with remote clients, but it "should" work fine in servers running this mutator. I assume no risks involved in testing this functionality. :P
    
    ------
    Default X360 Gamepad Controls
    ------
    -- Sticks:
    Left Stick	Movement
    Right Stick	Aiming
    LS (Click)	Toggle Duck / Dodge
    RS (Click)	Toggle Impact Hammer
    
    -- Triggers / Shoulder Buttons:
    Right Trigger	Primary Fire
    Right Shoulder	Secondary Fire
    Left Trigger	Weapon Picker
    Left Shoulder	Jump
    
    -- Face Buttons:
    X Button	Use / Toggle Translocator/Hoverboard
    Y Button	Select Next Weapon
    B Button	Select Previous Weapon
    A Button	Select Best Weapon
    
    -- D-Pad:
    D-Pad Up	Titan Transformation
    D-Pad Down	Feign Death
    D-Pad Left	Command Menu
    D-Pad Right	Show Map (Warfare) / Show Base Path
    
    -- Other:
    Back Button	Scoreboard
    Start Button	Show Menu
    
    ------
    Known Bugs
    ------
    Local players' profile settings do not save between sessions, including map transitions. Fixing this will involve lots of small hacks or rewriting the menu system, so I don't know how to attack this one yet.
    Audio is buggy in splitscreen games, with each viewport playing its own audio (including music, etc.) - as a temporary workaround, music/dialogue/announcer volumes all force to 0 when multiple local clients are present.
    Vehicle control type doesn't seem to function properly, even though the handling code is already in the individual vehicles themselves.
    Auto-centering is a little strange and needs some work.
    Probably lots of other things I forgot about!
    
    ------
    Other
    ------
    This is a small project I started on April 11th, 2012, only a few days before the original release. I've since worked on it here and there at my leisure - over time, I'd like to iron out all the bugs listed above and continue improving the controller support. If you have any questions or feedback (particularly with controller input!), I'd love to hear them - feel free to leave a comment on the ModDB page and I'll try to get back to you!
    
    Thanks for trying the mod!
    ~fox
    
    ------
    Changes
    ------
    v0.2 (05/24/12):
    -- Additional controls (such as Add Splitscreen Player or Show Base Path) are now saved properly.
    -- When voting, any splitscreen players will automatically mirror the first player's votes.
    -- Tighter quick-turn for controllers.
    -- Removed extended FOV support; use FreeFOV or similar mutator for FOV tweaks.
    
    v0.1 (04/16/12):
    -- Initial release.
    The aspect of this project currently most broken/unfinished is profile support for local players. I've dug through the script source fairly heavily, picking apart the various OnlineSubsystem and OnlineProfileSettings classes to see how everything fits together - I would like to write a locally-saved profile system for each individual splitscreen player, however I'm quite baffled with how to actually accomplish this. My feeble attempts at messing with the current online profile interface usually just make it mad and do unexpected things. So, if anyone has any suggestions in this area, please feel free to voice them!

    #2
    Cool Stuff.

    - I would prefer to use my PS3 controller with my PC [i am never around xbox's anymore]; can you provide this [PS3 Controller] compatibility in a future release? if you could that ...

    Comment


      #3
      As far as I know, 360 controllers are the only ones that provide any sort of "controller id" input (p1, p2, p3, or p4). I haven't tested the PS3 controller as I don't have one - however, if it doesn't work, this should do the trick: http://code.google.com/p/xinput/

      Comment


        #4
        I cannot figure out how to force my XBOX 360 Controller to player 2. I tried the xinput thing but I can't figure out how to work it. How can I do this?

        Comment

        Working...
        X