Improving City Screen with Components from ISO Mod [WORTH A TRY]

raystuttgart

Civ4Col Modder
Joined
Jan 24, 2011
Messages
9,672
Location
Stuttgart, Germany
Hey guys,

did the WTP team already take a look at the ISO-Mod background system?
It was created by melcher kürzer a former TAC modding colleague.

It is simply incredible what he did with City Screen and Map Screen. :wow:

Map Screen changes seem to be too hard (in terms of effort and graphical modding knowledge to adapt though.)
Although it looks awsome we simply currently lack the skills in the team. Thus I did not even post pictures.

City Screen changes we might be able to partially adapt though - although probably not looking just as perfect as melcher's version.
(I am only talking about the part of the Screen in the screen below.)

It is definitely not easy (meaning a lot of work) to adapt but we might give it a try.

See yourself (one of melcher's prototype screenshots):
citybuildings-png.542326
 

Attachments

  • CityBuildings.png
    CityBuildings.png
    1.1 MB · Views: 638
Last edited:
In general we need to figure out what we want from the colony screen. I plan to at some point split the colony screen away from the main interface file and make it a standalone source file (making it much easier to read). It will also have to have a major overhaul to the drawing code because the current code is vanilla, which assumes 4:3 monitors. This makes widescreen look bad and it looks really bad on ultra widescreen (21:9, or 2560x1080 specifically). We need at least each screen section to be modular, meaning we can place them differently on the screen depending on aspect ratio.

It would be nice to have a discussion on what we actually want from the colony screen before doing any such work.

I'm not really sure what you propose here though. Yes the screenshot looks really nice, but what is it? A new background or is it actually reading the map or something else? If it's just a matter of new sprites, then it seems doable if we have the sprites he created. We might actually be able to make a background consisting of multiple sprites, meaning we can draw a map representation if we like as in we add a few river sprites and add them if the colony has rivers in various directions etc. While non-trivial, it's certainly within our abilities to create the screen drawing code for something like that.
 
Yes the screenshot looks really nice, but what is it? A new background or is it actually reading the map or something else?

It is actually a couple of things:
(If I remember correctly)

1. It adapts the background - ground - to the current terrain. Also considering if the city has a coast. (Thus technically several versions of brackground are needed for the possible variants.)
2. It draws trees and normal houses using the same 3D graphics (or 2D conversions of that) as the map screen.
3. For the amount of normal houses it uses the population size to figure out how many normal houses it should draw.
4. It draws the production buildings you have built using the same 3D graphics (or 2D conversions of that) as the map screen.
But we could of course also still use the 2D building graphics for city screen we already have.
5. It draws roads between the Production Buildings.
...
-----

So basically it draws "dynamically" a City Screen depending on base plot, coast connection, population size and production buildings you have built.
(So there is a lot of graphics involved which I should hopefully be able to get again and a lot more Python code.)

The main reasons we did not implement this in RaR:

A) We first wanted to finish all the rest of the Yields, Buildings and base mechanics before touching the City Screen as heavily as this for "beauty only".
B) It is a lot of effort and adds a lot of complexity to City Screen Python logic.
 
Last edited:
By the way:
The picture above only shows the part I would like to see integrated.

The full screen looks like this and is based on TAC - the rest I do not want to use in WTP because it is not fully compatible.
(Especially since it would cause issues with 2 Plot City Screen and the much bigger amount of Yields we have.)

b2-jpg.542328
 

Attachments

  • b2.JPG
    b2.JPG
    241.6 KB · Views: 639
So basically it draws "dynamicall" a City Screen depending on base plot, coast connection, population size and buildings you have.
I absolutely love this concept.

a lot more python code.
I think we should move the colony screen code to a new file, fix the monitor resolution and aspect ratio issues etc, meaning we end up with what we have now, except it will still look good regardless of resolution. Also the code would be a whole lot more readable.

The "building background" would have to be a dedicated function. That way we can later write a new function (or even file), which we will call instead and that way we can switch the drawing code. In fact we can add an xml setting to control which drawing system we want, which would be ideal because then we can disable the new one to get a stable version if it turns out we need to spend time fixing some severe issue with the new system.

