Improvements, features etc.

So you need a channel about a third of a square in length. Like this:
canal.jpg

Would fit well, both on grassland and with blurred sides?
 
So you need a channel about a third of a square in length.
Generally that sounds good. :)

The canal ends could end a bit before the tile end and look a bit rounded or rigged. :thumbsup:
(It does not have to connect fully to the corners of the tile like a normal water plot, they could end inside the tile.)

Theoretically the "canal improvement" could also be "X"-shaped. :think:
(So it connects to all corners which would fit every constellation of land plots.)

Could there also be a few small houses? In a "16th to 17th century style" if possible. :think:
(e.g. something that resembles a toll station collecting fees for the ships going through the canal?)

Colour of the land around it could be any green. Chose something that fits your taste. :thumbsup:
(I can easily adjust the colours though later myself in GIMP, so do not worry about it.
 
Last edited:
That's the question. If you line up several channels one behind the other, it's just one little, almost invisible house next to the other.

I'll make a channel and then we'll agree on the modifications. Do you agree?
 
Do you agree?
Sure. :)
I will let the artist work.

As I said, I will take almost everything I get. :hug:
(As long as it looks at least somehow like a canal in colonial times.)
 
Maybe a new Route would be better than an Improvement.
Would only make sense in a Civ4BTS setting with modern world equipment.
But in a 16th century colonial setting such long canals (many tiles long) should not exist.

Just think of the logic when connecting tiles.
I only want to make passing of a single land plot possible. (Something like a tiny, less modern version of the "Panama Canal".)
I was not planning to allow more than a single tile of canal in a row - I might actually actively prevent it in the logic to not have exploits with inland cities.

----

By the way:
A RoadType I could have made myself. The graphical part would have been mostly 2D.
(Did that already in the past. We have 3 Road Types in our mod already.)

----

Summary:
I am still searching basically just for an Improvement that allows to have ships pass a single Land Plot.
(And if possible it should look like it could actually have been built in 16th to 17th century.)

e.g. Something like this, but less modern and less spectacular.
Less like a wonder, more like a "normal improvement". :dunno:
(More like the colonies could actually have built it.)


A bit of water canal and one or 2 houses would most likely already suffice.
But I know hat description is pretty bad ... hard to draw something better though in my mind.

Edit:
I will attach more igames of other improvements of our mod this evening.
Just so you know what style I am looking for.
 

Attachments

  • Industrial_Canal.jpg
    Industrial_Canal.jpg
    12.8 KB · Views: 181
  • Corinth_Canal.jpg
    Corinth_Canal.jpg
    12.5 KB · Views: 37
  • Greece_Kanal.jpg
    Greece_Kanal.jpg
    183.8 KB · Views: 39
Last edited:
However this time:

I am really looking for Improvement graphics that I can use. My game concept simply does not fit a Terrain. (Also we already have Terrain "Large Rivers".)
It is highly "unimmersive" for the Colonial Age to dig something like an "Amazonas River". (And I do not want to implement a new Terrain "Canal" just for it.)
Also I want to implement other logic for the "Canal" as well, basically reusing code I had written 10 years ago already.

-----

The best solution for the game feature I have in mind is a new Improvement, since Terrain based stuff is much more effort / trouble.
Once I have graphics for an Improvement, it is a piece of cake for me to program the logic. :thumbsup:
(I have been programming Civ4Col DLL since 13 years and basically already have all prototype logic ready.)

Summary:


I really just need Improvement 3D graphic that looks like a "Canal". (Colonial Times style, not modern)
I will take whatever I can get, as long as it matches at least a little bit. :hug:

I am simply a programmer and programming game logic is usually a piece of cake for me. :badcomp:
But considering graphics I often need to ask talented graphical modders to make it look good.

I am not sure if that's something you think would work, but I've struggled with canals as improvements in RI for a long while, and seem to have found an adequate solution. For a while I just used the cross-shaped canal on every tile, but it just looked wrong. After a lot of experiments, I found a way that both works and looks well in-game.

