3D games

I was very pleased to see this recent thread on 3D games in Haiku.
So even though I am by no means a gamer, I wanted to try it out on my Dell E520 (gfx card nVidia GeForce 7300 LE) with Acer X223hq monitor (1920x1080).
The tests I did were all with Haiku r39962 gcc2hybrid.
Unfortunately, many of the 3D games I downloaded from Haikuware just didn’t work for a variety of reasons (some because I didn’t have the original data files – well, I’m not a gamer).
Then I installed PrBoom from SPM and this worked perfectly and with full sound. I couldn’t get the full 1920x1080 screen size but it still looked good at what appeared to be about 1650x1050.
Encouraged by this success, I tried Torcs from Haikuware.
On this the graphics appear even better than in PrBoom and I could get a 1920x1200 screen size.
However, the game is essentially unplayable as the fps is lamentably slow on my computer. I would guess I get something like one frame per three seconds.
But, I’m puzzled why the same nvidia driver that works so well in PrBoom does such a poor job in Torcs.
Incidentally, I also tried to run the Torcs game in Haiku r40074 gcc2hybrid on a netbook with an Intel 945GME gfx card just to see if the (possible) lack of a 3D nVidia driver was causing my problem on the Dell.
However, Torcs refused to run at all on this and crashed every time I tried apparently due to problems with the Mesa Software Renderer.
I’d welcome comments.

OK, so there are two separate things:

  1. Games which look “3D”

  2. Games which use the OpenGL graphics library, and thus are accelerated by what are colloquially called “3D graphics chips” if your OpenGL library has drivers for them.

PrBoom (and the whole Doom category) use a technique to appear 3D but are not (in PrBoom’s case specifically and of the genre generally, but with some exceptions) OpenGL. The technique used is fast (and was faster on the hardware of the time) but rather crude. As you will probably have noticed.

Some modern games, say, World of Goo, appear 2D but use OpenGL for rendering, allowing them to take advantage of the powerful graphics chips to easily create scaling and shading effects.

A lot of modern games both appear 3D and use OpenGL (or Direct3D on Windows) so they are in both categories. Torcs is such a game.

So, PrBoom works fine on an operating system like Haiku that has no drivers for your 3D hardware. But Torcs will perform very badly.

Does that make sense?

There are two types of 3D games. 1) those that use real 3D (OpenGL) and 2) those that use 2D graphics to look like 3D (isometric).

True 3D games use OpenGL and look very good. Haiku only has software renderer for OpenGL which is very slow. This renderer was meant only for testing and not playing 3D games.

Haiku lacks hardware accelerated 3D! So forget about playing OpenGL games on Haiku unless you enjoy slow game play.

For OpenGL, the Mesa Software Renderer will work almost acceptable if you 1) use low graphics settings (640x480 or less) 2) low quality settings and 3) have a newer, very fast CPU. I suggest not bothering but your choice.

I provided a compiler optimized version that gave 20% boost to games over default included one but still real slow. ie: if you got 15 fps before you would now get 18 fps with version I compiled. Some people got confused and maybe thought hardware 3D was here?

Isometric games use 2D graphics which give appearance of 3D. They may look OK or better (ie: Command & Conquer) and since they use 2D they will run very fast on Haiku because they do not require OpenGL.

List of isometric games:


You’re better off playing browser based games (MMO) which use javascript. I’ve played Ikariam which is a good isometric example but better MMO games out there. Ikariam has very nice graphics but game play gets boring after awhile.
http://us.ikariam.com/

Acutally Lincity-NG would be a good example of isometric… whereas DOOM is not the technique it uses is called ray casting. Basically all textures are pre rendered at different heights … and when you jump it cycles through them.

ok, thanks for the information cb88. Right you are. Ray casting sounded familiar but I haven’t heard this word in very long time.

Isometric & ray casting use 2D methods to create a 3D illusion. One of the early games to use this method was Wolfenstein 3D.

I found this link with a little more information:
http://www.student.kuleuven.be/~m0216922/CG/raycasting.html
"Raycasting is a rendering technique to create a 3D perspective in a 2D map."

“Later games such as Doom and Duke Nukem 3D also used raycasting, but much more advanced engines that allowed sloped walls, different heights, textured floors and ceilings, transparent walls, etc… The sprites (enemies, objects and goodies) are 2D images, but sprites aren’t discussed in this tutorial for now.”

Yep… I remember my uncle playing Wolf3d back on his first win 3.1 box LOL

http://www.users.on.net/~zenja/files/haiku_screenshot.png