Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2004:
[Freeciv-Dev] Re: drawing tiles multiple times
Home

[Freeciv-Dev] Re: drawing tiles multiple times

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Jason Dorje Short <jdorje@xxxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx, rt@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: drawing tiles multiple times
From: Ross Wetmore <rwetmore@xxxxxxxxxxxx>
Date: Thu, 19 Feb 2004 19:13:55 -0500


Drawing members of a normal set more than once is currently forbidden.
There is no need to discuss this point :-).

So, by definition, doing this is wrong, and thus any change needs to be
carefully documented and rationalized. It is not up to the community to
justify the status quo, but those who want to change it to show that the
old arguments are no longer of value.

You should review the past discussions to familiarize yourself with the
reasons. It would be a good thing to present a summary to show you are
up to speed on the whys and wherefores and to help others similarly come
up to speed.

If there are (new) reasons to change this, then present an RFC that
sets out the pros and cons, specifically countering all previous agreed
on reasons for the current policy.


But as a quickie starter,

1) From the User standpoint it is just too confusing to have units moving
   around the map that are really the same unit. The same goes for spotting
   duplicate terrain.

2) From a technical standpoint updating multiple locations and doing it in
   a synchronized fashion introduces more threading and performance issues
   than the worth of any supposed savings. For example, when do you delete
   a unit that needs to stick around for multiple updates.

3) There really was never any justifiable benefit to doing it other than
   lazy programmers that didn't stop to think if what they wanted to do
   couldn't be handled in better ways. Marcelo's singularities are new
   and one might actually find some reason to want to provide some way
   to deal with them, but so far it does not appear as if the problem
   has been thought through enough to know what the solution is. It may
   simply be that these topologies while "interesting" in the same way
   as candycaning, are really not something one wants to build into the
   game, or at least not at this time.

Identifying members of an arbitrary normal set with unnormalize_map_pos()
is a trivial way to insure that one retrieves all, and only all members
in a clean way. Understanding this function as the generalization of
normalize_map_pos() which does it for a single special case, will usually
solve most of the problems that people seem to find as reasons to ignore
the basic rule to date.

Understanding weird relationships, and finding a better way to represent
them rather than lying about them being somehow normal may be a better
solution to the issues below.


Cheers,
RossW
=====

Jason Dorje Short wrote:
In the past it's been suggested that a tile could be drawn multiple times.

For instance if you have a 40x25 map and your mapview is 50 tiles wide, currently the extra 10 tiles are drawn black (at least they are supposed to be: it's easy to get bugs where junk gets drawn here). But if tiles were drawn multiple times then the 10 tiles on the left of the mapview would be shown in duplicate on the right.

In the above example there are no big advantages to drawing tiles multiple times. The only advantage is that you don't have the big black area on ths screen (which is ugly).

The main disadvantage to drawing multiple times is that it's hard to do right. In the past we'd have situations where the tile would be drawn multiple times, but only partially. Thus you'd get two copies of a unit but only one woudl blink. This was confusing. To do it correctly, both copies of the unit have to blink, and if you animate a unit both units need to be animated. If done properly, I think the main argument against doing this (that it is confusing to the player) will be moot.

So the question is, why would you want to draw tiles multiple times? With current topologies there's no reason why you need to do so. As long as you center properly on the current unit it will always be surrounded by a lot of properly drawn tiles. In almost all cases the mapview is much smaller than the map, so there is no issue whatsoever.

But consider an exotic topology in Marcelo's PR#7287 patch. In a quincuncial topology, there are tiles that are adjacent to themselves! That is, if you go northeast from (40,0) you wrap around to reach...(40,0). (These "singularities" are generally hidden in remote locations like the north and south poles.) If you only draw a tile once this gives you big problems. Imagine what happens if it *looks* like the map ends one tile north of your unit, but when you move north you end up being animated to the east. Very bizarre. I've looked at these maps, and it's incredibly confusing. But if you draw tiles multiple times everything becomes clear. Hopefully.

Marcelo's PR#7287 patch includes a full implementation for drawing tiles multiple times (actually only 1 extra wrap in each direction, so only up to 9 times AFAICT).

So I'd like to reopen the discussion on whether drawing tiles multiple times is forbidden.

jason



[Prev in Thread] Current Thread [Next in Thread]