|
Current Issues with Using Globulation 2
From Globulation2
This page contains a categorized listing of issues and problems with
the marvelous game Globulation 2.
This page is similar in many ways to the Developer Todo. It has
not been integrated with that page for a few reasons. First, this
page is intended to list issues with using the program without
necessarily committing to actually doing anything about the issues.
(Some issues may easily turn out to be just too hard.) Second, there
is no intention to specify exact solutions for any issues. Any
suggested actions here are intended as tentative ideas that will need
to be reevaluated when it is time to do actual programming. Third,
the contents of Developer Todo are currently not very organized
and many individual items there are quite sketchy.
This page differs from the Wishlist by focusing on issues with
already existing features of Globulation 2 instead of proposing new
features. This page differs from the Community Todo by including
many issues that are probably best addressed by programming, whereas
Community Todo aims to list items that can be done by
non-programmers.
(As a historical note, the very first version of this page was
initially developed by Joe during 2007-04, based on experience with
glob2 versions 0.8.16 (from the Ubuntu Dapper Drake
package), 0.8.21 (from the .deb file on the Globulation 2
web site), and 0.8.22 and 0.8.23 (compiled from .tar.gz
files on the Globulation 2 web site). The contents were influenced by
very helpful comments from Steph, Kai, Leo, donkyhotay, Bradley, and
Eli Dupree. Some remarks elsewhere on the wiki by NoSpin and Xylix
also helped.)
Issues with Playing the Game
User Interface
Visual Indicators
Assignments of Globules to Buildings/Flags
-
It would be nice to have a good visual indicator of which flag a
globule was serving or which building a globule was seeking for
feeding/healing/training. (The unit paths can be helpful for this,
but are sometimes confusing, especially when there are many units.
Also, they don't show the building a worker is supplying when the
worker is still fetching a resource.) This could work similarly to
the way holding left mouse on a building or construction site
currently shows which globules are supplying it by circling them in
white. The difference would be that selecting the globule would
indicate the target building (rather than selecting the building to
find the globules).
-
It would be useful to be able to easily find out how many globules are
eligible for serving a building or attending a flag. Sometimes it is
possible to get this information on the statistics display, but the
statistics display is anyway confusing and hard to read. It could be
very useful if the status display of each item told how many globules
(workers, warriors, explorers) qualify to work on the item, and how
many other items are competing for the same set of globules. (This is
related to the (closed)
bug 8594 (“workers prefer been iddle than repair/update”).)
-
When holding the left mouse button on a building to see what globules
are serving it (it would be better if this also worked for flags), I
often can only find some (or even none) of the assigned globules
(unless perhaps there is a bug in the indicated number of assigned
globules). So I think that when doing this it would be helpful to
move the viewport if that would show more of the assigned globules
together with the building/flag. In addition, it would help if
off-viewport globule locations were indicated somehow in the mini-map
(maybe flashed?). Perhaps even everything else should be dimmed so
that the assigned globules can be seen more easily.
-
Related to the above point, it would be nice if the feature to show
assigned globules were extended to allow also easily seeing which
globules are going to a particular building to get fed/healed/trained.
The distinction could be indicated by using a different color circle.
-
Further related to the above two points, it would also be nice if one
could ask for the globules assigned to a building (it would be nice if
this also worked for flags) to always be indicated as long as the
building/flag was selected. I'd rather not have to hold the left
mouse button down for this.
This would also help with the problem of not being able to identify
globules serving a building that are off screen. You could select the
building, and then scroll around until you find all of the circled
globules.
Unit Paths
(The “draw unit paths” feature draws lines that indicate where globules
are going and by default is turned on and off by “t”.)
-
It would be nice if the unit paths appeared even when neither source
nor destination are on the screen. This is needed to allow tracking a
long line across several screens to try to understand where a globule
is going (and why it is going there).
-
When a worker is going to gather a resource, it would be nice if the
paths shown by the “draw unit paths” feature included not just (a
prediction of) the resource to be gathered, but also included a path
to the building the worker is supplying. In this case, the two paths
from the worker should be in different colors. (Kai thinks maybe
there should only be the path to the building being supplied, because
the path to the resource is only a prediction (and currently a poor
one). I think both paths are useful.)
-
It would be nice if the feature of showing the globules serving a
building (currently by circling them in white when left mouse is held
on the building (unfortunately this does not work for flags)) would
also change the colors of the paths drawn for those globules by the
“draw unit paths” feature, so that these paths can be distinguished
from the crowd of other paths.
-
It would be very helpful if there were a configuration option to turn
on the “draw unit paths” feature at startup time (or if the feature's
state were remembered in save files). I generally want this feature
to be on. I usually forget to turn it back on when I restart
glob2
and then I get very annoyed when I later realize I've been playing
without it.
Mini-Map
-
The current mini-map is very helpful in that it shows the whole world.
However, it is very small and it is hard to see details, especially on
a 512 by 512 map. It would be nice to be able to expand the mini-map
(obviously only temporarily) to the whole screen to see more detail.
This would also make it easier to drag the viewport indicator to a
precise location, which is more difficult on larger maps.
Main Map Area Building Status Indicators
-
When a building has been marked for an upgrade, and there are still
globules inside it, the row of white dots on its upper right is
missing and you have to click on the building to find out how many
globules are still inside it. It would be better if this information
continued to be shown on the map.
-
On the left of each inn is displayed a column of yellow dots
indicating how much wheat is in the inn. Unfortunately, this
information can sometimes mislead the player into thinking they have
enough wheat in their inns. What is important is the amount of
uncommitted wheat. It is possible to have lots of globules
starving even though they are near to inns with lots of spaces and
food, because globules don't go to an inn unless it both has an empty
place and (already!) a corresponding item of wheat. (By the way, it
would be good if this fact were documented.) Unfortunately, it is
hard to visually inspect the current GUI to see this problem. If you
look at the white and black dots on the right of the inns, you will
see black dots indicating there are spaces. If you look at the yellow
dots on the left of inns, you will see wheat. Maybe the inns are not
full of wheat, but you see wheat. So you think you are happy. But
you are not! You have to subtract the white dots on the right of
the inns from the yellow dots on the left when inspecting the yellow
dots, because what you want to know is how much uncommitted wheat
there is in inns. A possible solution would be to change the color of
dots corresponding to committed items of wheat, so that one can
easily visually inspect how much uncommitted wheat there is in the
inns.
Statistics and Graphs
-
There are many things about the statistics panel that are confusing.
For example, once the statistics panel told me there were 24 level 1
jobs and 40 level 2 jobs, but at that time the only current jobs
were bringing wheat to inns and the hive. Why did it say there are
24+40 jobs requiring any extra skill?
-
It would be nice to be able to have the graphs shown at all times
(simultaneously with all other displays). This could be done by
adding another column at the right for the graphs.
-
It would be nice if there were also graphs for the percentage of
globules at each skill level. Currently only about half of the space
in the graph pane is used so there is room for one or two more graphs.
(It might also be nice to allow the user to choose the statistics to
be graphed, but first there need to be enough graphs programmed for a
choice to be meaningful.)
Map Overlays
-
BUG: The starving and defense maps show something, but the damaged
map only works intermittently. Usually, the damaged map doesn't show
anything at all, even if there are many wounded globules.
Occasionally there is a brief flash of information from it.
-
The color intensity from the starving map makes it hard to actually
see the globules that are starving.
-
The defense map seems to be misleading. For level 1 defense towers,
it still colors cells that are a distance of 6 cells from a tower,
even though they are not in its range. Also, does the color intensity
show levels of accuracy and/or damage? I am under the impression that
the distance does not actually make any difference as long as the
target is in range.
Miscellaneous Issues with Visual Indicators
-
It would be nice (especially for debugging) if buildings, flags, and
globules had identification numbers. For example, the inns could be
“i1”, “i2”, etc., workers could be “w1”, “w2”, etc., and so on for
different types. The status display of a building/flag could show
which globules are assigned, and the status display of a globule could
show which building/flag it is assigned to. Similarly for globules
that have booked a place in a building for feeding/healing/training.
In addition, it would be nice to be able to turn on a display of the
identification numbers in the main map area.
-
The tooltip for inns in the panel with tools for creating new
buildings says an inn “Foods your units”. The word “foods” should
instead be “feeds”. (This text is the value of “food building
explanation” in “
data/texts.en.txt ”.)
-
It would be nice to have visualization tools for gradients for
debugging. It appears that in older
glob2 versions there
was a feature where one could see the gradients associated with a
building (turned on by middle mouse in the right panel while a
building was selected). This would print numbers in each map cell.
(It might also be nice to have an option to see colors instead of
numbers.)
-
Building walls and supplying defense towers doesn't seem to use up
stone, and clearing flags don't allow specifying to clear stone. I've
got one that reports as “Stone 2/5” and it just stays that way no
matter how many walls I build. If stone doesn't get used up, then why
does each stone resource have a number like “3/5” or “4/5”? This
number is confusing as it seems to imply that one could clear away the
stone by using it up. I wasted a long time trying to clear a path
through some stone by building walls from it. I think this is a GUI
issue because the GUI misleads the player into thinking that the stone
can be cleared away by being used up.
The counts on wood are similarly misleading, because wood with status
“5/5” has the same game play as wood with status “1/5”. This extra
information seems to use player brainpower for no benefit. (In the
case of wood, there is less confusion because it is possible to
harvest/clear wood.)
-
It is hard to tell which resources will be affected by the circular
region of a clearing flag. Right now, one must simply wait to see
what the workers end up clearing. It would be better to have visual
feedback at the time of placing the flag or adjusting its radius.
-
When a building being upgraded needs to get bigger, there is a
confusing user interface problem.
First, let me describe the situation leading up to the problem. Once
the larger land the building needs is empty of resources, you can ask
to upgrade the building. Once the upgrade has been requested, the
upgrade doesn't actually start until two additional conditions are
met: (1) all globules inside must leave the building and (2) the
additional land needed for the upgraded building needs to be free of
globules.
After condition (1) has been met, while waiting for condition (2), the
visual display is very confusing, and it can seem to the user that the
upgrade is stuck for no reason. The visual display looks as follows.
There is no bar to set the number of workers (and the dots do not
appear above the building site). There are still dots below the
building in the map indicating its hit points, but no dots to the
right, above, or to the left. The image of the building remains the
same. When the building is selected, the details display in the right
panel looks like this (if your font is not fixed width my diagram will
look funny):
+----------------------+
| Racetrack (player 0) |
| Level 1 |
| |
| +------+ Hitpoint |
| | pic | 270/270 |
| | here | Inside |
| +------+ |
| |
| Armour: 5 |
| |
| ===BROWN BAR HERE=== |
| |
| |
| |
| Cancel Upgrade |
+----------------------+
The word “Inside” in the status display adds to the confusion, because
it seems to indicate the building is waiting for globules inside to
leave, even though all of them have already left. For a while I was
convinced it wasn't working and I kept canceling my upgrade and trying
it again to see if it would work on a second try. Eventually I
learned that I have to be patient.
The bug is that the user interface doesn't explain why the upgrade
is stuck. To avoid this, there should be a message in the building's
status display indicating that it is waiting for globules to leave the
building site.
I understand that in version 0.8.22, glob2 now places a (secret! ugh!)
forbidden area to help speed up the process of getting the globules
out of the area. But there can still be confusion because this can
take some time, especially if there is a lot of congestion. (Also,
this secret forbidden area doesn't seem to actually work and sometimes
I have to place a real forbidden area to clear out the globules.)
A related bug report is
bug 16470 (“automatic clear/forbidden on upgrade”).
-
It would be nice to be able to be alerted when enemy units are seen,
even if no fighting occurs. It would also be nice to be alerted when
explorers cause damage, so that I can see how effective (or not) they
are.
A related (but not the same) bug report is
bug 16163 (“have mini-map flash location of battle”).
Artwork and Animations
-
It would be nice to have animations of globules inside buildings
eating, studying, being trained, etc.
Screen Size
-
While
glob2 is in fullscreen mode, I can not switch
virtual desktops with window manager hotkeys. This basically makes
fullscreen mode not an option for me.
-
I can only select a few screen sizes in the settings menu. It would
be better to be able to type an arbitrary size. In particular, if I
start with a custom size using the -s command-line option (e.g.,
“
glob2 -s 1344x736 ”), and I switch away from this size in the settings
menu, I can't switch back to it except by restarting glob2 .
-
Rather than selecting size by pixels, it would be nice to select size
by giving the number of map cells displayed in the main viewport.
Game Play Controls
Moving the Map Viewport
-
It would help to have better documentation on the ways of moving the
main viewport. It would be good to have the tutorial cover most/all
of them. For example, dragging with the middle mouse button is a nice
feature, but I only found out about it by reading bug reports. The
complete (I think!) set of ways to move the viewport is:
Holding the mouse cursor near the edge of the window. (By the
way, it would be better if the edge of the viewport was a magic
mouse cursor location rather than (or in addition to) the edge of
the window.)
Dragging left mouse off the edge of the window. This works
regardless of whether a flag is being dragged. You can select
nothing and drag and it works. (By the way, it would be better
if this worked when you merely dragged the mouse cursor out of
the viewport, rather than only working when you drag it all the
way out of the window.)
Clicking (and dragging) in the mini-map.
Holding down middle mouse button (anywhere) and dragging.
Pressing the Tab key while a building/flag or one of the tools
for creating a new building/flag is selected. This goes to the
“next” building/flag of the same type. (By the way, it would be
better if this also worked when a globule is selected.)
Pressing the Home key to go to the first hive. (By the way, it
would be nice to be able to select where “home” is.)
Pressing the Space key to go to the location of the last reported
event. (By the way, it would be nice to be able to go to
previous events.)
Pressing the Control-Space key combination. (See my note on
documenting what this does.)
Is there anything else I am missing?
-
The Control-Space command should be documented. This is a bit
difficult because what Control-Space does is a bit weird. Basically,
glob2 remembers the most recent location of each of 5 types of events:
globule under attack, building under attack, building finished, own
unit converted to enemy, and enemy unit converted. The Space key
moves the viewport to the most recent event (regardless of the kind of
event). Control-Space moves the viewport to the most recent event of
the next kind than the kind of the event of the last location moved to
by either Space or Control-Space. The “next kind” is determined in a
way that cycles through all of the kinds of events.
-
It would be better if the Control-Space command told you the kind of
the event whose location it has just moved the viewport to.
-
Dragging the viewport indicator off of any side of the mini-map should
wrap around to the other side. Or, better, the minimap itself should
scroll to handle the wraparound.
-
It would be nice if there were keys for moving in all directions by
full screens. In particular, Page-down and Page-up should scroll up
and down by a full screen, but there should also be keys for moving
right and left, so I propose Control-arrow for all 4 directions. The
other methods of moving the viewport are problematic. Moving by arrow
key or left-mouse dragging is tediously slow. Moving by dragging the
viewport indicator in the mini-map is too fast and difficult to
control (especially on big maps). Moving by middle mouse dragging is
difficult on two button mice and requires switching from keyboard to
mouse. Etc.
-
There is no easy way for a user to discover that they can select a
type of thing to create and then use the Tab key to go to one of them,
as though they had selected an actual building or flag. Before I discovered this feature
(accidentally!), I would place dummy clearing flags (i.e., flags with
workers and range both set to zero) everywhere so that I could select
a clearing flag and use the Tab key to cycle through all locations.
Also, this feature only works for level 1 buildings. It can not be used to
find any other level of building, or construction sites.
-
If the Tab key cycles one way, then Shift-Tab should reverse it.
-
It should be possible to use Tab to cycle through explorers (or other
types of globules). (Yes, I know you can't control any kind of
globule, but there is no easy way to find all of your explorers on the
map.) Ideally, there would also be some way to do this even if you
can't find an explorer on the screen to select.
Controlling Buildings, Flags, and Areas
Buildings
-
It would be nice to make a building which will be automatically
upgraded as quickly as possible to top level. (Another possibility is
to directly construct the higher level building without ever going
through the intermediate points.) Right now, if you don't notice a
building has been completed right away, then some globule might start
training in the building before you can mark it for upgrading to the
next level, and then you have to wait for that globule to complete its
training course (which is anyway a waste of time as it will just have
to repeat the course for the next level).
A closely related bug report is
bug 15229 (“Allow building level2/3 buildings”).
-
It would be nice to be able to have buildings be automatically
upgraded to the next level based on the number of workers with the
skills to upgrade it and possibly also the level of need.
One needs to wait for the right number of workers, or the upgrade will
be too slow. This is especially the case if the building to be
upgraded is the only school. You wouldn't want to start upgrading it
to the next level with only one qualified worker.
Having the level of need be a criteria for automated upgrade could be
very useful for inns. If an inn is consistently full of feeding
globules, then it would be nice to automatically trigger an upgrade
(provided not all inns in the same locality are upgraded
simultaneously).
-
It should be possible to set the number of workers for upgrading a
building while waiting for the globules inside to exit. Currently,
the control for the number of workers disappears while waiting for
globules to exit.
A related bug report is
bug 18636 (“assigned count visible but disabled”).
-
It should be possible to set the number of workers for a new building
while waiting for globules on the building site to move away. At this
stage, the building site only shows up as a forbidden area and none of
its settings can be adjusted.
Flags
-
When one places a new flag, in addition to the possibility of placing
another flag, the one just placed should be immediately selected so
that one can immediately start adjusting it without needing to
deselect the placement tool and then select the new flag. I very
rarely place multiple flags, but I almost often adjust them
immediately after placing them. For example, with clearing flags I
almost always change the resources to be cleared (usually by removing
either wood or wheat). And with war flags, I almost always
immediately set the level of warrior needed to the highest level of
warriors that I have.
-
It would be nice to be able to adjust the settings of a flag before
creating it. Right now, I have to adjust the flag settings as quickly
as possible before any globules get wrongly assigned to it.
Areas
-
It would be nice to have an area control that toggles the state of a
area (turns it on if off and vice versa). Currently one must make
many mouse trips to the right side to switch between the control for
turning areas on and the control for turning areas off.
-
Right now one must move the mouse all the way to right part of screen
to change the kind of area marking or unmarking one is doing. This is
very tedious and slow. It would be better to be able to make these
changes by keyboard.
-
There are many difficulties when using the checkerboard pattern for
making forbidden areas for farming. Placing the pattern correctly is
quite delicate. If one accidentally uses the pattern one location
away from where one should, the pattern gets completely messed up and
one has to make several mouse trips to the right area selecting
different tool options to clean up the mistake. What would be better
would be to use solid patterns but have an option that caused turning
the area on for locations whose x and y coordinates summed to an
even number and off otherwise. (Almost the same idea was written by
Leo earlier in
bug 19048 (“easier brush for checkerboard area”).
The only difference is the idea there
did not turn off the odd locations. That bug report also proposed
an “interleaved” pattern similar to the one used by Nicowar.) Then
one would could quickly drag the tool across a large area to set up
the checkerboard pattern. An advantage of a method based on odd/even
locations is that checkerboard patterns for separate farms that
eventually grow to meet will match correctly.
Issues Involving Combinations of Buildings, Flags, and Areas
-
It would be nice if starting or upgrading a building would
automatically place a clearing area for the needed space, instead of
forcing one to do this by hand. Right now one can not pick a building
site or ask for a building to be upgraded until all resources are
cleared from the necessary area. (Yes, clearing areas have some
problems, but this would still be better than doing nothing.)
A very similar (same?) idea is
bug 16470 (“automatic clear/forbidden on upgrade”).
-
It would be nice to have an option for forbidden/guard/clearing areas
to be automatically removed when built on. Once a building is on them
the area markings have no effect on game play (unless the building is
destroyed) and just make it harder for the player to see things. (And
if the building is destroyed the situation will have changed enough
that the player probably does not want the pre-construction area
markings back anyway. The player might deliberately put some areas on
buildings just before destroying them, so it should still be allowed
to have areas where buildings are.)
-
It would be nice to be able to copy an existing building/flag with all
of its settings. It would be nice to be able to copy the settings
from one building/flag to another. (One could conceivably also have
special loadable configurations for buildings (like in freeciv city
management), but that would require additional user interface.
Copying settings seems simpler to implement.)
-
It would be nice to have a feature that laid out clearing flags along
a path. Or better, it would be nice to have clearing areas that
summoned workers, because clearing flags are very tedious to use for
keeping a path clear.
-
It would be nice to be able to undo changes to settings of buildings
and flags and also changes to areas.
Sliders
-
There are no keyboard controls for controlling many sliders and most
(all?) other tool selectors that are in the status area. There are
only “-” and “+” for the number of requested workers, and “u”, “r”,
and “d” for upgrade, repair, and destroy. For example, you can't
switch swarm production percentages by keyboard but instead have to
use the mouse. This makes management very tedious and tiring as one
ends up spending most of one's time moving the mouse back and forth.
This is particularly troublesome if one has a touchpad instead of a
mouse.
-
The tabs on the left and right of a slider do not give any visual cue
that they allow you to change its value. They should have little
arrows on them so that this control can be easily discoverable by the
user.
-
Holding down the tabs on the left and right of a slider should
autorepeat.
Miscellaneous Issues with Game Play Controls
-
The use of the scrollwheel to adjust assigned workers is extremely bad
for people who have a touchpad configured like mine is. My touchpad
(and the touchpads of many other people) is configured so that a strip
along its right edge acts as the scrollwheel (i.e., like 4th and 5th
mouse buttons). This means a mistake moving the mouse (really the
touchpad, there is no mouse) can accidentally move the “scrollwheel”
instead. Because Globulation 2 involves so much mouse movement while
buildings/flags are selected, this means I often accidentally get the
number of workers assigned to some unit completely messed up (often 0
or above 15). In my case, this means I would really seriously benefit
from being able to turn off the feature that the scrollwheel changes
the number of assigned workers. (This is
bug 19600 (“need to be able to disable use of scrollwheel”).)
-
What is the difference between “hard pause” (bound to the ScrollLock
key and undocumented (to do: document this key binding)) and “pause”
(by default bound to the p key)?
Miscellaneous User Interface Issues
-
It would be nice to be able to rearrange the user interface elements
and display more of them at the same time (as in some other games like
freeciv).
(Doing this could be made easier by switching to a toolkit that
supports this. For example, the KDE image viewer Gwenview allows
rearranging its panes and toolbars fairly arbitrarily. You can make
any pane or toolbar an independent window if you want, or you can dock
them in the main window in arbitrary tiled arrangements. You can
stack several panes in the same location in which case they
automatically get tabs to switch between them. Apparently Gwenview
merely uses some toolkit features (in Qt or some KDE library on top of
Qt) to implement the vast majority of this. I think GTK+ used to have
some support for at least some of this kind of thing (like undocking
and moving toolbars), but I think that support was either removed or
deprecated (and hence may be becoming buggy) due to the GNOME
project's emphasis on good defaults and simplicity over
configurability. So if one were to switch to either Qt or GTK+, this
might be an argument in favor of Qt.)
-
It would be nice to switch to a widely used user interface toolkit
like Qt or GTK+. This would provide a number of missing user
interface features and also give the users a more familiar interface.
(There is already a Qt 4 port in embryo stage in CVS
(http://cvs.savannah.nongnu.org/viewcvs/glob2/quatuor/), with the idea
being that the user program would just be a light client doing only
the GUI and all game play would be handled by the server.)
Game Behavior
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.)
-
When a building is set to X workers and the number of resources needed
to finish construction/repair/upgrading is Y, then up to min(X,2*Y)
workers can be assigned. The multiplication by 2 in 2*Y speeds
completion (especially when some of the workers can't complete their
task because of hunger or enemies), but also often results in worker
effort and resources being wasted. For high priority buildings, one
is willing to waste some resources and (more importantly) worker
effort/time, but for low priority buildings it is better not to waste
workers' time bringing resources that will then end up being
discarded. If one doesn't want this waste to happen (e.g., the
building is not important enough), it is very tedious to micromanage
the number of workers requested for a building as the building nears
completion to keep this from happening. It seems like it ought to be
possible for some (most?) buildings to not have this wasteful
duplication of effort happen. (If priorities are added, then the
priorities could be used to decide whether to allow the waste in the
hope of gaining speed. This would allow the user to say whether it is
more important to finish the building quickly or more important to not
waste workers' time.)
(By the way, does the current code work on a per-resource type basis?
So that if 2 algae and 1 wood are still needed, then maximum 2 woods
and 4 algae will be requested? Or does it mix up the different
resource types?)
Miscellaneous Game Behavior Issues
-
BUG?: If you upgrade a building that will become larger due to the
upgrade, and while waiting for globules to exit the building and the
larger area a resource grows on the larger area, then it seems that
the upgrading is silently canceled! It seems to me that it would be
much better if the upgrade were not canceled and the building status
indicator showed that it was waiting for the area to be cleared.
-
BUG?: There are numerous abuse possibilities with building sites! The
most impressive that has occurred to me so far is filling a region
(perhaps the whole map?) with bogus stone wall building sites with the
requested workers set to zero. You get 1 hit point per location for
free! You can fill a location at an arbitrary distance from your
other units at no cost. Nothing can grow or move on the location.
You get told when enemy warriors attack your bogus building sites.
Enemy warriors will waste their time destroying your bogus building
sites. Enemy defense towers will waste their ammunition on your bogus
building sites. You can get rid of the building sites when you want
to move through them (and then recreate them after you pass through).
If any AI ever used this it would be unbeatable by a human because it
could do it much more effectively than a human.
There appears to be some minor protection against this now. It seems
that within 5 seconds after an enemy destroys one of your building
sites, you can not make another. This protection is a bit weak. You
can make a bunch of bogus building sites at once. You can also simply
wait 5 seconds (and an AI could set a timer to wait exactly 5
seconds).
It might also help to forbid setting the requested workers of a
building site to zero. This way, bogus building sites would at least
attract workers, discouraging their use. Or having zero requested
workers could be allowed, but a building site with a zero workers
setting that persists for more than a few seconds would be deleted.
(A few seconds would be allowed in case the user makes a minor mistake
while adjusting things.) Of course, this is only a partial solution
because you could still make the construction sites in some place
inaccessible to your workers to prevent workers from spending time on
them (possibly surrounding the building sites with forbidden areas to
accomplish this).
The above “solutions” are only partial. The only fully correct
solution that I can see is to make building sites that have not yet
had any resources supplied have no real existence: zero hit points,
workers/warriors can walk on them (and enemy units don't even see
them), resources can grow on them, etc. This would be a larger change
and would obviously take a lot more time to implement.
-
To reduce the micromanagement, it might help a lot to give human
players access to some of the mechanisms used by the AIs. Although
the individual globules are fully AI-driven, the player must still
fiddle with the placement and settings of numerous buildings, flags,
and areas. For example, the human may think, “I need another inn, so
please suggest a good place for one.”, and this would be done by using
the AI's algorithms. Or the human may think, “I would like my
buildings to have a good number of workers assigned to each, so please
tell me where you think the current assignment is high or low and give
me an easy way to follow your advice.”. Overall, it seems that it
could be much better for human players to be based on an AI with human
intervention at key points.
Apparently one can already today get part of the effect of this by
allying with an AI. But how do you do it properly? I suppose one
wants to start with just one hive shared between the human and the AI,
as though they were really just one player. It would be nice if there
were clear instructions on how to do this and/or a nice interface to
request this to be set up. (Actually, it turns out the interface is
really easy. It's just not documented.) And it would be nice if
there was some way to tell the AI not to make certain choices or
interfere with some things (this part will be hard).
-
It would be useful if the distance from water that wheat and wood
grows could be set on a per-map basis, with the default for randomly
generated maps depending on the map size and type. For maps with thin
land-masses (like those randomly generated by the “Swamp” or “Crater
Lakes” generators), often wood/wheat overgrows the entire land-mass.
This causes big problems for AIs and forces humans to waste lots of
their time clearing wood/wheat.
-
I don't understand how harvesting fruit works. For example, in one
game I had only 3 cherry trees, zillions of globules, and yet all my
inns had lots of cherries in them and most of my globules had some
fruit the last time they ate. How does this happen? This seems
impossible.
-
The documentation should explain that if you destroy a building, you
don't get any of its resources back. (Yes, one quickly discovers
this, but it would be nice for it to be in the documentation.)
-
What effect does happiness have? The documentation seems to indicate
that fruit-induced conversion is governed only by what food is
available and not by past history. Am I missing something?
-
What happens to globules that are inside a building at the time it is
destroyed? It would be nice if this were documented. I've never been
able to tell for sure exactly what happens.
Issues with the Map Generator and Map Editor
-
It would be helpful to have a control that deletes anything (leaving
only grass, sand, or water), not just things of a specific kind. A
common need I have for a randomly generated map is to wipe out all
growing things near a starting hive to prevent AI death by overgrowth.
-
Related to the point just above, the map editor “delete” button only
works on globules and buildings. It would be less confusing for it to
work on anything that can sensibly be deleted, which includes
resources.
-
In the map editor, “d” should delete the selected item the same way it
does in the game, for consistency of the interface. There should also
be a corresponding delete button in the item's status display. (This
is distinct from the current map editor “delete” button.)
-
It is confusing that “deleting” sand or water means the same as
“creating” grass. It seems to me that grass/sand/water shouldn't have
“deletion” as an option, or if this option is allowed and it is
selected then the GUI should switch the selection to “creation” of
grass and flash the new selection to show that is how it is
interpreting “deletion”.
-
“Creating” grass or water on an area that is already that type should
not remove resources on that area. (This can easily happen when using
a large brush.) (I suppose for sand this issue is irrelevant as there
will not already be any resources on sand.)
-
“Creating” grass/sand/water should never remove globules. (I suppose
for non-swimming/flying globules creating water under them should ask
whether to delete them or give them basic swimming, or at least warn
about the problem?)
-
It would be helpful to be able to drag items around, the way you can
drag flags around in the game. This feature could even reuse the same
code. A common need I have for a randomly generated map is to move
the starting hive and workers to a more suitable location (the right
distance from resources to easily access them while avoiding being
immediately swallowed by growth, which is especially important for
not-so-smart AIs). Right now you have to delete and recreate, which
is tedious (especially if many attributes of the object have been
given non-default values).
-
In the map editor, it would be nice if the ownership of an item
already on the map could be changed using a radio control in the
item's status display. Right now, you have to delete an item and
create a new item that is identical except for belonging to a
different player.
-
Quitting the map editor with unsaved changes should prompt for saving
them.
-
The map editor documentation (on the Wiki) needs to be almost
completely rewritten due to vast changes in the user interface.
Bradley reports that the only thing that is still valid at all is the
part about scripts.
-
The documentation for map editing would be improved by including
additional hints about fixing randomly generated maps. For example,
it is important to make sure there are gaps in the stone along the
coastline that are close enough to similar gaps on the other islands.
Otherwise it is almost impossible to get across the gaps. Another
example is that it is important to balance the amount of wheat near
the starting hives and the distance of the starting hives from this
wheat. And I am sure there are other things that should be done as
well.
Documentation Issues
-
The documentation (this is mainly the Wiki pages) inconsistently uses
“globuls”, “globules”, “globs”, and “units”. It would be better to
use just one of these words throughout to reduce user confusion. Kai
prefers “units”, or maybe “globs”. I like either “globules” or
“globs”. For shortness, “globs” and “units” are best. I like “globs”
better than “units” because the ordinary English meaning of the word
“units” could easily also include buildings. I haven't heard from
anyone else regarding their preference.
| |