Requirements

From FIFE development wiki
Jump to: navigation, search

This article is outdated and is just stored for archive purposes. Archived.png

This article became outdated and is just stored for archive purposes in this wiki. There are several reasons why an article could become outdated. The development team may have decided to use a different concept or even the author itself felt that the article is not really up-to-date with the current development status of the project anymore.

This page lists requirements relevant to fife engine development. Requirements are done from perspective of engine users, i.e. mods or associated editors. It is the up to the team to refine requirements so that responsibility sharing between engine and extension becomes clear. Requirements should be based on some concrete and understandable need and use cases are preferred way to explain the need in more detail.

List of requirements

Support for basic widgets

Description

Game should be able to present most common widgets with free layout on screen along with graphics and text. Supported widgets include at least:

  • Single line text box
  • Multiline text box
  • radio check box selector with ability to select predefined amount of boxes from whole set
  • button with text
  • button with graphics
  • Confirmation dialogs (modal)
  • List box with selection capability
  • Checkbox
  • Slider
  • Pop-up menus
  • Inventory dialogs
    • hovering support
    • context sensitive menus
    • Drag'n drop
  • Changeable cursor (e.g. arrow and crosshair)


  • Widget outlook should be variable depending on engine extension.
  • Widgets should have most common events available, like onClick, onKeyPress, onSelect etc.
  • There should be a way to validate input data and in case of error, show modal dialog explaining the error to end user


Relevant use cases

UC_DIABLO_1, UC_FALLOUT_1

Support for basic dialogue

Description

User should be able to have a dialogue with non playable characters in the game. Discussion is done using texts forming multiple choices for the player. Texts should be freely placeable into the screen area. Usually there must also be some kind of background for the texts. It is preferred that when mouse moves over any text, whole text related to that option is highlighted. When some option is pressed (on top of that text), dialogue continues further.

Relevant use cases

UC_DIABLO_2

"Animation" playback

Description

  • Stopping of other game activity
  • Fade-out of cursor (adjustable fadetimes)
  • Playing cutscenes using normal map view + characters in the game.
  • Floating text support (with adjustable fadeout support)
  • Possibility to switch from pure animation to interactive dialogue and back

Relevant use cases UC_KoN_1

Video playback

Description

  • Stopping of other game activity
  • Fade-out of cursor
  • fullscreen video playback support

Relevant use cases

Game Modes

Description

  • Shopping
  • Combat
  • Exploring
  • Game Menus
  • Video cutscenes
  • Animation cutscenes

Relevant use cases


Special Effects

Description

Relevant use cases


Game event system

Description

  • Opponents hearing character approaching
  • NPC's finding stuff from the play area
  • Game noticing that there are no enemies nearby the player character, or vice versa, noticing that there is a need to move into combat mode

Relevant use cases UC_DIABLO_3, UC_FALLOUT_1


Opponent strategic decisions

Description

  • Opponents forming their group strategically correctly depending on game situation


Relevant use cases UC_DIABLO_3


Context sensitive mouse selection

Description

  • Clicking on objects
  • Clicking on tiles
  • Dragging on areas
  • Hovering support
  • Dragging objects
    • Alignment to grids
  • Painting tiles

Relevant use cases UC_CHESS_1, UC_FALLOUT_3


Rubberbanding

Description

Relevant use cases


Dialogue System

Description --> should this be totally in script, how to do it?

  • multiple selections.
  • Available selections depend e.g. on character traits and state of NPC

Relevant use cases UC_FALLOUT_3


Realtime combat system

Description

Relevant use cases

Turn based combat system

Description

  • Turn changes

Relevant use cases

Targeted combat

  • Special widget to show the outline of enemy so that different parts can be selected
    • Widget should be able to report selected bodypart after click
  • Tracking of damage on different body parts
  • Target specific animations (like shooting a foot off)


Path finding

Description

  • Finding the best path between two point
  • Path might be possible to be used for moving, but some paths might be more beneficial
    • E.g. roads vs. swamp
  • Finding impossible targets points
    • Impossiblity depends on means of movement and what is moved:
      • Boat might get over river while bike may not
      • Grenade might hit enemy, while bullet might not be able to do so
      • You cannot throw grenade through doorway when door is closed
      • If wall is broken, you might be able to walk through it
      • Big objects (like cars) do not fit into same paths as small objects (like humans)

Relevant use cases UC_FALLOUT_1, UC_FALLOUT_4, UC_FALLOUT_5


Path finding visualization

Description

  • Painting the calculated route with action points for each movement
  • each time mouse is moved path is calculated again
  • Show impossible targets

Relevant use cases UC_FALLOUT_1

Ability to combain 2-n items to 1 new item

Description

  • Dependent on the carried items
  • Dependent on the character skillset
  • Dynamic adding and removing of items to/from inventory

Relevant use cases UC_ARCANUM_1


Template

<Requirement name>

Description

Relevant use cases