Trying to fix resolution issues and add new graphics at the same time would likely be a mistake because everybody would loose the overview of what is going on in development, which results in worse code. It would have to be a step by step approach, but designed locations where we can add the new calls easily.

So there is a lot of graphics involved which I should hopefully be able to get again
I hope you can get it as well as the python code. Even if we might not actually use the code, it would be really nice to see how certain stuff is done. Figuring out how to add 3D houses might be doable from scratch, but investigating working code will certainly be faster.

I think the units on the dock might be 3D models converted to 2D while drawing. That could be an interesting location for code reading when designing something like this.
 
I think the units on the dock might be 3D models converted to 2D while drawing.

Schmiddie can definitely answer this. :)
He did a lot of 2D graphics for Europe Dock and City Screen.
 
I absolutely love this concept.
:agree:

Trying to fix resolution issues and add new graphics at the same time would likely be a mistake because everybody would loose the overview of what is going on in development, which results in worse code.
It would have to be a step by step approach, but designed locations where we can add the new calls easily.
Sure, one step after the other. :thumbsup:

I hope you can get it as well as the python code.
I will try to contact some of the former TAC colleagues or maybe melcher kürzer directly although I think he is not around in the forums anymore.
Stupidly I had deleted all my prototypes, all other mods I had collected and all graphics I had collected when I decided to retire from modding a couple of years ago. :wallbash:

By the way:
As far as I know he never officially published this because he had only achieved a Prototype. So it is not available for download publicly.
Thus the only way to get this is from one of the other modders he had shared this with or himself of course.
 
Last edited:
I found it again in one of the old modder forums. :woohoo:
(I am not completely sure if it is his absolutely last prototype though.)
 
Last edited:
Programmatical generation of the city view is indeed very cool and it would greatly increase the capability of any mod-mod should they ever come into existence
Depending on implementation, it might also mean more work to get a mod-mod working. That's an argument for adding an on/off switch in xml. There really isn't much of an argument for not keeping the current system as we might as well keep it as long as it doesn't break without being maintained and there is no performance loss from runtime type selection.

(Imperialism or Ancient Mediterranean mod-mod plz :) )
At some point some people talked about making an imperialism themed mod based on the M:C dll. It would focus heavily around the M:C concept of a tech tree and sounded really cool. For various reasons the mod never got that far, but I know at least one of the people involved is still around.
 
It might also mean more work to get a mod-mod working.
That is true, if any mod-mod for WTP would be created, it might need more effort to adapt the because it might need to find / create new graphics (houses, trees or backgrounds) to fit the new theme.
(This however would mainly depend on theme of the mod-mod. It might be e.g less graphical adaption needed for "imperialism" and much more fore "sci-fi".)

But on the otherhand it could make the mod-mod look more nicely as well. :)

WTP team currently would already have problems to get the graphics to make it look real nice and thus worth the effort.
Thus we would also need to first find graphical modders willing to join the team or at least to support of with this before starting to implement it.

That's an argument for adding an on/off switch in xml.
I am not really a big fan of this because we might need to end up supporting 2 City Screen Systems in parallel over a long time. :(
For WTP itself it would just be additional effeort without any benefit to continue supporting the old (and inferior) system.

But yes, I understand your argument considering effort for potential mod-mods and it would really be awesome if some mod-mod project for WTP was really started. :thumbsup:
But to me knowledge currently nobody has really stated that he is currently seriously considering to create a mod-mod for WTP. :dunno:

There really isn't much of an argument for not keeping the current system as we might as well keep it as long as it doesn't break without being maintained and there is no performance loss from runtime type selection.
No, there is no real "necessity" to change the current screen considering funtionality, gameplay or anything like that.
It would however add to flavour and overall visual graphic quality. :)

----------

Summary:
This feature is only about improving quality of graphical presentation.
Until we find a graphical modder to join or support with this - there is also no point in starting the implementation.

If there is serious interest in a mod-mod than we sould ask first if the mod-mod team wants to use that system as well or not.
If they do not want that - because of it being too much effort to adjust it - we could implement the "on/off" switch as you suggested.

So let us just wait and see.:beer:
 
