Skip to content

Campaign overview

Thomas Kowaliczek edited this page Jan 15, 2016 · 1 revision


Table of Contents

Proposal

Summary

Unknown Horizons should have at least 1 campaign. A campaign should be structured just like in nearly every real-time strategy game: There are predefined maps with predefined winning conditions/goals (Defeat 1 enemy, Have 3 settlements, settler level > 3, ...). At first, you can only play one of those maps. If you succeed, you can play the next one.

A campaign can tell a story, but doesn't have to. The story is told via texts, that are displayed before, after and during the game. This text can be illustrated with sound and/or gfx. There should be certain events, that happen at a time, that is influenced by the player. (e.g. big pirate attack when you have 400 settlers). The campaigns should be roughly defined in the DD as own page. Also, there should be a special campaign, that acts as a tutorial. (see Tutorial).

Implementation related note

1. Events. An event is a data structure containing 1 or more conditions and 1 or more actions. The game keeps evaluating those conditions (meaning you don't have to worry about this). As soon as _all_ of those conditions evaluate to true, all actions are executed. Then the event is marked as 'done' and not considered any more. See #Appendix for specification of conditions and actions. 2. Storing a scenario. The special features of a scenario are defined in a yaml file. (e.g. events, goal conditions, messages). See appendix for the exact format specification. 3. Storing a campaign The campaign is also described in a yaml file, containing references to the scenarios and what goals have to be reached in order to get access to the next scenario. It could also support branching and merging storylines or maps with certain conditions. 4. What a scenario is: A scenario is a 'normal' map, with special events. Nothing more :)

Made campaigns

It should be possible for everyone to create campaigns, for that the best way would be to use the FIFE map editor or an own UH campaign and scenario editor. With the editor it must be possible to start events depending on a special time or event, like 120 minutes after game start or 200 of inhabitants. These events will be linked by e.g. pop up messages or other actions (like creating an enemy, or destroying a building, etc...). Category:Urgent garbage

There should be certain events, that happen at a time, that is influenced by the player. (e.g. big pirate attack when you have 400 settlers).

The campaigns should be roughly defined in the DD as own page.

Also, there should be a special campaign, that acts as a tutorial. (see Tutorial).

Implementation related note

1. Events. An event is a data structure containing 1 or more conditions and 1 or more actions. The game keeps evaluating those conditions (meaning you don't have to worry about this). As soon as _all_ of those conditions evaluate to true, all actions are executed. Then the event is marked as 'done' and not considered any more. See #Appendix for specification of conditions and actions.

2. Storing a scenario. The special features of a scenario are defined in a yaml file. (e.g. events, goal conditions, messages). See appendix for the exact format specification.

3. Storing a campaign The campaign is also described in a yaml file, containing references to the scenarios and what goals have to be reached in order to get access to the next scenario. It could also support branching and merging storylines or maps with certain conditions.

4. What a scenario is: A scenario is a 'normal' map, with special events. Nothing more :)

Made campaigns

It should be possible for everyone to create campaigns, for that the best way would be to use the FIFE map editor or an own UH campaign and scenario editor. With the editor it must be possible to start events depending on a special time or event, like 120 minutes after game start or 200 of inhabitants. These events will be linked by e.g. pop up messages or other actions (like creating an enemy, or destroying a building, etc...).

Category:Urgent

Clone this wiki locally