Have the players take their turns simultaneously. This also has the added benefit of speeding up the game, because players don't sit idle while waiting for the other players to make their moves. In that case you might want to separate each round into an interactive "planning" phase and an automatic "execution" phase.
During the planning phase, all players ...
Do what Power Grid does:
Players take turns in order of farthest behind to furthest ahead in terms of scoring (in the case of Power Grid, the player who powered the fewest cities that round). This acts as a catch-up mechanic, giving the resource-advantage to the player in last place.
It also means that the player who's in the lead doesn't want to stay in ...
This is a difficult question to answer objectively, but I will try to construct a solution to your problem without guessing:
You describe the problem at hand as an end of competition to one player because that player became too powerful. Note one thing, though: The player became powerful by terms of the balancing incorporated in the game, so either you ...
The easiest way I could think of to balance out the gameplay for all
players is to randomize the turn order after each round. While this
would give everyone a fair chance, I'm worried that this might be too
big of a shift away from strategy and towards luck.
Do not randomize, change the turn order in a fixed way. If I play first, next turn I play last;...
In terms of balance, competitive games can generally be sorted into one of three types:
Positive reinforcement: When one player gains a small advantage over the other, that advantage gives that player an even larger advantage, which gives the player an even larger advantage, and so on. The advantage of this approach is that games tend to be very even at ...
In my opinion, the way you fix this is to decouple the victory condition from the production mechanic.
For a great example, check Eclipse, the board game. You can score a lot of points just for researching tech and building monoliths. The monoliths don't give you anything except points, and tech doesn't give you anything directly. You also gain points for ...
Most simple (and probably most naive) approach I can think of right now:
Start at your character and mark all surrounding fields as steps - 1.
Iterate over all newly marked fields and once again mark their surrounding fields as steps - 1 where steps would be the current field's step number, unless the new field has an already higher number.
Repeat the last ...
A good way to do this that I always liked is tying turn order to some resource expenditure. Thus determining turn order becomes part of the gameplay to get skilled at. This allows for some very interesting asymmetric play if done right. You can see this in games like Twilight Imperium or Five Tribes.
Twilight Imperium - Each round starts with players ...
I'd base the system on three basic principles:
each unit type has different HP values that affects its mortality rate.
all damage done is lethal (otherwise, just multiply by a scaling factor)
each squad takes total damage in proportion to the number of individuals.
Example: Your starting army army
1400 infantry (ea. 50 HP)
500 cavalry (ea. 100 HP)
One thing to consider would be to do your update at the end/start of each player's turn instead of at the end of the round. That way, every player would have the opportunity to collect freshly spawned resources every turn. You would definitely want to shift the amount that spawns (or inflate costs) to compensate for the influx of new resources.
In multiplayer games, a very effective "automatic" balancing mechanism is that the weaker players can (and have a strong incentive to) join forces against the strongest one.
Some ways to make this work more effectively include:
Make sure that your players can cooperate effectively. There should be ways for players to trade and/or simply donate resources, ...
In fairly chaotic systems, like nature, you often find that when one thing rises to be the dominant force in the system, the system changes and something else will inevitably react to counter this - it might be something getting stronger, but it can also be the creation of something new.
I use the term country but it could be a game about any group entity.
The logic is simple: your contour is the set of all the edges that separate border tiles from non-border tiles. You can code the following:
for each boundary tile
for each edge
if edge is shared with a hex tile that is NOT in the boundary tile list
mark as contour edge
render all contour edges
Note that if you want the contour to ...
I think a bounded Dijkstra is precisely what you want to use. The way that Dijkstra finds the distance between two points is it maps out the distance to every node from an origin node, and then 'selects' the shortest path from this distance map. You want to do virtually the same thing, except you want the distance node graph it creates as output, rather ...
A non random way to do it, its making that to be the first player is a choice of the players.
I mean, you can take the stone resource, the peasant or the first player turn token, flag, or any other more roleplaying reason.
Thats the way of games as the Agricola boardgame.
The other way of taking that first turn token is like in Terra Mystica.
You can just apply A*( A-star ). Compared to a uniform square grid the only difference is the way you collect the adjacent tiles ( aka your hexagons ).
Each tile should have a table of booleans representing the bridges corresponding to their direction like so
//Depending on your hexagon order
Here is how I would approach this:
I would start by performing terrain analysis (pdf) and creating a set of influence maps based on various attributes (conflict maps, resource maps, etc). You might want to combine the influence maps together with associated weights. You'll probably update some of them at the start of each turn.
But assuming you have the ...
This is primarily just a design decision. Consider that you can actually do these things at the same time. If you look at the situation in terms of your update loop:
Calculate outcome for entity: n
Play animation: n (frame 1)
Calculate outcome for entity: n+1
Play animation: n (frame 2) and n+1 (frame 1)
The Thue-Morse sequence is the fairest way to share [turns] between (two) players:
AB BA BA AB BA AB AB BA BA AB AB BA AB BA BA AB BA AB AB BA AB BA BA AB AB BA BA AB BA AB AB BA BA AB AB BA AB BA BA AB AB BA BA AB BA AB AB BA AB BA BA AB BA AB AB BA BA AB AB BA AB BA BA AB BA AB AB BA AB BA BA AB AB BA BA AB BA AB AB BA AB BA BA AB BA AB AB BA BA AB AB BA ...
You should not force players to make their moves under duress by giving them a ticking down countdown timer. A reasonable time limit might not be a bad idea to prevent AFK players from ruining everyone's game experience, but if you make the time limit too short, the game will become very stressful. You don't want players to lose a game because they simply ...
My stance is there aren't inherently bad mechanics. Different mechanics appeal to different people. However, it sounds like that particular set of play testing might have found a disconnect between this particular mechanic & your particular game.
Here are some options:
The play testers are not the intended audience. The good news is this lets you keep ...
Answering by just focusing on the question and not the other information.
I think the key to solving any problem is identifying what's causing the problem. If you're trying to find out how to motivate players more, then it may be critical to gather player feedback on what motivates and what doesn't motivate.
Unfortunately, I don't think ...
If a dominant power is in control, then give the other players non-dominant options to handle it. Star Wars: Forces of Corruption did something like this, by means of "Corruption", basically a criminal influence in other people's territory.
Some examples could be:
Another suggestion ...
It's not entirely clear, but I understand the unit will only be able to move in the direction it is facing. In that case you will need to factor that vector into the equation as well (next to the unit and mouse positions).
Have a look at the equations in Minimum Distance between a Point and a Line by Paul Bourke.
In this picture, your unit's position is P1,...
You might find reading the book "Artificial Intelligence for Games" very helpful. It gives you insight in the AI implementation of various kinds of games. (e.g. troop placement/movement, path finding, decision trees, ..)
First create any solution you want and profile. I won't be surprised if your 100k objects will work OK using any container (unless of course you're doing mobile development for windows phone).
If it wont work, I see 2 mayor sources of optimization:
Do you really need to loop through every object in every turn? Can you possibly limit your loop to the ...
Broadly speaking there are three approaches to rewinding game state (with various flavours in between): reversing/undoing actions, replaying actions from an earlier, fixed state, or storing all states and just picking the right one on demand. The first is more flexible but in the worst case you need to double your work, creating reverse versions of all your ...
When the game is parallel turn-based, you can calculate your moves while the player is making theirs. This gives your AI quite a lot of time. So performance is not that much of a concern as it would be in a real-time game.
In many games it is not actually necessary to plan ahead more than one round. It is often possible to write a passable AI which doesn't. ...
There are very few regular polygons, which can get stacked next to each other seamlessly. These are triangles, squares and hexagons (your question mentions using pentagons or octagons, neither of which can be actually put next to each other seamlessly).
Using hexagons and squares over triangles has a very big advantage: tiles can have the same rotation. ...