I hate the new 3d engine of civ iv

Zurai said:
Complex AI is very, very CPU intensive and would ruin the framerate of any 2D game.
In Galactic Civilizations rendering was working just fine. And GC AI was probably the best strategic AI to date.

But if you look at Civ4, it takes insane amounts of computine power just when it sits in the main menu. There's no map, no players, no units yet. It just spends all resources rendering the screen. It also runs all game core in a single thread (you can monitor Civ4 threads and no thread except one ever consumes any noticable amount of CPU resources). It would be much more reasonable to run graphic renderer and AI in separate threads, but no....
 
alexti2 said:
It's probably uses most of processing power to feed 3D engine. In term of gameplay, Civ4 doesn't do much besides what Civ3 was doing, so you would expect it to run about the same speed. Unfortunately it doesn't. The root of the problem is that what 3D GPU can do is very limited. It's good at things like rotating some object with various light sources etc... However, you can't make 3D hardware automatically render things like a list of actions available to the unit. So a lot of time will be spent just translating those things into GPU primitives.
*shrug* If you say so. I was just pointing out where he had completely ignored what Zurai had repeatedly said ;)
 
my god we need post counts or somthing- post all you have to say on one damn post!
 
Well, I LOVE the civ4's 3D graphics. Makes the world feel more much alive and interactive.
 
alexti2 said:
It's probably uses most of processing power to feed 3D engine.

I know it seems that way to people who aren't familiar with how computer architecture works, but that's really the opposite of what happens. The CPU side of 3D rendering is very, very light - it just gathers lists of vertices and textures and tells the graphics card "Hey, here's all that data you wanted, do your magic with it!". It's more complex than that, but not much more. With a 2D game, it says "OK, I have a 1024x768 pixel screen. What's pixel 1's color? What's pixel 2's color? What's pixel 3's color? What's pixel 4's color?....What's pixel 786432's color?"... 30 times (or more) a second. Again, that's an exaggeration, but not much of one.

In term of gameplay, Civ4 doesn't do much besides what Civ3 was doing, so you would expect it to run about the same speed. Unfortunately it doesn't. The root of the problem is that what 3D GPU can do is very limited. It's good at things like rotating some object with various light sources etc... However, you can't make 3D hardware automatically render things like a list of actions available to the unit. So a lot of time will be spent just translating those things into GPU primitives.

You're right, it doesn't run at the same speed. It runs a lot faster. I can play an entire, 6000 year time win on a Huge Pangaea map with 14 civs in less than 4 hours (3:52 is my fastest on that particular setting), whereas a time win under the same circumstances in Civ3 would take several times that. That time isn't all from the game being slimmer and less micro-managing, either, since I barely micro'd at all in Civ3. It's mostly from the amount of time the computer spends processing.
 
alexti2 said:
In Galactic Civilizations rendering was working just fine. And GC AI was probably the best strategic AI to date.

GalCiv used a 3D engine.

EDIT: To clarify, the engine was 3D, but the graphics were IIRC displayed as render-to-texture sprites. Check the ship files - they're all models, not bitmaps or pngs.
 
Zurai said:
At which point you have a 3D engine. Dominions 2 could not have done what it did with a 2D engine. 1000+ units all checking collision against each other on a tile map 30+ times a second?
I doubt they do it the way you suggest. I think that all unit interaction is calculated in the engine and in the renderer every units stays in particular tiled plane, so there's no need for unit collision at all. If you know the game, it can be run without renderer at all, and battles can be replayed in the renderer run on different computers.

To avoid confusing terms, any graphic card renders in 2D (obviously) and in majority of games 3D is rendered. So the distinction is mostly in where translation happens. In "3D" objects are fed to the graphic engine as 3D objects described by surfaces and coordinates. 3D engine takes care of calculating resulting 2D image from a certain angle (hardware acceleration takes care of some parts of this process). In "2D" objects are pre-projected onto 2D at a certain angle (like sprites which are saved as images of 3D objects) and then fed into the rendering engine with 2D+1D coordinates (here 3rd coordinates means plane). In the old days 2D acceleration was done by different chip than 3D acceleration, but now it's the same GPU that do the both.

At first look there isn't that much difference between what's done in both cases outside of the rendering engine, however in "2D" case you can go wild, load pretty much all your sprites into VRAM and just refer to them, thus the program will only need to feed coordinate into the renderer. In "3D" case the renderer itself needs plenty of VRAM to form 2D picture, plus object descriptions take much more memory, so in practice applications have to keep swapping those object descriptions back and forth.

Why anyone would want to use 3D then? The main advantage is that the viewing angle is not locked and "one" can move freely in 3D worlds between all those objects and view in various directions and that's something hardware acceleration is good at (but not at swapping the objects descriptions back and forth). Though it's not something one would expect to need in the strategy game...
 
