Adding features to Legacy terrain - $250-$300
by Adam Beer · in Torque Game Engine Advanced · 12/31/2007 (8:46 pm) · 25 replies
I am in need of someone to add a few things to the Legacy terrain engine. Firstly, please dont tell me to use atlas because it is not developed enough for me to use. Mainly, I want to make the terrain more detailed. What I mean by this is I want to have Legacy have more polygons/verts. When you want to make a hill and you select your smallest brush (1x1) and move it around, it jumps quite a few units when moving to a different position. I want to do this because I want to use the Terrain Deform resource here:
http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=13884
When you create a deformer object, the crater it creates is not smooth and you can clearly see the polygons on the terrain. I want to see smooth craters and not have noticeable polygons. Also, of course I want the terrain deformer resource to work with this new terrain also.
Next, I would like support for larger heightmap support (1024px) and larger textures (512px). There is a problem with lighting the terrain when you have lots of interiors, and I think the error is "Stack around the variable 'sides' was corrupted" and it crashes. I would like that fixed. I think there is something you change in sceneGraph/shadowVolumeBSP.cpp I just dont know what. And finally, It would be nice if the terrain supported paging. My game requires semi far view distances. Im not talking like 50km view distance, the normal view distance for legacy I think is ~800 I would like to be able to see 3000 max with high framerates. I am not a programmer so this kind of stuff is way out of my league and I hope someone is willing to help me. I will be willing to pay $250-$300 to anyone who can get all these ideas working for me. My contact info is as follows:
MSN: adam_labat@hotmail.com
Email: adam@heartofthebattle.com
If anyone is interested please contact me. I am looking forward to anyone responses.
PS: I would be willing to release the results as a resource if all works out well. I know some of these problems have been around for a while. Cheers. =)
Edit: Happy new year.
http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=13884
When you create a deformer object, the crater it creates is not smooth and you can clearly see the polygons on the terrain. I want to see smooth craters and not have noticeable polygons. Also, of course I want the terrain deformer resource to work with this new terrain also.
Next, I would like support for larger heightmap support (1024px) and larger textures (512px). There is a problem with lighting the terrain when you have lots of interiors, and I think the error is "Stack around the variable 'sides' was corrupted" and it crashes. I would like that fixed. I think there is something you change in sceneGraph/shadowVolumeBSP.cpp I just dont know what. And finally, It would be nice if the terrain supported paging. My game requires semi far view distances. Im not talking like 50km view distance, the normal view distance for legacy I think is ~800 I would like to be able to see 3000 max with high framerates. I am not a programmer so this kind of stuff is way out of my league and I hope someone is willing to help me. I will be willing to pay $250-$300 to anyone who can get all these ideas working for me. My contact info is as follows:
MSN: adam_labat@hotmail.com
Email: adam@heartofthebattle.com
If anyone is interested please contact me. I am looking forward to anyone responses.
PS: I would be willing to release the results as a resource if all works out well. I know some of these problems have been around for a while. Cheers. =)
Edit: Happy new year.
About the author
Adam is the owner of Ignition Games, an indie game and software development company.
#2
12/31/2007 (11:00 pm)
I just finished adding support to Atlas terrain for up to 8 textures that aren't stretched so bad they look ...well bad. Is this what you mean by unfinished when refering to the atlas terrain?? because other than that I have some screen shots that will come out with my resource soon, that look as diverse in textures and quality as terrain from W.O.W.....but i will look into this as I have interest in how the blender for TGE works because it has the terrain painting function tied to it, essentially creating blend-maps on the fly which is what your painting not the terrain really....so while I'm doing it I will see what I can re-write but some of them as far as all the working parts are concerned seem to be strewed over quite a bit of code. But until Atlas and my texture update i wanted most of all the same things extended...except the terrain deformation that is but it is cool...so Ill see what I can do...maybe i perhaps get everyone going with a starting point...give me a week or so and Ill check back in:)
#3
01/01/2008 (8:01 am)
I would use atlas, but I NEED the terrain deformation in. It cant be faked either. I also need the editing to be ingame because all of my level designers dont want to have to buy products just to be able to make terrain. The texturing is ok, but also the size of terrain we would need would be 1gb+ which is 960 mb to big.
#4
Legacy terrains are 256x256 heightmap units ... thats smaller than the smallest atlas2 terrain you can create at all. and raising that on the legacy terrain will make it significantly slower.
01/01/2008 (8:09 am)
If you have 1GB+ atlas2 then you have significantly larger terrains and more texture detail than legacy will give you at all.Legacy terrains are 256x256 heightmap units ... thats smaller than the smallest atlas2 terrain you can create at all. and raising that on the legacy terrain will make it significantly slower.
#5
Edit: You should read my first post as what I am requesting will make legacy look better.
01/01/2008 (8:11 am)
This game is being distributed online so a 1gb terrain is too big. I have about 15-20 levels with terrain, and 20GB just on terrain is a long download.Edit: You should read my first post as what I am requesting will make legacy look better.
#6
As I pointed out, 1024x1024 heightmaps will kill the performance totally. I've a 2x 3Ghz Core 2 Duo with 8800GTS SuperClocked and at 1024x1024, the FPS go down to something that will not have more than 2FPS on my targeted machines that should be able to play it.
Already 512x512 HMs will kill it considerably.
If you want to test it, raise the constant within the source that currently sets it to 256x256 HMs, its not hard
terrData.h class TerrainBlock and then the Enum and just replace the 256 with 512 or 1024
BlockSize = 256,
The painted texture size is defined in blender.cpp:
S32 Blender::mTexSize = 256;
I am that "unconstructive" because our project bases on legacy as well due to the points you and other mentioned on Atlas2 already. So I got some experience and frustration already on that end ...
For more than that and especially make it more performant etc you would need more than only a few hours. More like: fully replace it, fix the totally broken editor on legacy etc ... so a job of a few weeks fulltime ...
The only thing that out of my sight potentially would make sense would be looking into TorqueXs 3D sources for its terrain and see if it would be possible to adapt it ..
01/01/2008 (8:35 am)
I read the first request. But it won't change anything I fear.As I pointed out, 1024x1024 heightmaps will kill the performance totally. I've a 2x 3Ghz Core 2 Duo with 8800GTS SuperClocked and at 1024x1024, the FPS go down to something that will not have more than 2FPS on my targeted machines that should be able to play it.
Already 512x512 HMs will kill it considerably.
If you want to test it, raise the constant within the source that currently sets it to 256x256 HMs, its not hard
terrData.h class TerrainBlock and then the Enum and just replace the 256 with 512 or 1024
BlockSize = 256,
The painted texture size is defined in blender.cpp:
S32 Blender::mTexSize = 256;
I am that "unconstructive" because our project bases on legacy as well due to the points you and other mentioned on Atlas2 already. So I got some experience and frustration already on that end ...
For more than that and especially make it more performant etc you would need more than only a few hours. More like: fully replace it, fix the totally broken editor on legacy etc ... so a job of a few weeks fulltime ...
The only thing that out of my sight potentially would make sense would be looking into TorqueXs 3D sources for its terrain and see if it would be possible to adapt it ..
#7
01/01/2008 (8:40 am)
Thanks for your incite mark. I guess my main goal for now is to apply those changes you said above and just make the performance acceptable. I still would like to make the terrain have more faces too and fix the lighting issue when using alot of interiors. There so far is $800 down on the table to anyone who wants to attempt this.
#8
As easy as the heightmap change?
01/01/2008 (9:07 am)
@Marc: what about specific details textures for each terrain texture?As easy as the heightmap change?
#9
This was actually one of my targets to give the whole thing more detail ...
The problem here on my end is the decision on which attempt might be the best for it.
With per texture detail you could kill out the "full map detail" which would theoretically allow you to blend up to 3 textures per go as compared to 4 right now. (3 because 1 texture input is the opacity map and 3 textures + 3 detail textures so 7 textures of the 8 possible textures in SM2)
So instead of a maximum of 16 you would have a maximum of 12 textures on a legacy.
But that wouldn't be the problem.
My main problem with the legacy shaders is that all of the textures scales are hardcoded so as a first step I will most likely look into how to make it settable somewhere else (at best in the editor but luckily that one is that borked and broken that such a feature can not even be easily added as the textures are not set within the "instance" editor but with a special editor)
this move is needed because otherwise you will suffer a quite serious problem: texture 0,3,6,9 would have the same texture scale ... which definitely defeats the point of having more than 3 ...
This will be needed as we want to be able to paint paths and the like onto the terrain which we currently do with decals (urgs ^^)
01/01/2008 (9:19 am)
There is no detail texture system anymore within TGEA (per texture detail) so you would have to implement it yourself.This was actually one of my targets to give the whole thing more detail ...
The problem here on my end is the decision on which attempt might be the best for it.
With per texture detail you could kill out the "full map detail" which would theoretically allow you to blend up to 3 textures per go as compared to 4 right now. (3 because 1 texture input is the opacity map and 3 textures + 3 detail textures so 7 textures of the 8 possible textures in SM2)
So instead of a maximum of 16 you would have a maximum of 12 textures on a legacy.
But that wouldn't be the problem.
My main problem with the legacy shaders is that all of the textures scales are hardcoded so as a first step I will most likely look into how to make it settable somewhere else (at best in the editor but luckily that one is that borked and broken that such a feature can not even be easily added as the textures are not set within the "instance" editor but with a special editor)
this move is needed because otherwise you will suffer a quite serious problem: texture 0,3,6,9 would have the same texture scale ... which definitely defeats the point of having more than 3 ...
This will be needed as we want to be able to paint paths and the like onto the terrain which we currently do with decals (urgs ^^)
#10
BTW, I'm currently looking for this in the TGE version... if someone finds it before me.
01/01/2008 (11:46 am)
Marc, yes, just noticed it was a thread related to the TGEA section not the TGE one.BTW, I'm currently looking for this in the TGE version... if someone finds it before me.
Quote:The painted texture size is defined in blender.cpp:
S32 Blender::mTexSize = 256;
#11
01/01/2008 (12:23 pm)
The CPP blender in TGE had support for 512x512 or more, but it's slower than the assembly one and I'm not sure it still works after 1.4.
#12
01/01/2008 (5:03 pm)
I would like to see this happen as well. i am a much bigger fan of legacy vs atlas. the main reason is because of the in game editable terrain. i really hate the fact that i have to open another editor to modify the terrain. So having that said, i will be willing to throw down another $200 for anyone to get this going. That means total of now of one thousand ($1,000.00) for someone to get this working.
#13
01/01/2008 (8:28 pm)
I have no use for this currently, but would absolutely love to see something like this developed. I will throw in another $100 ($1,100 total).
#14
You should tackle those thing one at a time...its what I'm doing with the part of the engine I need to add:)
01/01/2008 (11:55 pm)
For the TGEA legacy terrain i can make it so you can have a detail textures for each texture but all controlled by an opacity map if you think that will help, its like what I'm doing for Atlas but easier and looks a bit different:) Email me if you interested Lmaceleighton@msn.comYou should tackle those thing one at a time...its what I'm doing with the part of the engine I need to add:)
#15
@ Stefan L
Thats very very interesting. Since I need this for TGE is anyone able to put the .cpp blender in TGE into action again? I don't mind loosing a few fps on speed versus higher res textures.
Or can the TGEA code be ported back to TGE?
Im only an Artmonkey so I am pretty clueless :D
01/02/2008 (12:48 am)
Thanks all for the insights. So it looks like the TGE Terrain and TGEA Legacy aren't all that closely related anymore?@ Stefan L
Quote:The CPP blender in TGE had support for 512x512 or more, but it's slower than the assembly one and I'm not sure it still works after 1.4.
Thats very very interesting. Since I need this for TGE is anyone able to put the .cpp blender in TGE into action again? I don't mind loosing a few fps on speed versus higher res textures.
Or can the TGEA code be ported back to TGE?
Im only an Artmonkey so I am pretty clueless :D
#16
But as TGE user, you could have a look at the ModernizationKit and see if it offers some of the possibilities.
If not it would at least partially open the possibility to port TGEA stuff back to TGE
01/02/2008 (4:31 am)
No, TGEA has no ASM bindings it uses pure shader. so no possibility to port it back most likely.But as TGE user, you could have a look at the ModernizationKit and see if it offers some of the possibilities.
If not it would at least partially open the possibility to port TGEA stuff back to TGE
#17
01/02/2008 (6:55 am)
A CPP blender doesn't really seem like a good idea to reimplement. The performance cost is probably greater than you imagine if they decided to write the blender in assembly.
#18
Especially the blender, to my knowledge, isn't SSE and SSE2 optimized so there is a lot of potential left even if you would be crazy enough to go pure ASM.
But I would really suggest to see the MKs integration of CG and GLSL as a potential new way of adressing the issue as well assuming that todays cards should be capable of it (or do not run TGE on a usefull level at all like intel onboard)
01/02/2008 (7:42 am)
Well, when the blender was written (assuming it was part of Tribes already), the best 3D card was the Vodoo 2 ... so I would guess that todays graphic cards with real multitexturing and the like are a "little bit" better performance wise.Especially the blender, to my knowledge, isn't SSE and SSE2 optimized so there is a lot of potential left even if you would be crazy enough to go pure ASM.
But I would really suggest to see the MKs integration of CG and GLSL as a potential new way of adressing the issue as well assuming that todays cards should be capable of it (or do not run TGE on a usefull level at all like intel onboard)
#19
01/02/2008 (2:48 pm)
Marc there is an article on the Intel Software Network called "Intel GMA 3000 and X3000 Developer's Guide ".Quote: (or do not run TGE on a usefull level at all like intel onboard)
#20
I get 80 FPS on my 8800GTS SuperClocked (backed with 640MB VRAM on a 2x3ghz C2D E6600 and 2GB of RAM) with stock TGE and the stronghold level. So as the intel onboard are class 4 to class 5 GPUs compared to mine, I do not expect to see more than 10-15 FPS in that situation.
They are really nice for what they are targeted at (low voltage -> power consumption, good performance for Office, video and regular casual games). But for gaming, they are your worst nightmare and get easily outperformed by NVIDIA 6150 / 7100 , ATI HD2000 onboard chips.
They have a bandwidth that my card potentially even outperforms on PCIe x1 speed ... With 10GB/s bandwidth you can drop the idea of doing a "near current gen" looking game unless you plan to use 256x256 textures at maximum.
Thats what I mean by "usefull performance"
01/02/2008 (3:05 pm)
And?I get 80 FPS on my 8800GTS SuperClocked (backed with 640MB VRAM on a 2x3ghz C2D E6600 and 2GB of RAM) with stock TGE and the stronghold level. So as the intel onboard are class 4 to class 5 GPUs compared to mine, I do not expect to see more than 10-15 FPS in that situation.
They are really nice for what they are targeted at (low voltage -> power consumption, good performance for Office, video and regular casual games). But for gaming, they are your worst nightmare and get easily outperformed by NVIDIA 6150 / 7100 , ATI HD2000 onboard chips.
They have a bandwidth that my card potentially even outperforms on PCIe x1 speed ... With 10GB/s bandwidth you can drop the idea of doing a "near current gen" looking game unless you plan to use 256x256 textures at maximum.
Thats what I mean by "usefull performance"
Torque Owner Thak
EDIT: I am talking TGE sorry, not TGEA but its probly the same.
As far as I can tell from various forum posts its nigh impossible to do. Since its in MMX Assembly *squints* or something of that nature.
If there is an assembly coder that can do the above I will pay $500 in addition to Adams offer to have this as well.
Actually more specifically I only really need larger texture sizes 512x512 spread over 4 (instead of 16 I think) faces and would be willing to pay the 500 just for that.
Afaik most of it is in blender.asm and probably in a few other places.
A happy new year to ye too and I hope we do find a person capable of this massive feat. ;)