The sad reality is that Civ 4 doesn't provide for tiling improvements - however, it does provide for tiling features. What I ended up doing is making the actual canal improvement invisible, but every time it's placed, the game (through simple python) places a canal feature as well - purely cosmetic, as the actual bonuses are handled by the improvement. The only obvious technical drawback is that any other features get removed when a canal is built, but I am actually ok with that - I'd assume stuff like forests would get removed anyway. The only real snag was that flood plains are a feature too - but I simply got around it by placing a special version (reservoir) of the flavour feature (with bonus food to mirror the actual flood plain bonus) when it's built on a flood plain (and placing the flood plain back if it's destroyed).

Here are the simple XML and python bits I used:

Spoiler CIV4ArtDefines_Feature.xml :

Code:
        <FeatureArtInfo>
            <Type>ART_DEF_FEATURE_CANAL</Type>
            <bAnimated>1</bAnimated>
            <bRiverArt>0</bRiverArt>
            <TileArtType>TILE_ART_TYPE_PLOT_TILING</TileArtType>
            <LightType>LIGHT_TYPE_SUN</LightType>
            <fScale>1.0</fScale>
            <fInterfaceScale>1.0</fInterfaceScale>
            <Button>Art/Interface/Buttons/Improvements/china_canal.dds</Button>
            <FeatureVariety>
                <FeatureArtPieces>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverN1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverN2.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverN3.nif</ModelFile>
                        <Connections></Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverE1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverE2.nif</ModelFile>
                        <Connections>S</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverI1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverI2.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverI3.nif</ModelFile>
                        <Connections>S N</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverL1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverL2.nif</ModelFile>
                        <Connections>S E</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverX1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverX2.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverX3.nif</ModelFile>                 
                        <Connections>S W N E</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverT1.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverT2.nif</ModelFile>
                        <ModelFile>Art/Terrain/Features/Canal/riverT3.nif</ModelFile>
                        <Connections>W N E</Connections>
                    </FeatureArtPiece>
                </FeatureArtPieces>
                <FeatureDummyNodes/>
                <bGenerateRotations>1</bGenerateRotations>
                <VarietyButton>Art/Interface/Buttons/Improvements/china_canal.dds</VarietyButton>
            </FeatureVariety>
        </FeatureArtInfo>
        <FeatureArtInfo>
            <Type>ART_DEF_FEATURE_CANAL_FLOOD</Type>
            <bAnimated>1</bAnimated>
            <bRiverArt>0</bRiverArt>
            <TileArtType>TILE_ART_TYPE_PLOT_TILING</TileArtType>
            <LightType>LIGHT_TYPE_SUN</LightType>
            <fScale>1.0</fScale>
            <fInterfaceScale>1.0</fInterfaceScale>
            <Button>Art/Interface/Buttons/Improvements/china_canal.dds</Button>
            <FeatureVariety>
                <FeatureArtPieces>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverN1f.nif</ModelFile>
                        <Connections></Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverE1f.nif</ModelFile>
                        <Connections>S</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverI1f.nif</ModelFile>
                        <Connections>S N</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverL1f.nif</ModelFile>
                        <Connections>S E</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverX1f.nif</ModelFile>     
                        <Connections>S W N E</Connections>
                    </FeatureArtPiece>
                    <FeatureArtPiece>
                        <ModelFile>Art/Terrain/Features/Canal/riverT1f.nif</ModelFile>
                        <Connections>W N E</Connections>
                    </FeatureArtPiece>
                </FeatureArtPieces>
                <FeatureDummyNodes/>
                <bGenerateRotations>1</bGenerateRotations>
                <VarietyButton>Art/Interface/Buttons/Improvements/china_canal.dds</VarietyButton>
            </FeatureVariety>
        </FeatureArtInfo>


Spoiler CvEventManager.py :

Code:
    def onImprovementBuilt(self, argsList):
        'Improvement Built'
        iImprovement, iX, iY = argsList
        pPlot = gc.getMap().plot(iX, iY)
        if pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_CANAL"):
            if not iImprovement == con.iImpCanalChina:
                pPlot.setFeatureType(FeatureTypes.NO_FEATURE, -1)
        if pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_CANAL_FLOOD"):
            if not iImprovement == con.iImpCanalChina:
                pPlot.setFeatureType(gc.getInfoTypeForString("FEATURE_FLOOD_PLAINS"), -1)
        if iImprovement == con.iImpCanalChina:
            if pPlot.getFeatureType() == gc.getInfoTypeForString("FEATURE_FLOOD_PLAINS"):
                pPlot.setFeatureType(gc.getInfoTypeForString("FEATURE_CANAL_FLOOD"), -1)
            else:
                pPlot.setFeatureType(gc.getInfoTypeForString("FEATURE_CANAL"), -1)


As you are savvy programming-wise, I feel adopting this wouldn't be a problem for you.

Attaching the art files here - in RI, the canal improvement is China-specific, hence the Oriental-themed buildings scattered across the tile variants, but I feel these could easily be swapped out for any other cityset.

And of course, if you just need a single-tile version, feel free to just use the cross-shaped variant from there (one of the riverX nifs).
 

Attachments

  • Canal.7z
    164.8 KB · Views: 33
Last edited:
I only want to make passing of a single land plot possible. (Something like a tiny, less modern version of the "Panama Canal".)
I was not planning to allow more than a single tile of canal in a row - I might actually actively prevent it in the logic to not have exploits with inland cities.
Max one square. This justifies the houses. OK :)
 
