Bring * back! ⌛sucks!
Level 62
Report
|
Do you like the official Single-Player campaign you get by clicking Single-Player? Why not let players create their own campaigns? This would: 1) Allow players to group similar levels together, making it easier for other players to find levels they enjoy 2) Allow players to tell a story.
How I think it could look like: 1) You click "create new campaign" and are welcomed with a canvas. 2) On canvas, you can click "add level" which allows you to add published levels to your campaign, not necessarily yours. 3) You can move levels around the canvas freely. 4) You can set "starting" and "ending" levels. Starting levels are levels that are unlocked at the start of the campaign. Clearing an ending level clears the campaign. 5) You can draw arrows between levels. Clearing level at the origin of an arrow unlocks level at the end of an arrow. Multiple arrows can lead from/ to the same level. 6) You can set fog for the campaign. Fog hides information about not-unlocked levels. No fog = you can see all level names, clear rate, maps, arrows, where are ending levels. Dense fog = you can see arrows, levels. Complete = you can't see anything. Of course light fog, dense fog etc. would exist too.
Furthermore, allow players to copy levels. This way you can make one level, add a few nuances and publish multiple variants of the same level. In the campaign, this would allow players, for example, to attack the castle from the eastern or western gate.
Together with campaigns, I would love to see "events" update. That would allow level creators to add custom events to their levels and help a lot with immersion/storytelling. An event consists of TRIGGER and BODY. Event's BODY triggers once the TRIGGER is TRUE (checks ends of turn + start of campaign), then a) never (one-time event) b) reverts to untriggered state next turn (repeatable event) For this to work, you must allow naming AIs even without custom scenario.
TRIGGER: start of campaign, player won, turn number ! <n> (! is a binary relation and n a number, a random number between <min> and <max> or variable, for example turn number ==5), <player> is in <territory>, <player> controls <territory>, <player> has <n> <card> pieces, <variable> ! <n>, <player> is alive TRIGGERS can have logical operations (AND, OR, NOT) <player>/ <territory> can list multiple players/ territories. <player> is in <territory> is true, if any territory listed in <territory> are owned by a player listed in <player> <player> controls <territory> is true, if for every territory listed in <territory>, the territory is owned by any player listed in <player>.
BODY: Lose level, win the level, set <variable> to <n>, display <message> (like it happens in the real campaign), ask <message> <choice> and {EVENTS}, play <card> on <player>, add <n> units to <territory>, add <special unit> to <territory>, add <n> <card> pieces to <player>, <player> receives <territory>, force <player> to <do>
There would be a few namable variables (int, 10 should be more than enough) for level creators to play with, all set to 0 by default. If there is more than one person listed in <player>, then the effect is applied to everyone who is listed and alive, from left to right. Force action puts orders on the order list. If an order is invalid (deploy too many armies) the order is skipped. This can be used to make "custom AI", make AI stack "patrol" an area, or to show the player a solution to the puzzle. {EVENTS} would trigger a different sub-event, based on button choice. The sub-events can't be triggered otherwise. Set command allows simple arithmetic (+, -, *, div, %, min, max) and can load the following data: turn number, amount of armies on single territory, truth value of sub-trigger (TRUE = 1, FALSE = 0), the income of given player, amount of territories controlled by given player, amount of armies controlled by given player, amount of card pieces of given card of player.
So for example you can have the following events:
IF<AI 1, AI 2> is in <Main Gate, Side Gate #1, Side Gate #2> THEN lose level
IF <the player> is in <barracks> THEN add <100> troops to <barracks>
IF <the player> is in <blatant ambush> AND <bandit #1, bandit #2> is alive THEN add <-999999> units to <blatant ambush>, add <50> units to <blatant ambush>, <bandit #1, bandit #2> receives <blatant ambush>
IF start of the campaign THEN ask <Would you like to gamble?> <No, Yes> {
IF No THEN add <2> <reinforcement> card pieces to <the player>
ELSE IF Yes and <random(1.3)> == <1> THEN add <3> <reinforcement> card pieces to <the player>
ELSE IF Yes THEN add <1> <reinforcement> card piece to <the player> }
Possible exploits and solutions: 1) Someone spawns campaigns. Solution: allow publishing campaign once/ day. 2) Someone draws a no-no image using a campaign. Solution: add the report button. 3) Someone makes a level pretty unbeatable without knowledge of events. Solution: make events and custom distribution a piece of public information.
Edited 1/24/2022 17:29:55
|