Colony screen redesign

Nightinggale

Deity
Joined
Feb 2, 2009
Messages
5,279
The colony screen we are using right now is the one provided by vanilla. Sure it has a few more buttons and two rows of cargo instead of one, but overall it's the same.

The issue is that it's outdated, or rather it is written around an outdated assumption. Colonization is written for CRT monitors and for some reason adapting to different resolutions isn't really a thing in the python interface. The code just scales up everything to match whatever resolution the game is using.

The main issue is that CRT monitors has the 4:3 aspect ratio, which can also be written 12:9 (normally not done, but it makes sense here). Today we have to support:

CRT: 12:9
Widescreen: 16:9
Ultra widescreen: 21:9

The problem here is that since the drawing code is using 12:9, it draws content like 12:9 and stretches it. This means the other two draws 33% and 75% wider than it should be relative to the height. A 100x100 box becomes 175x100 instead. Icons drawn in it might use the width for scaling meaning if it's supposed to be 80x80, it becomes 140x140 and as such no longer fits in the 100 pixel height it's supposed to be in. It looks horrible and it's a general problem with most python screens.

However the colony screen is the worst because it absolutely messes up the map view. It zooms in too much making workable plots appear almost outside the map view. In addition to looking bad, it becomes harder to play because you see such a small part of the map that it becomes hard to tell what kind of terrain/improvement/etc the plot has.

Colony screen.jpg


This is what the screen is supposed to look like because it's 4:3. However in 21:9, if the Map box is enlarged to match the 5x5 plot it should match, it will take up the space from the build queue, making the entire queue vanish.

There are other issues like the garrison is limited to 3 units on each row, meaning the Units box is mostly empty on 21:9. Same issue for Build options.

The screen has 3 modes where the build queue and build options changes. They are:
Map: a minimap and a list of colonies
Build: the screenshot
Governor: lists imports and exports as well as list of yield to emphasize

There are also 3 popup windows: teaching list, domestic market and custom house.

The question is: what do we want? At some point we will have to rewrite the screen to fix the resolution issue. Before doing that it would be a good idea to figure out what we actually want to use this screen for and if something should be changed.

The first obvious question: if the screen is 33% or 75% wider, what should we do with the extra screen space? Units and Build options could benefit from being wider by simply adding more buttons to each row. However is that what we want? Should we move the boxes around according to how wide the screen is? I named all of them to make that kind of talk easier, though there wasn't room to name the top bar. I think we can manage.

One thing which comes to mind is the ability to change the building box. If we can switch it to say traderoute management, then we have plenty of screenspace to make something, which is easier to handle than the popup window, which was never great and is now even worse due to each yield taking up two rows. It could also be used for other purposes. It's just about figuring out what we need to know/do in the colony screen.

Another idea is to add another row of "warehouse buttons" when a transport is selected. This will be particularly useful if we end up with mixed cargo slots. I just haven't figured out where to place it so maybe just on top of everything to make the two "warehouses" sit next to each other to make dragging shorter.


Do anybody have any inputs regarding how to make the best use of the wider screens?
How should each box be moved or shaped? Should we abandon the concept of placing all the boxes at the same locations for all aspect ratios, like should 21:9 have a different layout than 4:3?

Any other ideas on what could be useful to add to the colony screen? This includes proposing features, which doesn't exist currently.

This isn't something, which will be in the next release. However it would be nice to get some feedback on which direction we want to take the colony screen because if the drawing code is rewritten, it should preferably be rewritten only once (it's not trivial) and then we might as well prepare it for any future plans, which we might do. Preparing the screen code for a feature we end up never implementing might be 10 wasted minutes, but adding it later could be hours.
 
I can live with just about any changes, but the one absolutely critical fix is the minimap showing the full two-tile radius clearly and legibly. Any and everything on top of that is just gravy.
 
Well, currently it is already possible to play in "Window Mode" instead of "Full Screen Mode". :think:
This should prevent the problem for Wide Screens and Ultra Wide Sceens - for now.

Thus the Players with Wide Screen and Ultra Wide Screen should also get the 12:9 Screen Resolution that works nicely.
It is only a workaround and no perfect solution of course - but for the moment maybe better than nothing.

