Regarding the lack of news
Posted: Sun Jul 13, 2008 2:48 pm
I would like to apologize to everyone for the recent lack of activity on my behalf. I got myself a summer job (well, more of an unpaid apprenticeship) at an electronics manufacturing company and during its timespan (until July 31st) I'm living at another place where I have no internet access or even a computer, and only come home on weekends.
I know this is going to disappoint a lot of people and undermine the project greatly, but I do not plan to continue any work on OpenMoHAA. The potential suitability of the engine for modern game projects was the main driving force of the development for me - I wanted to base other games on it. It no longer is, though.
You have the source code, it can be done, you may say. Well, yes and no. I conducted some experiments with the original MoHAA and the ioquake3 engines to explore the potential for rendering scenes comparable in complexity to modern game engines (remember my huge Middle-Eastern city map project? it was supposed to be one of them). The results are very disappointing, to say the least.
Crysis, for example, easily pushes 1-2 million (sic!) triangles down the rendering pipeline each frame (not to mention the shaders and other stuff). My system (P4 3GHz, 1.5GB of RAM, GF8600GT) pulls off 30FPS at high quality settings. Now, an average MoHAA map has about 10-20 thousand triangles at peak. My system renders the game at 200-400FPS. I tried pushing as many triangles down the renderer as possible. It turned out that the engine is already struggling at 30FPS with as few (compared to Crysis) as 100 thousand triangles, even if all it was drawing was a number of simple cubes with single-stage shaders.
This is far from an acceptable limitation for a modern game engine, and the reason lies deep in the video renderer's very architecture. One of the problems is that too much data has to be sent from the system RAM to video RAM. The transfer must be done by the CPU, is limited by the speed of the system bus and a couple of other factors, effectively creating a bottleneck. The cause of that is the shader system - the feature that made Quake III so visually attractive and mesmerizing in its days of glory is the burden that prevents the engine from being modernized, because all the wacky stuff that those shaders do - scrolling, twisting and deforming the textures and vertices, blending transparent textures, etc. - creates more and more overhead.
Back in 1999 this was an affordable architecture, because the 3D accelerator chipsets' performance was poor and with the numbers of triangles and vertices involved, sending that data from one memory to another was an optimal solution. Now, with the more powerful video cards, it's just slowing everything down. Modern engines tend to precompile as much stuff as possible and store it in the video memory in advance instead.
Rewriting the renderer from scratch is out of the question, as all of the shader features would have to be rooted.
Considering all of the above, I hereby withdraw from the OpenMoHAA team and leave Wombat in charge of it. Whether he chooses to continue or abandon the project - I leave the decision up to him.
I would like to thank all of you for all the support and enthusiasm you showed over those months, and extend my sincere apologies for disappointing you in such a way. I feel it's time to move on with things - I'm working as a technical artist, music composer and voice actor for the team responsible for adding the Polish Army to the Project Reality mod, I have also began work my own game engine, with some more modern design goals in mind; hopefully it will see the daylight some day.
I know this is going to disappoint a lot of people and undermine the project greatly, but I do not plan to continue any work on OpenMoHAA. The potential suitability of the engine for modern game projects was the main driving force of the development for me - I wanted to base other games on it. It no longer is, though.
You have the source code, it can be done, you may say. Well, yes and no. I conducted some experiments with the original MoHAA and the ioquake3 engines to explore the potential for rendering scenes comparable in complexity to modern game engines (remember my huge Middle-Eastern city map project? it was supposed to be one of them). The results are very disappointing, to say the least.
Crysis, for example, easily pushes 1-2 million (sic!) triangles down the rendering pipeline each frame (not to mention the shaders and other stuff). My system (P4 3GHz, 1.5GB of RAM, GF8600GT) pulls off 30FPS at high quality settings. Now, an average MoHAA map has about 10-20 thousand triangles at peak. My system renders the game at 200-400FPS. I tried pushing as many triangles down the renderer as possible. It turned out that the engine is already struggling at 30FPS with as few (compared to Crysis) as 100 thousand triangles, even if all it was drawing was a number of simple cubes with single-stage shaders.
This is far from an acceptable limitation for a modern game engine, and the reason lies deep in the video renderer's very architecture. One of the problems is that too much data has to be sent from the system RAM to video RAM. The transfer must be done by the CPU, is limited by the speed of the system bus and a couple of other factors, effectively creating a bottleneck. The cause of that is the shader system - the feature that made Quake III so visually attractive and mesmerizing in its days of glory is the burden that prevents the engine from being modernized, because all the wacky stuff that those shaders do - scrolling, twisting and deforming the textures and vertices, blending transparent textures, etc. - creates more and more overhead.
Back in 1999 this was an affordable architecture, because the 3D accelerator chipsets' performance was poor and with the numbers of triangles and vertices involved, sending that data from one memory to another was an optimal solution. Now, with the more powerful video cards, it's just slowing everything down. Modern engines tend to precompile as much stuff as possible and store it in the video memory in advance instead.
Rewriting the renderer from scratch is out of the question, as all of the shader features would have to be rooted.
Considering all of the above, I hereby withdraw from the OpenMoHAA team and leave Wombat in charge of it. Whether he chooses to continue or abandon the project - I leave the decision up to him.
I would like to thank all of you for all the support and enthusiasm you showed over those months, and extend my sincere apologies for disappointing you in such a way. I feel it's time to move on with things - I'm working as a technical artist, music composer and voice actor for the team responsible for adding the Polish Army to the Project Reality mod, I have also began work my own game engine, with some more modern design goals in mind; hopefully it will see the daylight some day.