Zurai said:
With a 2D game, it says "OK, I have a 1024x768 pixel screen. What's pixel 1's color? What's pixel 2's color? What's pixel 3's color? What's pixel 4's color?....What's pixel 786432's color?"... 30 times (or more) a second. Again, that's an exaggeration, but not much of one.
That's a dumb way to program. You can just dump images as a whole, which is much faster. Or better youcan just make images out of textures which is way much faster.

Zurai said:
You're right, it doesn't run at the same speed. It runs a lot faster. I can play an entire, 6000 year time win on a Huge Pangaea map with 14 civs in less than 4 hours (3:52 is my fastest on that particular setting), whereas a time win under the same circumstances in Civ3 would take several times that. That time isn't all from the game being slimmer and less micro-managing, either, since I barely micro'd at all in Civ3. It's mostly from the amount of time the computer spends processing.
I can believe that overall time went down because of reduction in micromanagement, but that says nothing about the engine performance.
 
alexti2 said:
That's a dumb way to program. You can just dump images as a whole, which is much faster. Or better youcan just make images out of textures which is way much faster.

To even use textures you must have a 3D engine. And, as I said, the examples is an exaggeration. There are ways to streamline it, but that's still exactly what the CPU does - set the color of every pixel itself.


I can believe that overall time went down because of reduction in micromanagement, but that says nothing about the engine performance.

I never really micromanaged in Civ3, though. I despise micro, so I never did it. Once I had more than a couple cities I automated 90% of my workers, I never changed which tiles citizens worked, I never used slavery, I never micromanaged units to generate leaders, etc. I'm quite willing to accept that some of the gained time was from fundamental gameplay changes and reduced micro, but not all or even most of it. On the same computer I've been playing Civ4 on, a modern era in-between turn would take over 10 minutes on a huge map. In Civ4 it takes, at most, 30 seconds.
 
alexti2 said:
In Galactic Civilizations rendering was working just fine. And GC AI was probably the best strategic AI to date.

But if you look at Civ4, it takes insane amounts of computine power just when it sits in the main menu. There's no map, no players, no units yet. It just spends all resources rendering the screen. It also runs all game core in a single thread (you can monitor Civ4 threads and no thread except one ever consumes any noticable amount of CPU resources). It would be much more reasonable to run graphic renderer and AI in separate threads, but no....
First I remember reading many complains about paying $40 for a Gal Civ with dated graphics. With Gal Civ2 they are spending more time improving the graphics (3-d) as the fans requested.
Second the 3-D graphics themselves doesn't seem to be the problem. I found out my GPU actually runs cooler late in the game than at the beginning especially in globel view where I was getting 3 fps (GPU was just barely warmer than idle).
 
Zurai said:
Right, that's why I mentioned that less than 1% of the registered users had posted to the thread you mentioned with problems. Are you really that dense or just playing at it?

99% of all statistics are made up.

Fact is, besides the IBT's, which I'll concede are faster in Civ4 at times, everything else, including simple things such as pulling up a menu, or moving a unit a few tiles, is ungodly slow at times. I'd gladly give up the fancy graphics for a responsive interface that doesn't feel like you're downloading full page pictures on dial-up.

Now you can tell people all about how it just had to be made 3d to run faster, but then...why doesn't it? When you've got thousands upon thousands of power gamers with top of the line comps that play graphically intense FPS games all day at 30fps, and then have issues with a turn based strategy game...there's a problem.

Don't tell us why it had to be done this way to make it faster. Tell us why it isn't faster. :p
 
Zurai said:
To even use textures you must have a 3D engine. And, as I said, the examples is an exaggeration. There are ways to streamline it, but that's still exactly what the CPU does - set the color of every pixel itself.
I think you're just putting different meaning into 3D engine. For example, OpenGL supports acceleration for both 3D and 2D graphics. CPU does not set colour of every pixel, because there're primitives to draw triangles, rectangles etc... If you want to draw some perfectly 2D map, OGL primitives are much faster than drawing it pixel by pixel. Actually, even Windows GDI primitives are faster than pixel by pixel.

