PlanetJailbreak

A look under the hood: part 2

  • warning: Declaration of flag_handler_relationship_content::ui_name() should be compatible with views_handler::ui_name($short = false) in /var/www/jailbreak/sites/all/modules/contrib/flag/includes/flag_handler_relationships.inc on line 62.
  • warning: Declaration of flag_handler_relationship_counts::ui_name() should be compatible with views_handler::ui_name($short = false) in /var/www/jailbreak/sites/all/modules/contrib/flag/includes/flag_handler_relationships.inc on line 118.
  • warning: Declaration of views_plugin_style_default::options(&$options) should be compatible with views_object::options() in /var/www/jailbreak/sites/all/modules/contrib/views/plugins/views_plugin_style_default.inc on line 17.

Jailbreak is one of relatively few mods that don't change everything about the game: it's a gametype mod, period. That means no new weapons, player models or startup menus. No, Jailbreak is all about the gameplay.

Surprisingly, Mychaeel thinks this made certain aspets of coding Jailbreak harder: "It required thorough understanding of UT2003's software architecture since Jailbreak hooks into the game at a much higher level than a mod that strives to replace all content by its own. But that in turn lets us maintain a high level of compatibility to third-party UT2003 content — gameplay-altering mutators, new weapons, player models, voice packs and so on." See? You can play Jailbreak with that moose player model you always liked.

Epic have taken a far more modular approach to their class architecture in UT2003, and we like to think we've made good use of this. The first shock a mapper might get is that there's no longer a dedicated class for the Jailbreak release switch: the generic GameObjective class does the job. There's huge potential in this, as mappers can subclass in any way they like: the switch can be touchable, shootable, or something completely crazy, as Mychaeel suggests: "if somebody was to develop a GameObjective subclass that has attackers win a game of chess before allowing itself to be triggered, that would be instantly usable in Jailbreak." This approach also means that there can be more than one release switch per team. We've not yet seen what sort of gameplay this could give... but we're looking forward to it.

The mapper is also given far more flexibility in the matter of jails and arenas. These are no longer zone-defining actors inheriting from ZoneInfo. Instead, for the jail class (JBInfoJail) the area of control can be defined by the zone they are located in, or several zones or volumes by means of a tag (and they can hold members of both teams, too). Arenas don't need to control any area at all. An arena is just two players who can't hurt or be hurt by other players. They can be isolated in a separate area of the map, but they can just as easily be in the thick of the action, or in a place that can't easily be zoned off. (You can thank me for that wacky idea...)

Next week: bot support.