How can I blueprint a boardgame's mechanics?

Greetings, everybody!

I am designing a board game.
It involves a multitude of card decks that have their own dynamics and logic, card by card.
I would like to use a piece of software to blueprint all of this, in order to achieve:

  • Simulations of the said board game via Unreal engine
  • Statistics that would help determine the probability of certain outcomes and parameters such as difficulty

I am completely new to Unreal Engine, and it’s been decades since I did any programming.
Can anybody help me by directing me towards what Unreal tools I should use to do this, and how?
I am practically certain that Unreal Engine is a very good platform to do this. If done right, it might even make for a decent computer game.

Sure!
And - thank you for the prompt reply!

Alright:
The game is RPG-ish (a single player has several characters that they own as pieces).
Each character travels across the board and performs actions. There’s a multitude of parameters: the type of terrain the character is in, the character’s stats (4 primary abilities and a multitude of optional secondary abilities), the game world’s stats (based on Event cards - the weather can change, etc, there’s a day-night cycle based on the turn number etc.).

The game has several decks of cards that are present and activated upon certain conditions.
The most obvious would be the “Encounter” cards, triggered when a character is travelling across the wild-lands.
When a character moves across the wild-lands, the top “Encounter” card is observed. It has a unique “Avoid Encounter” parameter, with varied modifiers, unique for each card. That is the difficulty that is modified based on the character’s stats and abilities, and resolved via dice roll.
The “Encounter” card also has certain conditions. Every encounter can respond to a number of terrain types, indicated by compatible terrain icons, depicted on the card, on its back, clearly visible to the player. If the character that is travelling is doing so across the terrain that doesn’t respond to the Card’s compatible terrain icons - the card is put on the bottom of the deck and the process is repeated until a viable encounter card is found and resolved.
Other than avoiding the card - the player has additional options, unique for each card. Some mean the player can gain an advantage in the upcoming encounter. Some mean they can avoid some form of hazard. This is an additional roll and set of parameters to be resolved.
Once all of this is done - the “Encounter” card is flipped, so that it can be resolved.
It can mean a number of things, some good, some bad, some opportunities, some dangers. The encounter can be modified by the additional roll, as explained.