Last edited:
I am not really a big fan of this because we might need to end up supporting 2 City Screen Systems in parallel over a long time. :(
For WTP itself it would just be additional effeort without any benefit to continue supporting the old (and inferior) system.
It looks to me rather than two systems, it would be two "background image systems". The one we use right now is basically just looping through all special buildings and then drawing the icon for the current one on the screen at some coordinates specified at the top of the main interface in python. It's so simple that I see no reason to not keep a drawing system like that and we likely won't have to maintain it.

The new system is different, but if we are to use the new system, we can't make the new one easier by deleting the old one.

The idea in supporting both would be to dedicate some screen space to the buildings and then the drawing code will get the size/coordinates of that space and fill it out. It already works like that in order to support multiple resolutions.

There really isn't much of an argument for not keeping the current system as we might as well keep it as long as it doesn't break without being maintained and there is no performance loss from runtime type selection.
Pretty much this. If we need to actually put extra work into supporting something we no longer need, then it's a new situation and then discarding whatever is unused would be a valid option.

Also keep in mind we don't have to actually maintain it. Just keep it and if somebody needs it in the future and it turns out that it broke because everybody ignored it, then that is the time to consider if it should be discarded or maintained. We shouldn't discard because it might break.
 
The concept of a dynamic screen is a cool idea, but based on that implementation I personally am not a fan of it, as looking at it my brain finds it harder to read, to pull out the information on screen from amongst all the noise, I would also assume the problem would get worse with a bigger city as there will be more noise and more info to draw out. So I would probably play/look at it once and thing 'oh wow this is cool' but the more I used it I think the more it would fatigue my brain...

It's a little bit like reading a document with a bunch of unnecessary words on it.

The idea is cool, I just don't know if it is the right place for visual complexity versus clarity...
 
I would also assume the problem would get worse with a bigger city as there will be more noise and more info to draw out.
There would be a bit "more noise" in big cities probably as the logic would probably draw more "normal houses" additionally to the Production Buildings.

So I would probably play/look at it once and thing 'oh wow this is cool' but the more I used it I think the more it would fatigue my brain...
The idea is cool, I just don't know if it is the right place for visual complexity versus clarity...
That is something I have not really thought about. :think:

But yes, after a few games some players might not care about that anymore - because the "Wow" effect has worn out.
And yes, the screen would have more "unfunctional" graphic elements that were only added for aestehtics.

Edit:

Was trying to think about other games that I liked to play.
Games like e.g. "Settlers" had a lot of unfunctional / purely aesthetical animations and dynamic graphics that I personally loved to watch.

The concept we are discussing in this thread is much less dynamic than that because there are no animations of e.g. Colonist moving around.
Cities themsselves will look a little bit unique of course (because of e.g. base plot or ocean access) but they will only change a bit more than now (e.g. Trees vs. Houses) if the Population grows.

It might even help because player could directly see visually
  • "This city is in Tundra / Desert / Plains ..."
  • "Ah it has access to Ocean."
  • "This is a city with a lot of population."
without checking the numbers or looking on the Map Screen.

Thus I am not really afraid of it becoming too confusing, distracting or annoying. :dunno:
If we implement the "on/off switch" in XML as Nightinggale sugessted - people could deactivated it anyways if they do not like it.

But as I said, we would need to get support from graphical modders willing to work on this with us to make it look really nice.
Before that there is no real point in starting to implement it anyways.
 
Last edited:
Well the analogy of the game settlers and the concept of looking at the cool animations is a bit different as those animations are not, for instance, in the background of the resource quantity screen for example.

Also the 3 points of info you mentioned are already present on the colony screen. The pop size is at the top of the screen, water access is illustrated by a dock on the screen (I can't remember if it starts out with a little jetty before you build anything?) and both ocean access and terrain types are displayed on the external worker map. (right hand side).

The concept is cool, I just don't know if it would lessen the clarity of information.
 
The more I think about this, the less I like the idea. It has the wow effect at first, but that wears off and then it actually adds nothing. Considering the amount of work it requires to add this, both in programming and graphics, I question what else we could do if we spend the same time doing something else. I'm particularly concerned about maintenance as it is much more likely to break than the current system, meaning it's not something you are done with and then never touches again.

looking at it my brain finds it harder to read, to pull out the information on screen from amongst all the noise
That's a very valid concern, which makes me wonder if it's eye candy at the cost of gameplay. The primary function of each of the screens is to provide the information you need and how good it looks becomes secondary. If the secondary goal is improved at the cost of the primary goal, then somebody messed up the priorities.


We should however consider what we actually want with the colony screen because I'm going to rewrite the drawing code to add proper widescreen support at some point. This means we can change anything we want to fit our needs, but to do that we need to figure out precisely what our needs are.
 
It has the wow effect at first, but that wears off and then it actually adds nothing.
That is of course true considering game play mechanics and features it does not add anything.
But I do not consider aesthetical aspects and visual quality nothing either. :shake:

Considering the amount of work it requires to add this, both in programming and graphics, I question what else we could do if we spend the same time doing something else.
Yes, it will be a lot of effort.
And it will need effort for graphics which the current team can not deliver. :c5unhappy:

I'm particularly concerned about maintenance as it is much more likely to break than the current system, meaning it's not something you are done with and then never touches again.
Very valid, especially if we maintain both systems (old one and this one). :think:

The primary function of each of the screens is to provide the information you need and how good it looks becomes secondary.
Both aspects should be important but I agree that functionality is more important. :thumbsup:

If the secondary goal is improved at the cost of the primary goal, then somebody messed up the priorities.
True, but I am currently not afraid of messing up functionality with this. :dunno:

... but to do that we need to figure out precisely what our needs are.
I agree as well. :thumbsup:

I think we all see the issues with this concept. (Efforts and potential distractions for players.)
On the other hand, it also has some positive aspects. (Aesthetics)

As long as we lack the graphical skills for this in the team, there is no point in starting the implementation anyways.
And yes, we currently have higher priorities. But nobody said that we need to do it for next release already.
 
We should however consider what we actually want with the colony screen
I cannot speak for others but I would want to have as much information at one glance as ever possible.
Especially the build order subscreen can become quite cluttered once you have built the main buildings, thus unlocking other and new potential build orders.
To get a proper view of the domestic market's demands you have to go to the domestic advisor as that isn't properly displayed anywhere at the city screen.
Where are the transports allocated to a trade route concerning the city and where are they heading?
In general, the transportation logic would deserve a bigger portion of the screen as I think.
Renaming, giving movement orders and changing professions would be something very nice to have for units which are on the city plot but aren't working any tile or slot.

In general, anything which makes the management of your colony easier should take precedence over graphic elements which certainly may create that "wow effect" in the beginning, but don't add anything to the game per rse.
 
But I do not consider aesthetical aspects and visual quality nothing either. :shake:
Same here and that is what makes it hard. I don't want the game to be just like a spreadsheet with numbers all over and then you click around and if you do great, you get different numbers. We have a proper graphics engine, which we should exploit to make everything look attractive. In fact if the GUI isn't attractive, it hurts gameplay because getting the information you need becomes too hard.

This isn't a question about for or against new graphics. It's about pros and cons of each change and if development time is justified compared to what else we can do within the same time. Those are valid questions. I don't want to drop everything and make the whole team improve the colony screen for the next 3 years regardless of how awesome it would become because it can't be awesome enough to justify the lost development towards other features.

I'm all for a better interface. In fact I have announced I will do a rewrite to make the screen work better on widescreen displays because currently it's optimized for 4:3 displays only. It's horrible on 21:9 displays in the sense that the vanilla code draws a 12:9 screen and then stretches it. This means the colony screen will see improvements, both visually and functionally.
 
Schmiddie can definitely answer this. :)
He did a lot of 2D graphics for Europe Dock and City Screen.

Do you mean the European dock? These are simple 2D graphics. They are just "handmade" - a screenshot from the 3D graphic how the graphics look in the Nifscope viewer and then put into a .dds-file with gimp.

I tried to figure out how melcher kürzers mod-mod works but I never got it. And the prototype found in the German forum did not work as well. Melcher Kürzer has made some further really great graphics for this mod-mod and developed it for years but he never answered me when I asked him for the graphics or support.
 
Back
Top Bottom