Section 8...
Framework Game Play Management Modules
The game play can be radically changed by changing user interfaces. Existing interfaces defined in the design doc are flight mode, character mode, and a few menu interfaces (market, item creation, etc...). I'm expanding on this with a system to manage a wide range of different interfaces. Remember that the user interface has two main parts: the on screen heads up display (HUD) also known as a graphical user interface (GUI), and the human interface device control map (HID map) also known as a control or key map (keymap). I'll continue to note these two items to stress their importance (also because I wrote everything below before writing this paragraph and I don't feel like deleting anything). Finally, this is all just HUD changes, control map changes, and camera changes – or in other words it is very easy to setup but sounds far more complex than it really is to implement.
- Main User Interface Management Module: The “master control” for all under interfaces or game play modes below. This allows the user to manage global HID maps (keymaps) and at the same time handles the controls for the F1-F12 function keys, print screen, pause/break, and any other keys set to use global functions that are always available regardless of which game play/user interface mode the player uses. Note: Heres the
home page for “Crazy Eddie's GUI system” Realm Forge GDK. That site includes a large number of useful resources (really a must read).
- HUD Mod Interface Module: This is the interface for the player defined “widgets” that display various bits of information on their screen. They're just like any desktop widget with a few limitations, they cannot display game data not in their Neural Net because that might give them an unfair advantage over other players. They can display their system time, server time, another computer's time, SQL data (forum activity, server rankings, user activity, etc...), RSS data (literally anything from local weather to a stock ticker to headline news), and maybe a few other things. The display method can include a wide range of options but probably something like allowing a dynamic box and/or text to be displayed anywhere on the screen even if it covers up another HUD/GUI object. The data going into the box/text displayed would come from a script in their profile and could be connected to a Neural Net Program added by the player. These programs and HUD/GUI widgets could also be used to allow the player to display Neural Net information on another screen (like a 2nd monitor or HID/PC-case LCD), display the state of their caps lock/scroll lock/num lock keys, or to display the mode of their HID device (e.g. the high quality keyboards, mice, and joysticks designed just for gamers who aren't worried about money). Note: This module is intended to support future growth and modding of OpenLancer and (probably) will not be used in the standalone main game, it can be left out until an SDK is released and modding is fully supported.
- Dynamic User Interface Mode Management Module: A special user interface mode that allows the different game objects to determine how the interface looks and functions. Basically with each user controllable game object definition (e.g. ships) it will reference a file that contains the settings for that game object's user interface including its HUD (GUI) and HID (keymap) settings. The SDK for this module should include templates for small car-like vehicles, medium size APC-like vehicles, large tank-like vehicles, straight aircraft (non-spacecraft), VTOL aircraft (helicopters), and a copy of the normal flight mode. Unlike normal flight mode and the other game play modes the player will be locked to a specific main mode but will be able to use the sub-modes (e.g. they cannot switch between flight and turret modes but can use the sniper or remote sub-modes of game play). The main point here is to allow modders the most flexibility possible without forcing them to edit the game engine. Ultimately it would be very cool if each ship could have a completely customized user interface profile but to keep it easy to play these interfaces could be designed around common themes (e.g. different houses could have a different graphic style/theme HUD/GUI while different classes of fighter could have a different HID/keymap). I will add templates for each weight class of BattleMech (utility/ultra-light, light, medium, heavy, assault, and quad). This is part of and sits directly on top of the user interface module in Realm Forge GDK. Note: This module is intended to support future growth and modding of OpenLancer and (probably) will not be used in the standalone main game, it can be left out until an SDK is released and modding is fully supported.
- Dynamic User Interface Sub-Mode Management Module: Like the Dynamic User Interface Mode Management Module this is a highly customizable interface system to allow modder the most flexibility possible without forcing them to edit the game engine. As a sub-mode of game play this can be used for custom made mini-games, custom weapon controls, custom remote controls, custom command modes, custom turret modes, or just about anything else. Each dynamic sub-mode will have to be defined by the dynamic main mode that uses it or by a game object that uses it or maybe by a script function that can trigger it (or in other words it must be linked something so players can access it).. Templates for turret mode and the sniper, remote, and tactical command sub-modes should be included with the SDK for this module. This is part of and sits directly on top of the user interface module in Realm Forge GDK. Note: This module is intended to support future growth and modding of OpenLancer and (probably) will not be used in the standalone main game, it can be left out until an SDK is released and modding is fully supported.
- Flight Mode Management Module: A user interface plug-in that displays and manages the flight or cockpit mode of game play. It defines the graphical user interface (GUI), HUD functions (on screen data display and input controls), keymap/HID controls, and anything else that the player will only see while they're in flight mode. This is basically modeled after Freelancer's controls, screen, and look & feel (except it supports joysticks). This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Character Mode Management Module: A user interface plug-in that displays and manages first/third person mode game play. It could also be called the first or third person shooter mode (FPS/TPS mode). When switching from flight mode, it would change the GUI/HUD, keymap/controls, and other game play mechanics to fit FPS/TPS mode. The thing to remember here is that the player's body is just another vehicle, it has its own engine, equipment mounts, cargo hold, and anything else that a ship has. The difference is it has more complex animation that changes in speed depending on the speed of the player. The physics engine can be used to determine most of the speed variables in the animation. The character creation system is used to allow the player to build their character's body just like they would build a new ship. The player's inventory or cargo hold would need special mount slots that allow the player to 'mount' backpacks or other storage containers for a larger cargo hold. Weapons also need a special handler in the animation, when the player's weapons are offline they need to be shown as being holstered. Finally, like ships, they need to have special upgrades for armor suites, space suites, and other things that change the body's model and stats (e.g. stats meaning armor, power, speed, cargo capacity, damage filters, weapon mount point types, maybe personal shields). Mount points are dependent on the body type and different armor/power assisted suites, like plain clothing has a base line mount point for a normal small arms item (pistol/rifle) but a power armor suite could mount a heavier weapon up to and including a class 1 ship weapon. Do this right and the game will attract a wide range of FPS/TPS fans, not to mention it'll seriously kick ass! This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Strategic Command Mode Management Module: Manages game play during “RTS mode”, this will take some work to create and perfect. Basically you need to be able to use a special enhanced nav map that shows the location of units with the ability to give them orders. At the same time you need to be able to order around the command vehicle. I think this should be modeled after the command interface for Home World 2 or Nexus but without any of the construction support. So players will be able to go to the bridge of a capital ship, enter a holo-tank or command terminal, and then order their ship around, order fighters around, and generally do what ever else they want. The really freakishly cool part of this is its realistic to how being a capital ship captain would be. This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Turret Mode Management Module: The turret mode counter part to the Flight Mode Management Module. The only difference is the flight characteristics, like turret view in Freelancer, they would have to use a keyboard or joystick to move the ship while they're using the mouse to move/fire the turrets. Some special functions can be added to make this more useful than turret mode ever was in Freelancer. For one, the ability to zoom the camera in and out, switch the camera to different centered positions (so it rotates around a different part of the ship), and a more direct turret control that allows the player to use the capital class main cannons like a huge sniper rifle (see weapon mode below). Add a detailed diagram of the ship, each ship section, each ship system, and each weapon/turret including a status icon, damage bar, power bar, and maybe other little details. Also add a details box that allows the player to click on any ship section, system, or weapon to get full details about that item. This will require some complex user interface design and camera management but isn't nearly as difficult as it sounds. The end result will make capship players extremely happy (myself included)! This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Sniper Sub-Mode Management Module: This is a special camera mode accessed by the each of the other game play modes. It allows the player to zoom in/out and fire the selected weapon. On fighters is can be used to fire 'big guns' like Evo's Long Beams or Gauss Rifles (or railguns, or other such weapons). In capital ships it can be used on the main guns like the Liberty Cruiser Forward Cannon or other massive long range guns. In character mode (FPS/TPS mode) it'll be used for any weapon that has a scope. It will require a weapon setting that says the weapon can or cannot be used in sniper mode (like the INI settings for “auto-turret = true/false” in Freelancer). Any weapon that has this INI setting set to true will need a special GUI/HUD file that displays the target reticle (cross hairs), range to target, IFF (friend or foe), and any other details about the weapon (e.g. weapon status, power level, ammo level, heat level, etc...). It also needs to include a camera range setting for movement range, movement speed, and zoom range. This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Remote Sub-Mode Management Module: Like the Sniper sub-mode, this is another special camera mode intended to be used on top of other game play modes. This mode is special as it gives the player camera control, movement control, and a few input controls on remote game objects. These objects can include missiles, mines, robot drones, weapon platforms, robots, and maybe other normal game objects. This would require a few extra settings for the game object the player would be controlling but its basically the same stuff found in normal ship settings, like camera control and a switch that enables/disables remote control (like the auto-turret true/false INI setting in Freelancer). Most of the movement range and other settings should already be there, another setting might be remote control range that would limit the distance the controlled object can travel from the player before they lose control of the game object (e.g. radio range or something like that). There should also be a self destruct control in addition to the minimal movement controls. I think manually guiding long range missiles, controlling weapon platforms, and little robots would be extremely cool. Another option is to allow the player to control normal game objects like ships by hacking into them, this would require some extra settings used to create a small hacking mini-game. This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Tactical Command Sub-Mode Management Module: Another user interface add-on that allows the player to issue commands to other characters (NPC or PC) based on mission or faction commands. Like the strategic command mode it would have to allow the player to issue movement orders based on a system, base, or planet surface map. But unlike the normal command mode they couldn't control their own movement or issue very complex orders. It should also have a toggle to allow the player to take control over remote control units around them, such that if a robot is in the area they could tell it to go to a certain location or do a certain simple task but then take manual control of the unit for more complex tasks. This could be tied into the hacking mini-game as well so that the player can order around robotic unit they have forcefully taken control of (don't want to get too carried away with adding robots though). This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Market Sub-Mode Management Module: Allows the user to buy and sell commodities, items, ships, etc... Basically a combination of the commodities, equipment, and ship dealer windows from Freelancer but would include a management module for bases the player owns. Allowing them to set prices for their goods or set conditions for other characters taking items that they own (e.g. faction store management). This module would be accessed any time the player talks to another character or visits a command terminal at a base that they own – or something to that effect, there are a large number of ways to implement it. This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Item Creation Sub-Mode Management Module: A user interface module for creating new items. This one is probably the most complex of all of the interface modules since it will have to handle accessing different item templates/designs, user created logos, user created paint jobs, and other just files. This includes building everything from new items to equipment/ship components to even their player character body. The actual player created art assets should be left to an external editor so they're not spending hours needlessly connected to the MP server tweaking logos, paint jobs, or designs (note that they can still be connected via a back end module so they can text message or VoIP chat with their friends on the server). Since items are created in game dynamically this is one of the two “front ends” to the Dynamic Creation Engine Module and also since that module will probably be left “under developed” in the first few versions of the game this user interface module can be left as more of a filler/place holder until the dynamic systems are fully implemented. This is part of and sits directly on top of the user interface module in Realm Forge GDK.
- Neutral Net Sub-Mode Management Module: The user interface module that contains the Neural Net as defined in the design document. This is a special user interface module that can load user created programs. It also contains the user's log/journal, SQL/RSS display system, other internet data display systems, game data displays, and various other windows. To streamline access this should be universally mapped to a single access key, like F12, on all game play modes. Internally the fully range of function keys F1-F12 can be used as short cuts to the different windows.
- Communication Sub-Mode Management Module: The user interface module used to manage communication between players during multiplayer game play. This must include text entry box, text display box, server text/VoIP channel display box, faction/team text/VoIP channel display box, an options panel, and security panel. The server channels can be determined by the admin in server back end management system but should include a few defaults: global, systems, player group and private player channels (player and group channels should be automatically created by the server). The options panel is used to control VoIP codecs, VoIP volume, ignore players, set “buddies”, text display formats, and change various other settings (all of these settings should be mirrored in the game options). The security panel is used for dockable game objects that require a username/password, security/authorization code, or other security check before the player can dock with that game object. A text, voice, and video (render) mail system could be added to another panel or included with the Neural Net Sub-Mode Management Module.
Edited by - MegaBurn on 12/19/2005 6:22:43 PM