Free and Open Source real time strategy game with a new take on micro-management

Current Issues with Using Globulation 2

From Globulation2

Revision as of 18:15, 26 April 2007 by Jbw (talk | contribs) (new page integrating mailing list discussions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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:

      The arrow keys.

      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
  • BUG: Explorers summoned to distant exploration flags tend to not have enough smarts to know when to go back for food, and thus frequently die when this is done. (This is bug 19603 (“explorers starve to death near distant exploration flags”).)

  • It would be nice to be able to request that explorers follow coastlines. Or they should do this on their own, simply finding coastlines interesting. Right now to do this I have to keep moving an exploration flag to coax an explorer along a coast. This is quite tedious and prevents me from doing anything else. If I am guiding two explorers, then I have to ignore everything else. Plus, the explorers typically die in the end because they are not smart enough to go back for food.
  • Even if you have 100s of explorers, they will leave large chunks of the world unknown even though they can get there and back without starving. If explorers find unknown territory, they will (sometimes, sometimes not!) explore the edge, but if they are in the middle of known territory, they generally wander aimlessly. Explorers can be relied upon to explore a 64 by 64 map fairly well, and eventually (if you wait long enough) they will probably explore a 128 by 128 map. But you will wait forever for them to explore a 256 by 256 map, and they will certainly never explore a 512 by 512 map.
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.
Misc