Author Topic: Ground Elevation  (Read 7586 times)

Offline R

  • Sergeant
  • **
  • Posts: 21
    • View Profile
Ground Elevation
« on: July 18, 2011, 07:06:19 pm »
As requested. Moved to Suggestions

An Idea for after v1.0

In the old xcom the ground elevates suddenly and unnaturally.  Of cause this is acceptable seeing when xcom1 was made.  What is the possibility to implement tile elevation like in Alpha Centauri?

1) Corner tiles are handled differently in SMAC.  The whole tile is skewed rather then only a half of the tile like in Xcom.
2) Instead of elevating a whole square like in Xcom, SMAC only elevates the corners of tiles.  This gives the map more variety.
3) The gradient of SMAC's tiles is about 50% of Xcom's,  this gives it a smoother appearance.

A little tweaking of the code and drawing of some additional tiles then it should make a noticeable difference!

Offline Daiky

  • Battlescape Programmer
  • Administrator
  • Commander
  • *****
  • Posts: 904
    • View Profile
Re: Ground Elevation
« Reply #1 on: July 18, 2011, 07:50:16 pm »
I haven't played the game, but if I look at this screenshot, it looks like it's a totally different way of drawing the ground.
 - In xcom every ground tile is a true isometric object - you can see that clearly if you destroy a part of a mountain with blaster bombs.
 - In Alpha Centauri, the ground looks like one big "smoothed" polygon mesh with different textures on it. Although it's probably voxels - if I read around about this game, they seem to use a voxel engine. I guess voxels can create this kind of smooth elevations too.


I'm afraid it's more than tweaking the code :) It just seems that graphics engine is way different than x-com's.

Volutar

  • Guest
Re: Ground Elevation
« Reply #2 on: July 19, 2011, 08:16:07 am »
I really doubt these are voxels. It's more like textured heightfield. And this approach won't work with oxc, just because everything standing on such "distorted" ground will be hanging above, touching ground only with one corner. And this is unacceptable. To be honest this tiled and discrete heights is not of any issue, and moreover, indulging of such aesthetic whim will require of redesigning of tactic part of game. And this obviously will destroy classic xcom gameplay.
« Last Edit: July 19, 2011, 08:19:32 am by Volutar »

Offline hellblade

  • Captain
  • ***
  • Posts: 87
    • View Profile
Re: Ground Elevation
« Reply #3 on: July 19, 2011, 05:41:22 pm »
I totallly agree with Volutar.  Besides, what is the ground supposed to look like after we shoot the side of a hill?  Which part of the square are we supposed to lower?

By the way, the way Alpha Centuri map works, is exactly how The Sims and Simcity map work.  Not may people can relate to A.C. because not many people have played it.

Offline R

  • Sergeant
  • **
  • Posts: 21
    • View Profile
Re: Ground Elevation
« Reply #4 on: July 19, 2011, 10:07:34 pm »
Well what i have found on the web it seems it's a foxel system. (Some of these words are over my head.  :D)

Quote
Alpha Centauri employed (isometric) 3-D rendering for both the terrain and units. This was made possible by the "Caviar" voxel library by AnimaTek International (now Digital Element), which renders the voxel models and terrain geometry using self-modifying assembly language routines.

What i could gather from playing SMAC again it seems to layer textures over a voxel base.  First it renders a plain brown texture. Then it layers upon it trees, rocks, ect.

Upon closer examination on the ground elevation, it seems that it uses not one, but at least two different gradient elevations.
To illustrate how the map has a smooth appearance see attached image. (Top = Xcom. Bottom = SMAC)



Next to any flat area there must be a low gradient block. This smoothes the appearance.  In between low gradient blocks, you may get a higher gradient block.
One thing that I don't know is how you render the different gradient blocks. Is it 3 rows or 6 rows in the attached picture?  Is it possible to implement different gradient tiles? That I hope Daiky can answer us.

I don't have the required voxel know how, so please excuse me if I made some wrong assumptions.

Quote
Everything standing on such "distorted" ground will be hanging above, touching ground only with one corner.
Minor dear Watson, or Xcom would have had such problems.

Quote
- In xcom every ground tile is a true isometric object - you can see that clearly if you destroy a part of a mountain with blaster bombs.
The majority of SMACs gameplay is through shaping the map.  Making it higher and lower.  You also can blow mountains away with a super H-bomb thingy.

Quote
Planetbuster missiles blast holes in continents.
;D Fun times.

Quote
Which part of the square are we supposed to lower?
It shouldn't be too different to how xcom handles it.

So it should not change the game's tactics.  It is for appearance.
How easy it is to implement I can't say.  Hopefully it is not too hard and worth the effort.

Here is a screen-shot to help illustrate SMAC's tiles:
https://img9.imageshack.us/img9/7808/screenshotpqp.png
Note: The water is tiles beneath ground level.

R
« Last Edit: July 20, 2011, 08:02:41 am by R »

Offline Daiky

  • Battlescape Programmer
  • Administrator
  • Commander
  • *****
  • Posts: 904
    • View Profile
Re: Ground Elevation
« Reply #5 on: July 20, 2011, 11:13:27 am »
If I look at the screenshot of the game I see slopes (or gradients) that are curved. That can only be done with a heightmap, like Volutar said.

If I look at your drawing, you added a new sloped tile that has a lower angle than the standard sloped tile, this is something you can do if you are familiar with drawing PCK files, modding MCD and MAP files. There is not 1 line of code change needed for that :)
« Last Edit: July 20, 2011, 11:23:18 am by Daiky »

Offline R

  • Sergeant
  • **
  • Posts: 21
    • View Profile
Re: Ground Elevation
« Reply #6 on: July 20, 2011, 12:40:26 pm »
Hmm. So putting SMAC aside, we can add lower angle tiles? Excellent!

Then I would like to put that in as a suggestion for later implementation. 8)