An “Encounter” can also be modified by the “Circumstances” card. Some “Encounter” cards have a parameter “Circumstances (X)” - X determining the number of “Circumstance” cards being applied to the encounter.
This is a separate deck that has its own icons that correspond to certain filtering which the game uses to narrow some parameters. For instance, some “Circumstance” cards are inherently beneficial. Those would have an certain icon visible when they are face-down, so that “Circumstance (Good) 1” on an “Encounter” card would mean that one beneficial circumstance card is applied (even when it’s not the top card on the “Circumstance” card deck.

Likewise, an “Encounter” card could trigger a number of different decks, other than the “Circumstance” deck: “Location” deck, “Situation” deck, “NPC” deck and eventually “Loot” deck cards.
All of these have their own corresponding icons which are used to filter the possibilities accordingly. Sometimes the filtering is circumstantial, sometimes it depends on the character triggering an event, or something else.

The game’s design includes about two dozens of such card decks. Their functionality and mutual dynamics are meant to be examined, so that the gaming process can be observed and cleared of any surplus or elements that reduce playability.

So, basically: ideally I would love to examine the possibilities and scenarios which can arise from the combination of such card decks. And this is not easily emulated using any simple Excel chart or anything (I’m using mind maps just to brainstorm all the decks separately). Especially due to the fact that one card can trigger a plethora of other, and this is designed to be extremely unpredictable and asymmetric (all in the name of achieving great replayability).

And since this is a big job, some measure of interface would be helpful. Which is why I’d rather use a gaming engine than a conventional database desktop application.

I hope that this example clarify’s the challenge a bit for you?
I would be glad to point out other examples, but ultimately the dynamics are the same: cards triggered by various parameters (often several, including rolls), triggering other cards, sometimes several cards from different decks. Programming and logic-wise - it’s all the same.

so if i understand correctly, when wandering in wild lands, you draw an encounter card, and that card tells you which other cards you need to draw, then you have a circumstance deck which either improves or hurts your players stats?

that’s alot of data for a card game, but i’m not sure if there is an automatic solution to figure out how to remove unnecessary decks. some of your decks could be combined or separated, but i don’t know of any algorithm to solve that other than keeping track of the rarity of a feature or counting how many steps the mechanic takes to complete.

some of the decks are more important and more vague, so alot of your more specific decks might get refactored into those vague decks. for example, maybe the NPC, weather, and situation cards could just be encounter cards, since they are similar in how random they happen.

the loot deck is very different from these random events, as its probably triggered by a victory of some kind, rather than being random. random loot might need to be specific to the encounter though, because more difficult encounters usually offer greater rewards. if you want to make the rewards random, but also tied to the difficulty, maybe you could have a few tiers of loot decks, so tough encounters provide the best loot.

some of your deck descriptions sounded kinda mixed in a way that wastes a variable amount of downtime looking for a compatible card:

maybe you could try separate decks for each terrain to speed up searches, or maybe terrain is decided by the encounter card, instead of the board, so you never get incompatible encounters.

maybe you could separate the circumstance deck into reward and punishment decks, so you don’t have to keep searching through a deck to find a compatible card, or maybe circumstance cards could be encounter cards as well.

any time there is a potential incompatibility, its a sign that those concepts are related and dependent on each other, and maybe those should be part of the same card.

Basically - yes.
The circumstance deck introduces additional, well circumstances. It can mean that a wild animal enters the combat map for no reason doing something. The animal itself is drawn from the “Animal” deck, which also has its parameters (i.e. different animals can be found in different terrain with different frequency, so it to would have “compatible terrain” icons clearly seen when faced down).
This is only one of dozens of possibilities.
It could be that a hostile group, defined on the “Encounter” card, say - a raider group has some quality. It could be their change of stats (i.e. they have better armor, or automatic weapons), greater numbers, higher morale or a powerful NPC on their side (again - drawn from the “NPC” card deck, but only from those NPC cards that have a ‘bandit’ icon clearly seen while faced down because not all NPCs are combat-ready and prone to banditry).

So, as you can see - the amount of cards to be resolved is pretty unpredictable and largely inconsistent, because an “Encounter” card can mean no additional cards to be drawn.
The idea is to primarily build a platform to observe this dynamics, so that scenarios can be simulated.
Ideally, it would be via filtering. So that I could design and introduce all the graphics, the tokens and the miniatures of the board game to the Unreal Engine, so that, for instance, I can set parameters so that possibilities and probabilities can be observed.
For instance, let’s assume that all decks, tokens and the map are all in the engine, in a 3D environment emulating something like “Hearthstone”.
I take the turn counter so that it dictates the weather and the day-night cycle, which has an impact on some cards.
I take a character and place it on a map area.
This narrows down the Encounters that the character can encounter based on said parameters, the NPC that can be encountered, etc.
Ideally, such probing would prompt the display of plausible and playable scenarios so that probability can be observed.

Ideally, I could set the commentary on the goings on in such situation, used for such a simulation (like - puting a “This will be hillarious”, or “This would be fortuitous” notes on the cards, based on the scenario) so that I could determine how playing which character in which scenario impacts the difficulty.
The idea is to emulate and simulate the playing process using this, so that I could determine whether certain scenarios and circumstances have anything for the player to hope for and whether the difficulty is within the desired parameters.
The desired parameters would be so that with any character under any circumstances there is a good reason for the player to hope for the best and fear the worst. So that each scenario would offer, let’s say, a 5% chance for a very fortuitous and very bad outcome and a healthy dose of those in between that would take some effort and/or luck for a good outcome.

Graphically and technically - it would be optimal if this could be graphically achieved using filters that correspond to said icons, so that a statistics window would show just what the player’s experience would likely be.

The ultimate goal is to introduce a measure of balance and consistency in the players’ experience.

Essentially, the game itself has categories that are meant to exist beyond and outside of card decks. This is meant to reduce the number of decks and help achieve the desired model of complexity.
For example, the “NPC” deck AND the “Encounter” deck could have an icon representing “Possible threat”. Meaning - they indicate that the characters will encounter somebody who can take a punch and can be dangerous (regardless of the incoming faction’s inclination to do so). The two decks are meant to be right next to each other. But the “NPCs” hold precedence over the “Encounters”, so that when a “threat” is supposed to be resolved - a top “NPC” card would be played, rather than the top “Encounter” card. Which makes the “threat” cards - a sort of a mish-mash of different card types that plays a certain role.

The idea is not to find an automated solution that would reduce the number of decks. That would take too much programming. Rather than that - the idea is to observe the decks and their dynamics in a simulated environment of an engine that can be used as a database that would serve the development.
I would love to literally filter the options and simulate events being resolved using the engine so that I can use that to build statistics that would demonstrate whether the game achieves all the desired goals.
Some of them would be - having a desired learning curve and having a desired difficulty regardless of the character choices taken by the player (so there’s always something to hope for and never a comfort zone that loses the player’s interest).

I would love to have these statistics (which I could manually input somewhere) so that the ultimate design goals are met.

It’s a complex game to design. I simply don’t have the mental capacity to learn a few hundred cards’ parameters by heart and filter it all like a database. Which is I am exploring the options of using a game engine. Games regularly apply similar mechanics. And they do well in visualizing such dynamics.

The rarity of a feature is more than enough to fulfill this goal.

And - you are exactly right. Some decks truly are vague and their flexibility is meant to provide for randomness and, hopefully, replayability.
I can go into details with you on what exactly the game does and why each deck is out there - but that might take too much of your time. (it takes me a while to explain, while the initial testing demonstrated that it’s quicker to throw the players right into the game, rather than explain everything in advance).

You are exactly right. :slight_smile:
The loot deck has its tiers. :slight_smile: This affords for the desired randomness. For instance, each tier has one card whose description is: draw a loot card tier +1. Which means that a powerful item, entire riches can be accidentally stumbled upon, but this is very, very improbable.

You are very much right. The downtime waste is a very high risk with this game design. One of the goals of having this simulation was figuring out how to reduce this and combat the problem by any means.

You are very much right: separation of decks is a plausible solution. The idea is to have the working version set up, so that the optimum is quicker to be found. For instance, the varied terrain encounters in a single deck, in a way, reduce the need for duplicates and can achieve several goals at once (introduce rarity of a certain encounter and its rarity different based on the terrain type, which would motivate the players to avoid or seek a certain type of terrain).
One considered solution would be to reduce the number of encounter cards resolved by skipping those that aren’t plausible and taking them as an encounter avoided. While this would reduce the downtime - it would consequently remove the uncertainty and would allow for a meta-avoidance of potential trouble.

As for your idea on the circumstance deck - you could be right. I’m yet to find out whether the players prefer browsing through the cards or having many more decks. My bet was on the former, but I guess some testing will be necessary to figure that one out.

Oh, and… reward&punishment in terms of PC stats based on the encounter… I haven’t covered that with the draft of the deck, so far. Thank you!
The game is complex. It would literally take a bunch of tables just to make sure all concepts are met and represented in the decks.

I’m browsing through the links you’ve given me. Thank you!

if you want players to quickly browse through cards, but keep both types in the same deck, you could color code the back of the cards. so the instructions could say draw a blue consequence card, or a red consequence card, or the first consequence card. but that would mean players would know whether the next card is good or bad, which might add some tension, or change strategies, but its hard to tell without playtesting. but maybe it would be better than allowing the players to look at all the upcoming consequence cards, since that might change how random it feels.

Hello,

If you are new to using the Unreal Engine, the best place to start is with our Getting Started documentation : https://docs.unrealengine.com/latest/INT/GettingStarted/index.html

Once you familiarize yourself with the basics of the engine, you can begin looking into some of the Blueprint tutorials that we have available, such as the Blueprint Quick Start Guide: https://docs.unrealengine.com/latest/INT/Engine/Blueprints/QuickStart/index.html

We also have several video series available that cover a wide variety of topics, from creating simple blueprints to creating fully-functional games: https://wiki.unrealengine.com/Videos

Finally, there is a massive playlist of tutorials for UE4, as well as a playlist containing recordings of our past Twitch training live streams, which can be found on our YouTube channel: https://www.youtube.com/user/UnrealDevelopmentKit/featured

If you find yourself running into any issues during the process of learning the engine, be sure to search the following sites for information, and if you cannot find anything specific to your issue, feel free to post a new question on the appropriate Answerhub section:

Forums: https://forums.unrealengine.com/

Answerhub: https://answers.unrealengine.com/index.html

Documentation: Unreal Engine 5 Documentation | Unreal Engine Documentation

Wiki: A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums

Have a great day