blitz and remote desktop/citrix

Blitz3D Forums/Blitz3D Programming/blitz and remote desktop/citrix

shawnus(Posted 2006) [#1]
Does anyone have any experience publishing blitz3d via remote desktop or citrix (or any) thin client?

I am getting an error 'unable to set graphics mode' when I connect as a remote user, but directx is installed on both machines.

I thought thin client sent just the screenshots to the remote PC from the host PC, so in theory directx should not be needed at the remote PC?

Shawnus


ShadowTurtle(Posted 2006) [#2]
do you have on both machines the same directx versions?


b32(Posted 2006) [#3]
Have you tried using the Windowed mode ? Hmm, I found this article: http://support.microsoft.com/kb/q260565/
Might be depending on the software you are using: http://www.golem.de/0510/40964.html


shawnus(Posted 2006) [#4]
thanks for your replies.

yes doth are the same directx versions, i will try with the windowed mode.

cheers, shawnus


b32(Posted 2006) [#5]
Another thing you could try is running DxDiag from the remote desktop. There are some tests in it for Direct3D.


BlitzSupport(Posted 2006) [#6]
This is semi-educated guesswork and nothing more...

I think what happens with most remote desktops is that they create a "mirror driver" (basically a fake graphics driver), to which all window creation, drawing, etc, is duplicated. The duplicated output goes to the network connection instead of a real monitor in the case of a remote desktop's mirror driver.

I just experimented with TightVNC, and this seems to hold up. On the Hooks tab of the TightVNC server, if you check "Don't use mirror driver..." BEFORE connecting any clients to it, you'll see your 3D game on the local machine, but it will be extremely slow -- completely unuseable, as it's doing a straightforward copy of what's on display.

When it's allowed to create the mirror driver (ie. "Don't use mirror driver..." is unchecked), it attempts to create a clone of the real driver, but because the mirror is a basic 2D-only driver, it fails.

This probably applies to hardware accelerated 2D modes as well, as in Blitz2D/3D/Plus... not sure offhand. (Mirror drivers are software only since they're obviously not outputting to real graphics cards.)

I think that when a game tries to create a 3D (or accelerated 2D) display while a mirror driver is running, the creation of the accelerated display must be dependent on both the real driver AND the mirror driver initialising successfully.

Or something like that! I probably have some of the details wrong.

This all means I don't think it's going to work, other than with the non-mirrored modes, which I think just do a plain copy of changed areas and stick the resulting data over the network.

See if your remote desktop software makes reference to a mirror driver and if it can be disabled, but I don't think Windows' Remote Desktop has that option, ie. it always outputs to a mirror driver.


Mr Snidesmin(Posted 2006) [#7]
Yep, I've a lot of experience with remote desktop on XP and I can confirm this. I don't think you will be able to display 3d graphics over a remote connection.


b32(Posted 2006) [#8]
If the 3d app is your own Blitz program, maybe then you could write something yourself to send images across. Then use something like CopyRect BackBuffer() ?
And I've heard about (not seen) a program that captures 3d data rather than screenshots. It allows you to view back any DirectX application from different angles. Don't know what the program was called.


Mr Snidesmin(Posted 2006) [#9]
You could of course implement a networked game. . . I'm fairly sure that for whatever you are trying to do this would be the best solution. . .


shawnus(Posted 2006) [#10]
Thanks all,

We tried installing 'thinanywhere' a 3d plug in for citrix, but its openGL (doh!).

We think it may be worth upgrading to .net as I have tried downloading a game written in .net and running it over citrix from our server and it works fine, but i really like blitz...

I have googled this topic extensively, but without much luck. It seems like my choice is to pay someone to convert my blitz app to something like VB or Csharp.

Perhaps I am going at this from the wrong perspective?

Can anyone suggest a method of hosting a blitz3d app on a server and allowing access to potentially hundreds of users via broadband, each with a frame rate of around 30-40 fps?

We use HP proliants, and h/ware isnt a problem.

Kind regards, Shawnus