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.
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.
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.
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.