Building on mountainsides
Moderator: Moderators
Hope it's not a too old topic.
In the old Total Annihilation there was a FBI tag. MaxSlope was its name. The higher the value the steeper the maximum slope the building could be built on. This tag is not supported by Spring now.
Maybe they developpers thought MaxSlope was only for moving units and forgot it applies to immobile structures too?
In the old Total Annihilation there was a FBI tag. MaxSlope was its name. The higher the value the steeper the maximum slope the building could be built on. This tag is not supported by Spring now.
Maybe they developpers thought MaxSlope was only for moving units and forgot it applies to immobile structures too?
Its used in spring also although it might not match exactly how it was used in TA
where maxheightdif is the max difference between highest and lowest point for the building.
Code: Select all
sunparser.GetDef(ud.maxSlope, "0", "UNITINFO\\MaxSlope");
ud.maxHeightDif=40*tan(ud.maxSlope*(PI/180));
How about this. You can build on steeper slopes than they are now, but to a limit of 40 or so, where nothing can be built. Imagine this, k? You click on the kbot lab in your build menu. You move your cursor over to the main screen, and the outline appears as normal. At one corner of the outline, a number is displayed, in the format "X.XX". Underneath that, the cost for the kbot lab is displayed.
As you drag the outline across the landscape, searching for a suitable location, the factor changes. On perfectly flat slopes of land, it says:
1.00
1000 metal
2000 energy
5000 build time
As you move your cursor to more rugged terrain, the factor increases.
1.55
1550 metal
3100 energy
7750 build time
The factor and costs are displayed in realtime, changing depending on the slope. At the maximum slope for any structure, 40 or so, it is 5.00 (or whatever) and the costs are increased massively, prohibiting development here until much later in the game, if you decide to build here at all.
I realize the values need tinkering, this is all hypothetical.
Think about this seriously, it would fix all the problems.
As you drag the outline across the landscape, searching for a suitable location, the factor changes. On perfectly flat slopes of land, it says:
1.00
1000 metal
2000 energy
5000 build time
As you move your cursor to more rugged terrain, the factor increases.
1.55
1550 metal
3100 energy
7750 build time
The factor and costs are displayed in realtime, changing depending on the slope. At the maximum slope for any structure, 40 or so, it is 5.00 (or whatever) and the costs are increased massively, prohibiting development here until much later in the game, if you decide to build here at all.
I realize the values need tinkering, this is all hypothetical.
Think about this seriously, it would fix all the problems.
-
- Posts: 35
- Joined: 25 May 2005, 20:04
Well making it a bit more tollerant, ok.
But everything like terra forming hills or making earth walls, falls under the category mod.
I think the aktuel question is:
- leave it and mapmakers have to watch out better
- more tolerant, easyer live for mapmakers, but might go in the rong way
ps: to all you, in the far future thinkers, why are the fighting on planets and not around them... why do they have to build up bases and not just send nukes... because of game play
But everything like terra forming hills or making earth walls, falls under the category mod.
I think the aktuel question is:
- leave it and mapmakers have to watch out better
- more tolerant, easyer live for mapmakers, but might go in the rong way
ps: to all you, in the far future thinkers, why are the fighting on planets and not around them... why do they have to build up bases and not just send nukes... because of game play
Except, all terrain is leveled before construction, so the extra cost of the building and the build time would have to happen during the leveling phase and not when the building occurs, and you could easily exploit this by flatting a patch of land while pretending to build a really cheap building, cancel construction upon the leveling of the land, and then build a big bertha or an annihilator.Caydr wrote:
Think about this seriously, it would fix all the problems.
Which means if any of this business is going to happen it should happen as Buggi has described;
Although, the ability to terraform without cost would add an interesting new facet of micromanagement.Buggi wrote: I think you should have the ability to raise/lower/level terrain. And it should cost energy to do so.
This way you could put up a dirt mound around parts of your base, or add height to defense structures.
Speed's a thing to consider - not just the amount of terraforming to be done, but also the unit doing it. A techlvl1 conbot shouldn't be able to do it anywhere near as fast as the Commander. I guess that kinda goes witout saying, though.
I'm all for Buggi's suggestion: implement the ability to terraform terrain outside of building, so that using the terrain becomes more important.
I'm all for Buggi's suggestion: implement the ability to terraform terrain outside of building, so that using the terrain becomes more important.
I tried a building with a MaxSlope=10;. Then I modifed it to MaxSlope=200;. In Spring the red and orange square when trying to place the building were taking exactly the same shape.
If I understand well, for a MaxSlope=10; I can build on as long as the height variation stay under 7, and for a MaxSlope=200; as long as the height difference stay under 200.
And MaxSlope=190; would give exactly the same result as MaxSlope=10;. Which is really counter intuitive.
(Or maybe the unit I tried with had first 20 then 200, which would why explain the result was exactly identical).
Tangent has a period of 180°, and you seem to think of maxslope as a value in degree.
Why do you have to do the tangent thing? Which can't it just be :
sunparser.GetDef(ud.maxSlope, "0", "UNITINFO\\MaxSlope");
ud.maxHeightDif=ud.maxSlope;
So MaxSlope would directly be the max height difference?
If I understand well, for a MaxSlope=10; I can build on as long as the height variation stay under 7, and for a MaxSlope=200; as long as the height difference stay under 200.
And MaxSlope=190; would give exactly the same result as MaxSlope=10;. Which is really counter intuitive.
(Or maybe the unit I tried with had first 20 then 200, which would why explain the result was exactly identical).
Tangent has a period of 180°, and you seem to think of maxslope as a value in degree.
Why do you have to do the tangent thing? Which can't it just be :
sunparser.GetDef(ud.maxSlope, "0", "UNITINFO\\MaxSlope");
ud.maxHeightDif=ud.maxSlope;
So MaxSlope would directly be the max height difference?
I don't think the old one was in degree. It was most probably directly the max height difference, from 0 to 255. In TA a building with MaxSlope=200; can be built over peaks.
Using degree isn't very good because then a 50cm deep trench with vertical sides would be less buildable than a 100meter deep chasm with gentler slopes.
\/\/\/\/\/ shouldn't be as unbuildeable as:
So I'd like MaxSlope to be the maximum height difference, not the maximum average angle.
Using degree isn't very good because then a 50cm deep trench with vertical sides would be less buildable than a 100meter deep chasm with gentler slopes.
\/\/\/\/\/ shouldn't be as unbuildeable as:
Code: Select all
\
\
\
\
\
\
\
This definately how it should be.zwzsg wrote:So I'd like MaxSlope to be the maximum height difference, not the maximum average angle.
Is any special smoothing or checking done at the edges of the footprint to prevent you from building a factory with an impassable exit. You might say this should be upto the player, but it would be more helpful to the AI if it was built in.