Compiling RF with Visual C++ 2005 Express

Programming Reality Factory and Genesis3D.
incenseman2003
Posts: 320
Joined: Sat Mar 11, 2006 11:41 pm

Post by incenseman2003 » Mon Sep 03, 2007 2:17 am

@paradoxnj: OK! Np. I really do appreciate your trying to help.

I have reinstalled the program a couple of times. That is always the first thing that I do when such things happen. I get the same results.

I did not have another version installed when I installed VC++ 2005 Express. I completely uninstalled the VC# 2005 Express and then installed the VC++ 2005 Express.
Patience and tolerance are the keys to the passage of knowledge. Even those that are the most knowledgeable started with many questions.

User avatar
paradoxnj
RF2 Dev Team
Posts: 1328
Joined: Wed Mar 01, 2006 7:37 pm
Location: Brick, NJ
Contact:

Post by paradoxnj » Mon Sep 03, 2007 4:31 am

Ok...Did you follow these instructions? You need this to compile anything on Windows using VC++ Express.

User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 » Tue Sep 04, 2007 3:18 am

@paradoxnj this is sortof offtopic, but was it you that was going to code Rf/2 in C#? cos you said it would be faster than C++, and i was thinking, that perhaps you could use the code that RF2 had for Irrlicht, and make it even faster than RF2 with OGRE.

also, where can i get the code for RF2 with Irrlicht?
Once I was sad, and I stopped being sad and was awesome instead.
True story.

User avatar
paradoxnj
RF2 Dev Team
Posts: 1328
Joined: Wed Mar 01, 2006 7:37 pm
Location: Brick, NJ
Contact:

Post by paradoxnj » Tue Sep 04, 2007 1:55 pm

Genesis made that too hard to do. I would have to make Genesis a .NET library for that to happen. That would take a huge amount of time and patience as I am not good with Managed C++. The steps would be to make a managed wrapper to Genesis, then convert the RF code to C#. I never stated it would run faster. C# has a .20% slower speed that C++.

The only things that would make RF faster is to create a DirectX 9 or OpenGL 2.0 driver and get hardware texturing and lighting properly implemented. Removing the fixed function pipeline and offloading a lot of the stuff that Genesis does to the GPU would greatly speed things up. Remember, Genesis is technology from 1996. It's 11 years old. These techniques were not available back then.

Personally, I would have taken the following steps to convert the engine to Hardware T&L:

1. Use the vertex and index buffers that DX7 provides. Make everything in the engine use the VB and IB pipeline.
2. Write functions to convert the Genesis XForms to D3D7 transforms. Use these to set the transforms for the HW TnL pipeline.
3. Remove the software transformations from the world.
4. Remove the software transformations from the actors.
5. Convert the lights to use the DX7 fixed function lighting.

The tools would have to be changed to reflect the new pipeline though. Basically, once you remove the lightmaps, there is no reason for the levels to be compiled anymore. The BSP can be generated in realtime like Jet3D does.

That would give you a DirectX 7 HW TnL engine that you can now easily convert to DX9. The OpenGL route would pretty much be the same except you would have the engine use the glDrawArrays() function to draw the geometry. That alone would gain some FPS.

User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 » Tue Sep 04, 2007 10:47 pm

RF2??????!?!?!?!?!
Once I was sad, and I stopped being sad and was awesome instead.
True story.

incenseman2003
Posts: 320
Joined: Sat Mar 11, 2006 11:41 pm

Post by incenseman2003 » Wed Sep 05, 2007 1:14 am

I will just have to wait for the next release with the fixes I need. Every time I get over one hurtle there is another to get past. People can say "Thats programming" but I know that logic demands that the hutles must end somewhere. I am just not willing to find out where that is. I have never wanted to be a programmer. I just don't have the passion or patience for it.

I'm just done with it.

I only hope the next release of RF is going to be soon.
Patience and tolerance are the keys to the passage of knowledge. Even those that are the most knowledgeable started with many questions.

User avatar
paradoxnj
RF2 Dev Team
Posts: 1328
Joined: Wed Mar 01, 2006 7:37 pm
Location: Brick, NJ
Contact:

Post by paradoxnj » Wed Sep 05, 2007 2:13 am

What issues are you having?

User avatar
jonas
Posts: 779
Joined: Tue Jul 05, 2005 5:43 pm
Location: Texas, USA
Contact:

Post by jonas » Wed Sep 05, 2007 5:59 pm

@zany you should ask andycr your rf2 related questions. paradoxnj is working on jet3d and generously helping out a little on this forum, with our troubles.

