|
Current Issues with Game Behavior
From Globulation2
This wiki page is a part of a listing of
Current Issues with Using Globulation 2.
It has been placed on its own page due to problems with wiki pages
beyond a certain size. See that page for an explanation of the status
of the listing.
Autonomous Unit Behavior
Explorers
Miscellaneous Issues with Autonomous Unit Behavior
-
Globules carrying the same kind of resource (for
constructing/supplying a building) or seeking the same service
(food/healing/training) or seeking to do the same kind of work
(clearing or war/exploration flags with level requirements satisfied
by both globules) that are closer to each others' destinations should
swap destinations. For example, I often see this kind of situation,
where each X marks a worker carrying wheat and the arrows indicate
where the workers are going:
X ----------------------------------------->
<------------------------------------------X
In addition to the obvious direct benefit of getting the globules to
their destinations more quickly, this would also reduce traffic jams
(which can get quite bad).
I don't know how to calculate this both efficiently and optimally.
The simplest way to calculate it is to compare every pair of globules
carrying the same kind of resources. For each such pair of globules,
call them X and Y, look up X's current location in Y's destination's
gradient, and look up Y's current location in X's destination's
gradient. If X is closer to Y's destination, and vice versa, then
they should swap destinations. Unfortunately, comparing all pairs is
inefficient because there will be too many pairs because the number of
pairs grows extremely fast. To make it efficient would need some
heuristic for deciding on which pairs to actually compare. Perhaps
this heuristic could focus on regions with bad traffic jams. Even
picking some pairs randomly to compare (and swap destinations if
appropriate) might make a big improvement in globule performance. (By
the way, a fully optimal solution to rearranging destinations might in
theory have to consider also triples, quadruples, etc. That's
probably way too difficult to even consider implementing.)
Bug 16242 (“improvement-idea for pathfinding concerning idle units”) comment #1
is related.
Bug 19488 (“unit allocation seams to ignore distance (22-rc)”)
seems to be describing the same problem but has a different idea about
the solution.
-
Before moving toward a building to feed/heal/train, a globule books a
place in the building. However, for extreme long distance trips, this
sometimes is wasteful, because it can leave the slot in the building
unused for a long period of time. It might perhaps be better if
globules sometimes moved toward (one or more) buildings they wanted to
use and did not try to book a place until they were sufficiently
close. Perhaps this distance could be derived from the estimated time
to arrive and the estimated time for a globule (i.e., some other
globule) to get served by the building?
-
Globules know where resources are in unexplored areas that are not yet
visible. It is inconsistent that workers can see things that the
player can't.
Warning: Any solution to this would have to take into account that
glob2 currently depends in a number of ways on globules knowing where
resources are without having seen them:
The current approach simplifies the implementation by sharing
part of the computation of resource gradients among all players.
(It is not clear to me how big of an advantage this is, because the
actual gradients can not be shared because different players have
different forbidden regions.) The fix would involve sharing even
less of the computation, because the different players have
explored different parts of the world.
The current approach allows computing gradients using the resources
that are actually there, instead of each player's memory of what
resources have been seen most recently, which might differ because
of the actions of other players. Solving this would involve
implementing some notion of memory.
With the current approach, only explorers need code for exploring.
This is significant because glob2 does not (yet) have a good
gradient-based method for exploring. (There are some untested and
unimplemented proposals.)
The current approach simplifies map design, because the map
designer can assume workers will know where to find resources.
(This might be solved by starting each player with 1
explorer, which many designed maps already do.)
The current AI opponents depend on their warriors being able to
automatically find a path to attack you, because the AI opponents
do not actually explore the world and instead cheat to find out
where your base is and simply place war flags on your locations
despite never having actually seen the locations.
-
Workers that have picked up a resource that ends up unneeded often
seem to end up discarding it for another type that is needed. In many
cases, it might be better for them to hang on to the resource for a
while, because it will likely be needed. (Or maybe there should be
some way to stockpile unused resources?)
-
It would be nice to be able to force individual globules to abandon
their current activity and try picking a new one. Even better would
be to allow ordering a globule to go to a particular place or work on
a particular task. This might actually allow reducing
micromanagement, because right now one often must take many actions
with building and flag settings and areas to get the same effect as a
direct order to a globule.
Bugs in Individual Globule Behavior
-
BUG: I have seen workers bringing some resource for construction
almost reach their destination, then abruptly completely forget about
being assigned to construction. You can see the moment when they
forget about their assignment because they lose the white circle (I
keep pressing and releasing the mouse button on the construction site
so I can watch them). They will then do something else like
harvesting wheat (throwing away the wood or stone they were carrying)
to deliver to an inn. This does not happen because the building
they were working for has all its resources. There is no obvious
sensible reason for this to happen. (This is one item in
bug 19592.)
-
BUG: I have seen workers carrying wood wander around just next to a
construction site that needs wood, but do nothing and instead wander
aimlessly. (This is one item in
bug 19592.)
-
BUG: I have seen 10 workers assigned to bring wheat to an inn. I
watch what the assigned workers are doing and I see them wandering
around aimlessly, despite plenty of wheat nearby. If “draw unit
paths” is on, I sometimes see a line going from a worker to some empty
cell (near but not in the wheat field) and the worker moves from cell
to cell near this target cell. This seems to happen most in
situations of high congestion. (This is one item in
bug 19592.)
-
BUG: I have seen workers right next to an inn that needs construction
and does not have all workers assigned yet, and next to wood that can
be used for it, and with nothing to do, and not hungry yet, and yet
just doing nothing. (This is one item in
bug 19592.)
-
BUG: I have repeatedly seen hungry warriors within direct sight of an
inn (with an unblocked path to the inn) that has both food and places
just sit there spinning (not moving by even one cell) and starving to
death. This happens most frequently after the warriors were summoned
into battle with a war flag, although I have seen it at other times.
If “draw unit paths” is on, sometimes one can periodically see a line
flash out from each warrior to some sensible destination, but the line
immediately disappears. The warriors stay in place until they run out
of hit points due to starvation. Note that when the warriors
initially get into this stuck state, they still have plenty of food
and are unwounded. I have recently discovered that manually placing a
forbidden area on the warriors generally helps to get them unstuck.
(This is one item in
bug 19592.)
-
BUG: Workers sometimes harvest wheat even when the only offered jobs
are from inns that are full of food and have no guests, and there are
no clearing areas or clearing flags. There are no building sites or
hives needing wheat. The workers that harvest wheat are shown as
carrying wheat after it happens, as though they were harvesting the
wheat to carry it to a building. When this happens, the indicators of
small dots above the inns show only black dots meaning that the
inns have not accepted any workers.
AIs (Computer Players)
-
To help understand the AIs, it would be nice if there were an easy way
to watch AIs play against each other as a spectator. It would also be
nice if it were possible for such a spectator to see the world from
the point of view of each AI.
(Actually, there is! It is just undocumented and not straightforward
to discover. Also, it only allows you to see the game from the point
of view of one of the AIs. You can't switch around or watch the
entire map.)
-
What does “Numbi” mean in the name “AINumbi”? Similarly, what does
“Castor” mean? What does “Nico” mean? Etc.
-
Can “AINumbi” please be renamed to “AIPathetic”? ☺ In my brief
experience, “AINumbi” often dies before it even encounters an enemy.
An AI this pathetic deserves a name that will properly explain to the
player just how weak and hopeless it is.
-
AINumbi has an annoying tendency to die all on its own if started in a
location that is not close to resources. It would be better if this
just slowed it down, rather than causing it to die.
Flags, Areas, and Work Assignments
-
It would be helpful if there were a flag that summons workers even if
there is nothing to clear. I have wanted to try to force a worker
migration to another island to have a local surplus of workers there,
and there seems to be no easy way to do this. I think it might be
better to rename clearing flags to “work flag” and change things so
that if you turn off all of the kinds of resources to clear, workers
will come regardless. (It would be good of course to keep the current
behavior that if clearing is requested and all resources are cleared
then workers do not get assigned.)
-
It would be nice to have a kind of area that allowed harvesting of the
resources in a cell provided the last resource was not taken. So
harvesting would be allowed if the resource was 2/5, 3/5, 4/5, or 5/5.
An AI can do this easily by creating/removing forbidden areas
depending on the amount remaining of a resource, but it is too
micromanage-y for a human to be able to do. (Or maybe the amount of
resource on a location should affect the probability of it spreading
to the next location, so that there would be benefits from allowing a
resource to be higher than 1/5?)
-
It would be helpful to have an area that means “clear this if it is
forest, protect this if it is wheat”. Otherwise I spend too much time
micromanaging the areas. (It is not clear what the user interface
would look like. (Are there enough colors/patterns for another kind
of area?) I basically want all of the settings I can make with
clearing flags, but combined with the ability of areas to specify the
precise region easily.)
-
It would be nice to have areas that are forbidden only for harvesting
and that if empty can be moved through. (Yes, I know that this might
prevent a new resource from growing there if a globule is on the
location at the wrong time.)
-
Clearing areas appear to override forbidden areas. This has the
result that a worker will clear the cell, but not move into the cell.
(This should be documented.) This causes user interface difficulties
because I often find myself in a race with the mouse to both remove a
clearing area and place a forbidden area before a worker clears it.
Unfortunately I often end up losing the race. (Generally, I placed
the clearing area trying to get rid of wood, and the wood is now gone
and some wheat has just grown, and I desperately want to keep the
wheat to help expand a farm or guard the farm's border against wood.)
(Kai thinks the current behavior is not right, and Leo thinks it is
correct.)
-
It would be nice to have clearing areas that will attract workers like
clearing flags do. The circular areas of clearing flags are very
tedious to use.
-
It would be nice to have a kind of clearing area/flag which makes its
resources preferred for building purposes rather than causes the
resources to be chopped down and thrown away. The idea is that when a
worker needs wood, they would be willing to go a bit further to chop
down wood from this area, and when a worker chops down wood in this
area, the worker would try to find a building that needs wood before
discarding it. What I am imagining is a kind of clearing area where
the speed of clearing is not as important as using the resources well.
(Perhaps this idea is not so important because it seems relatively
rare for resources to be so tight that one can't afford to simply
slash and burn in Brazilian-rain-forest style. Not an ecologically
good message, but when you're out for world domination these things
are less important.)
-
W
| |