Fot the general visualization proplem for Wide Screens and Ultra Wide Screens - I cannot offer a solution. :dunno:
I could also not test it, because I don't have a Wide Screen or Ultra Wide Screen on my computer personally.

By the way:

This is not caused by WTP. (or other mods)
We are talking here about fixing a Vanilla problem for Players of WTP.

But should that not also generally be a problem in Civ4 BTS?
(Maybe a bit differently though. Could they solve it?)
 
Last edited:
the one absolutely critical fix is the minimap showing the full two-tile radius clearly and legibly
Since that's the bug, which started it all, I assume we all agree that's a top priority. However the only way to fix it is to in some cases make the map area larger, hence it has to take up room from other stuff. This is the problem because then we have to consider the placement of everything and add some sort of dynamic placement to make it fit on all screens.

Well, currently it is already possible to play in "Window Mode" instead of "Full Screen Mode". :think:
This should prevent the problem for Wide Screens and Ultra Wide Sceens - for now.
Widescreen can use 4:3 resolutions ingame as well, even for fullscreen. It does however not use the screen properly.

I could also not test it, because I don't have a Wide Screen or Ultra Wide Screen on my computer personally.
You can always take a look at the screenshot provided by in bug report 269.
Spoiler :


I don't have ultra wide either, but writing the resolution in the ini file allows any resolution in window mode. I have managed to reproduce the problem on my computer that way.

This is not caused by WTP. (or other mods)
We are talking here about fixing a Vanilla problem for Players of WTP.
Yeah, this is something, which is important to point out (though I did mention it briefly). You will have the same problem in vanilla because vanilla is the one, which always assume 4:3 resolutions. What this thread is about is fixing a vanilla issue to make the game display properly in resolutions, which didn't exist when vanilla was released. I don't blame anybody for this issue. It's more like software sometimes needs to be updated to work correctly on new hardware.

But should that not also generally be a problem in Civ4 BTS?
(Maybe a bit differently though. Could they solve it?)
The colony screen obviously isn't in BTS. It's one of the few places in the code, which is completely rewritten. I don't think BTS can provide a shortcut for this issue.

Besides the issue here isn't what needs to be done (I have a decent idea about that). The question is what to do about the need for resized screen components. If nobody has anything to say about that, then I guess there is complete freedom to whoever fixes this (which would likely be me). My thinking is that if somebody has any idea about improvements to the colony screen, it would help to know them before planning a change like this rather than adding it afterwards.
 
You can always take a look at the screenshot provided by in bug report 269.
Spoiler :
Ok, with the Screenshot I understand better. :thumbsup:

The only only real issue I see in the City Screen with "Wide Screen Resolution" is however the "Map Screen for Plot Profession".
The rest seems to look ok. I first thought that the whole City Screen was messed up. :crazyeye:

If we concentrate on "Map Screen for Plot Profession" first, it should be doable without too much effort.
It will be a bit try and error of course to find the right balance of stretching height / vs width.

And as I read you already have a decent idea already. :thumbsup:
 
I first thought that the whole City Screen was messed up. :crazyeye:
The "professions on map" is messed up while the rest is just glitches and inefficient screen usage. For instance the garrison has room for like 6 or 7 units in each row, but the code is hardcoded to 3 units. This creates a lot of empty space and a narrow column. This column can then quickly grow to contain so many rows that the scrollbar shows up and you can't see all of them at once. It would be better if it has an area to draw in, then it knows how many pixels it has in width and button width, then it can calculate how many units should be in each row at the resolution in question. Another is the building buttons in the top right. They are giant and also not that many in each row.

Ultra wide (and to some degree wide) screens have plenty of glitches like that in multiple screens, but none are really game breaking other than that map part. For instance the Europe screen in ultra wide glitches in the sense that the units aren't on the dock. Instead they are in the water over the dock and the dock itself is behind the yield buttons. The pedia pages have giant buttons in the top left and they can be taller than the background they should be inside.

There is plenty to do in order to get perfect 21:9 support, but in most cases I question if it's worth the time. The colony screen absolutely needs fixing though.

And as I read you already have a decent idea already. :thumbsup:
Yeah, I have an idea about what to do. However since I'm doing something to the drawing code for the entire screen, it would be nice to know if there are any other issues or future additions I should keep in mind.
 
Top Bottom