@incenseman2003 no programming isn't for everyone. But you shouldn't run into all that much getting realityfactory to compile. you might check here or here and see if you had a similar errors.
Jonas

Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better. - John Carmack

User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 » Wed Sep 05, 2007 8:57 pm

you should ask andycr your rf2 related questions. paradoxnj is working on jet3d and generously helping out a little on this forum, with our troubles.
yah, but i want to know if it was paradoxnj that was going to convert RF2 into C#, which he did not say.it might have been someone else.
Once I was sad, and I stopped being sad and was awesome instead.
True story.

Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Post by Jay » Wed Sep 05, 2007 10:31 pm

paradoxnj wrote:Genesis made that too hard to do. I would have to make Genesis a .NET library for that to happen. That would take a huge amount of time and patience as I am not good with Managed C++. The steps would be to make a managed wrapper to Genesis, then convert the RF code to C#. I never stated it would run faster. C# has a .20% slower speed that C++.

The only things that would make RF faster is to create a DirectX 9 or OpenGL 2.0 driver and get hardware texturing and lighting properly implemented. Removing the fixed function pipeline and offloading a lot of the stuff that Genesis does to the GPU would greatly speed things up. Remember, Genesis is technology from 1996. It's 11 years old. These techniques were not available back then.

Personally, I would have taken the following steps to convert the engine to Hardware T&L:

1. Use the vertex and index buffers that DX7 provides. Make everything in the engine use the VB and IB pipeline.
2. Write functions to convert the Genesis XForms to D3D7 transforms. Use these to set the transforms for the HW TnL pipeline.
3. Remove the software transformations from the world.
4. Remove the software transformations from the actors.
5. Convert the lights to use the DX7 fixed function lighting.

The tools would have to be changed to reflect the new pipeline though. Basically, once you remove the lightmaps, there is no reason for the levels to be compiled anymore. The BSP can be generated in realtime like Jet3D does.

That would give you a DirectX 7 HW TnL engine that you can now easily convert to DX9. The OpenGL route would pretty much be the same except you would have the engine use the glDrawArrays() function to draw the geometry. That alone would gain some FPS.
if i am right QoD is trying to get a D3D9 driver done by the end of the year that provides the current features, but uses TnL.

You're forgetting that with lightmaps, it is possible to have much moe detail in the scene. A lightmap can for example provide sharp shadows, whereas Direct3D7 can only have pervertex lighting. It would consume an insane amount of vertices to get the shadows as detailed as with a lightmap, which would then be slower.

If only the lightmaps were bigger...QoD has been talking about an insane amount of texture switches because of the lightmaps. Bigger lightmaps would produce lesser texture switches, and therefore a better framrate.
Everyone can see the difficult, but only the wise can see the simple.
-----

incenseman2003
Posts: 320
Joined: Sat Mar 11, 2006 11:41 pm

Post by incenseman2003 » Wed Sep 05, 2007 11:44 pm

The instructions that paradoxnj said I should follow said that I should include directories for the comopiler to draw from that I dont have. I know that I have installed all the files that was said is needed to compile RF. I added all the paths that was said that I needed. The buttons on the "Build" menu are just not clickable. That is the core of the problem.
Patience and tolerance are the keys to the passage of knowledge. Even those that are the most knowledgeable started with many questions.

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Thu Sep 06, 2007 12:43 am

zany_001 wrote:also, where can i get the code for RF2 with Irrlicht?
http://realityfactory2.cvs.sourceforge. ... yfactory2/
and
http://sourceforge.net/cvs/?group_id=179085
The buttons on the "Build" menu are just not clickable. That is the core of the problem.
Could I see a screenshot of the the main VC++ window with the build menu pulled down? (You can host it at tinypic.com etc)

User avatar
zany_001
Posts: 1047
Joined: Fri Mar 02, 2007 8:36 am
Location: Aotearoa

Post by zany_001 » Thu Sep 06, 2007 12:52 am

ty andy.
Once I was sad, and I stopped being sad and was awesome instead.
True story.

incenseman2003
Posts: 320
Joined: Sat Mar 11, 2006 11:41 pm

Post by incenseman2003 » Thu Sep 06, 2007 4:39 pm

Here is the screenshot you asked for. Note that the Build menu is not clickable at all. Could someone show a screenshot of what I am supposed to be seeing?

Image
Patience and tolerance are the keys to the passage of knowledge. Even those that are the most knowledgeable started with many questions.

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Thu Sep 06, 2007 5:38 pm

Every time I open a project's XML file accidentally like you did, I curse Microsoft for the dumb functionality...

You have the "project" open, but not the -project- open. To open the actual project, choose File->Open->Project/Solution... and choose the project file.

Post Reply