... provide for tiling improvements ...
As I said, I am not looking for "several plot long canals" and thus do not really need tiling (as features may use). :dunno:
It is basically a "one plot improvement", that allows to channel a single plot - everything else would be OP or unimmersive.
(Our mod is "low tech colonial age of 16th to 18th century" - Columbus to War of Independence.)

Max one square. This justifies the houses. OK
Great. :hug:
 
Feel free to rework the stuff I posted - it has flowing water and all that.
Could you show a screenshot plase? :)
I am currently not at home and thus can not look at it in NifScope.
 
Sure; here's a couple of single-tile ones (cross-shaped) and a string that shows the tiling variant. BTW, I feel with some python trickery you can actually make it detect nearby coasts and choose an appropriate single direction (since canals work differently in RI, I personally never felt the need to, but sounds totally feasible to me). As I mentioned before, the few structures you see are separate meshes that can be easily separated or swapped for anything else.

Civ4ScreenShot0225.JPG
 
version 4 with colonial house.
The house has a separate NiTriShape so that everyone can change the size and location.
 

Attachments

  • canal.jpg
    canal.jpg
    22.8 KB · Views: 40
Question 1:
How wide is it comared to the width of a plot when it is place?

It probalby should not be too narrow so Ships on it do not look that strange. :think:
(However it also does not need to be as wide as a normal water plot.)

Maybe about 30% (or 40%) of plot width being the canal and 35% (or 30%) land on each side. :dunno:
(But I need to see the final version first on the plot of course to really know what looks good.)

Question 2:
Could the ends of the canal be a bit "more narrow" than the midle? Or at least not like "straight cuts"?
Just so it looks a bit more natural when it is placed as a single Improvement on a Plot.

---

Otherwise it already starts to look good. :thumbsup:
(Can almost already see our ships sailing through it and paying a hefty toll.)

Edit:
Like the house. :hug:
 
The width is still uncertain. Somewhere at the beginning I wrote that something around 30% would be ideal. We have to try it.

So now I'll try to add ramps on each side in width, down, so lost. Do you agree?

BTW, what Walter added is great, but I think too narrow for the boat.
 
Take a look at the ends. Each one is different. It's up to you which one suits you. Adjustment is quite easy.
 

Attachments

  • Canal.7z
    164.8 KB · Views: 32
Thanks, it looks wonderful. :thumbsup:
Now I just need to figure out how to use it. :think:

Maybe I will do what @Walter Hawkwood and really use a "Feature based solution" so I can use tiling. ---> Might look better.
Maybe I will just use one of them as a simple "Improvement based solution", which might be good enough. ---> Less effort.

Feature is a bit more effort, but I have done stuff like that often enough. (Just a bit of DLL code, triggered by a Unit Action.)
The Improvement would have been simpler to implement though ... (especially since I still just want to have a "1 plot canal").

Well, I will see. :dunno:
I will keep you updated.

@hrochland
Thanks for the effort. :hug:

@Walter Hawkwood
Thanks for sharing your work. :thumbsup:
 
Last edited:
Top Bottom