Prj001: Diegesis PI (Player Interface)

Author: techlord
Sat. January 19, 2013
Categories: Prj001

UDK does not offer a native GUI system in favor of using Scaleform. However, is does provide mechanisms input, collision, triggers, 3D models, particle effects, and soundactors in which one can devise a User Interface. These mechanisms are ideal for devising a 3D Diegetic User Interface. Diegetic is a cool buzzword which means user interface elements exist within the game world (fiction and geometry) so the player and avatar can interact with them through visual, audible or haptic means. This concept falls in line with my philosophy that the entire game world is a user interface, and this is the philosophy that drives the design of the Diegesis Player Interface System.

Diegesis PI incorporates diegetic, meta, spacial and traditional GUI Display Techniques described  here. RPGs are often heavy UI dependent with menus etc usually powered by traditional 2D GUI systems that provide checkboxes, sliders, textfield Gadgets.  Diegesis PI will provide a system that can support both 2d and 3d gadgets. TegLeg’s Propper 3D menu Without Scaleform(source based on this tut) demonstrates the concept in its simplest form.

DiegesisObserver extends several of the Player Classes.

DiegesisDevices are the basic UI Gizmo external to the Player. Complex Gadgets and Forms being constructed from Gizmo composites. DiegesisDevices extend the same Actors used in the game world environment.  For this reason I have to clearly define the scope of DiegesisDevice operation with regards to  network replication and game-world environment.

Diegesis Classes

  • Framework Classes:
    1. Diegesis Base Class (stub)
    2. DiegesisObserver (Player)
      • HUD
        • Canvas (2D Viewport)
        • ThemeBorder
          1. Procedural
          2. Image
      • Camera (3D Viewport)
        • Viewport
      • Pawn
      • Controller
    3. DiegesisDevice
      • Observer Pattern Messaging
      • Triple-Double LinkList Tree (rapid search, and composite hierarchical construction)
      • Properties based on Characteristics
      • States-Driven Events
        1. Behavior (Operation): Button, Slider,
        2. Transitions (Interpolation) – Executed between Events changes
        3. Theme (Visual) -Procedural and Texture-based Drawing
        4. Scheme (Audio)
      • Components
        1. DiegesisInput –> Controller
          • Extends PlayerInput
          • Process input device Mouse/Keyboard/Joystick
          • Maintain Bindings in UDKProjectKomodoInput.ini
          • Exec Commands (Command Pattern /Delegates)
        2. DiegesisDevice
          • Extends DynamicTrigger
          • Collision Body Physics, Math
        3. DiegesisProjector
        4. DiegesisContactile
          • Extends Projectile
          • Use to provide a LOS  collision from 2D into 3D
    4. TBD

Alternative GUI Systems:

  • Kismet UI Solution Marko Permanto has written a new Kismet Interface system, based on James Tan’s original system. This new system allows you to build, control, and animate menus and HUDs through nothing but Kismet!
  • Another alternative may exist in the Mobile Input System emulation on PC. You can use the mouse (just click the input zones while you have mobile emulation on [the orange button on the top menu bar, towards the right side]) but the best result is if you have an iDevice to test. UDK Remote: A handy tool that enables iOS devices to serve as wireless controllers with full touch and tilt functionality for testing games on the PC, which may offer another form of interface.

Technical Guide:

  1. HUD
  2. Canvas
  3. ActorComponents
  4. Trigger
  5. Input: ExecFunction, KeyBinds

  6. Creating a Mouse Interface
  7. Creating Actor Selection Boxes


  1. Kismet Interface

Notice: link_pages is deprecated since version 2.1.0! Use wp_link_pages() instead. in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\wordpress\wp-includes\functions.php on line 3853