Zurai said:
I never really micromanaged in Civ3, though. I despise micro, so I never did it. Once I had more than a couple cities I automated 90% of my workers, I never changed which tiles citizens worked, I never used slavery, I never micromanaged units to generate leaders, etc.
That way you play you may not encounter sluggishness of Civ4. I dislike micromanagement as well, but I like to win on Deity, so I micromanage :( In Civ4 I can't move more than 2 units per second (at best). In Civ3 I could move 5 or 6. Opening city screen takes another extra second in comparison to Civ3. And the list goes on...
[/QUOTE]

Concerning 3D vs 2D, why not to make simple experiment? I suggest we render simple "world". For example, we can draw land surface. For simplicity we can consider that the surface is described by z=1+sin(x+y)+0.2*N(0,t). Let's make altitude coloured like on real maps: from green (low) to brown (high). Can you write the code that will render this surface while rotating the viewing angle which would work faster than top-down 2D rendering?
 
alexti2 said:
Concerning 3D vs 2D, why not to make simple experiment? I suggest we render simple "world". For example, we can draw land surface. For simplicity we can consider that the surface is described by z=1+sin(x+y)+0.2*N(0,t). Let's make altitude coloured like on real maps: from green (low) to brown (high). Can you write the code that will render this surface while rotating the viewing angle which would work faster than top-down 2D rendering?

Easily. Pixel shaders are wonderful things.
 
Zurai said:
Easily. Pixel shaders are wonderful things.
I have no experience with shaders. Could you show a code to draw such a surface? And watch out, the surface is not static, see 't' there. In fact I put parenthesis wrong there, should be z=1+sin(x+y+0.2*N(0,t)). Otherwise, the surface won't be nice. Does it matter for pixel shader use where 't' is?
 
The problem isnt that civ4 uses 3d, its that it uses 3d poorly. There are many RTS games out there that use 3d and it looks nice, unlike civ4. Civ4 seems too "cluttered". I actually prefer the looks of the 2d graphics in civ3.
 
Vladesch said:
The problem isnt that civ4 uses 3d, its that it uses 3d poorly. There are many RTS games out there that use 3d and it looks nice, unlike civ4. Civ4 seems too "cluttered". I actually prefer the looks of the 2d graphics in civ3.

Purely a matter of personal preference. I happen to much prefer the look of the 3d graphics in Civ4 over the 2d ones of Civ3.

I also have an idea about what might cause some of the disagreement over graphics speed. The graphics card does most of the work generating 3d graphics, right? Well, if you have a slow graphics card you'll run 2d stuff fine, while you'll have trouble with 3d graphics. Whereas those with a faster card have no difference between 2d and 3d engine, or may actually find improvement with 3d graphics.

I'm no hardware guru though.
 
alexti2 said:
Does it matter for pixel shader use where 't' is?

I'm not going to show any shader code, because the pixel shaders I'm familiar with are written in a form of assembly, but if written correctly a pixel shader can transform a low-poly rotating sphere with a uniform, blank texture into a perfectly round 3d topographical map (which is what you were getting at, I think). Shaders are nice because in most cases they're faster than even normal 3D graphics.

Another, non-shader method of doing the same thing would be to just procedurally generate the topographical information (using your formula - at least I think that's what that formula does) then render it to a texture and wrap the texture around the 3D sphere, which is also pretty fast. It's not quite as fast as using shaders, but it requires less specialized knowledge and is more widely useable.
 
Vladesch said:
The problem isnt that civ4 uses 3d, its that it uses 3d poorly. There are many RTS games out there that use 3d and it looks nice, unlike civ4. Civ4 seems too "cluttered". I actually prefer the looks of the 2d graphics in civ3.

This is certainly a valid complaint and one I won't argue with. I'm not defending Civ4's art/interface design, here, merely their choice to go with a 3D engine.
 
Zurai said:
To even use textures you must have a 3D engine.
Are we all even talking about the same things here?

As I see it, to use textures you only need to have 3D hardware. A 3D engine is a piece of software that uses the 3D hardware to simulate, manage and render a 3D worl - like Gamebryo, Unreal Engine or the Doom3 engine.

But if you were writing a 2D or isometric 3D engine, you could still use all the 3D hardware for doing the graphics - Sacred (a German game similar to Diablo), for example, uses layers and layers of pre-rendered 2D textures for the isometric landscape graphics (trees, houses, terrain, ...) with a few 3D characters in-between - but the only use of a 3D engine here is for characters and items.

np: Springintgut - Canvas (Pingipung Plays: The Piano)
 
alexti2 said:
In Galactic Civilizations rendering was working just fine. And GC AI was probably the best strategic AI to date.
I just read something about Galactic Civilizations in GS2 forum which stated that because all graphics was done by the CPU this put a limit on the AI.
Veteran Draginol said:
One of my biggest disappointments in the GalCiv I AI was how it fought its wars militarily.

The computer players in GalCiv I were given a lot of kudos but that mainly was because they were so efficient in how they handled their resources and on-the-fly military decision making.

But when it came to the overall strategy of war, the AI was disappointing. It wasn't supposed to be that way, it's just that the best laid plans can fall apart when things get complicated and there's not much CPU time involved.

In GalCiv I, all the graphics were handled by the CPU. This meant that the background threads in GalCiv which handled the AI could still effectively slow down animation and graphcis. So I was always painfully aware that any time I wanted the AI to do a complex calculation that I might be making some animation stutter due to slowing things down.

In GalCiv II, it's all 3D and all hardware accelerated. So my background threads for running the AI are honkey dorey. This has let me have the AI build much more complex strategies....
It seems to me he saying about what Zurai is stating.
 
Back
Top Bottom