Game Development Community

Multiple screen use?

by GarageGamer · in General Discussion · 04/19/2004 (5:54 am) · 29 replies

OK, so I wasn't sure where to post this. Hopefully someone here can help...

We are building a game which will be a permanent installation at the local science center, which visitors can interact and play with. Ultimately, we would like to keep our mission running on the main domed screen, and have a seperate touch screen to be used as a GUI.

So my questions are these...
1)How can I incorporate Torque on both screens and have them communicate effectively?

and
2)Is there something in Torque to utilize the touch screen, or does that need to be developed in C++?

Thanks for any help you can give.
Page «Previous 1 2
#1
04/19/2004 (6:28 am)
1. You could make a client for the main screen that just uses the same camera as the touch screen user is using. Or just use an external linker. Maybe I misunderstood your question but I hope that's a good answer.

2. You could develop that internally in Torque, but I also think there are already existing software for this that simply uses a cursor & click commands where you point at the screen. Commercial software of course does this better, but I like free ;)
#2
04/19/2004 (6:44 am)
The best way would probably be to use Torques networking. Then have the mainscreen as a part of the 'multiplayer' game. This also means you could have multiple mini guis etc. :)
#3
04/19/2004 (7:08 am)
Gareth:

Quote:1. You could make a client for the main screen that just uses the same camera as the touch screen user is using.

:P
#4
04/19/2004 (11:57 am)
Currently I am working on two commercial casino products that use touch screens. The more complex one runs on a single computer, dual monitor system. The "primary" monitor is where most of the visual action takes place, including presenting a GUI to the user. The "second" monitor is used for reporting status information from a backend server, choices that the player has made, etc. This is a custom engine using DirectX 8 (soon to be upgraded to DirectX 9) but many of the principles will remain indentical.

The Torque Game Engine as it stands does not support multiple display windows unfortunately. To achieve this would require editing the appropriate .cc files to initialise two separate windows. Alternatively if you can guarantee the physical positioning of the monitors then you could create a game window that stretches across both. Or as stated in earlier posts, create two clients that communicate over the network with each other.

However, there are issues with dual monitor systems that you will need to address. A single computer attempting to drive two monitors suffers from the fact that DirectX is only accelerated on the primary monitor. Any window that is initialised on the second monitor, including stretching a single window across two monitors, will be driven using DirectX in compatibility mode only utterly killing your frame rate. OpenGL generally does not suffer from this issue, however, many graphics card drivers, especially on the lower-end cards, are not fully OpenGL compliant and Torque falls back to DirectX when this is the case. It also depends on the OpenGL implementation to decide whether to accelerate on the second monitor. This is a case of experimentation. The systems where I have personal experience in this is with the Matrox dual-head displays, twin PCI NVidia cards, NVidia GeForce 5600 dual-head, ATI 9600 dual-head, and twin NVidia cards (one AGP & one PCI). All suffered from the slow-down.

You may need to consider using multiple computers communicating with each other. With a fixed IP address on each machine and a short cross-over patch cable your round-trip time should be relatively low, a video frame difference between the user selecting an action and the action being performed.
#5
04/19/2004 (10:57 pm)
We had TSE running on dual head for a while.
#6
04/19/2004 (11:14 pm)
Hrm, please correct me if I am wrong but TSE is not TGE? Had? Or have had? And was this under pure OpenGL or the DirectX "emulation"? And what was the hardware setup? And what were your frame rates? And was it using anything like NVdia's dual-view technology or standard Windows XP dual display?
#7
04/20/2004 (3:00 am)
Quote:To achieve this would require editing the appropriate .cc files

Come on mate, read.
There are free software doing this on top of your program. Maybe not the best performance hit in the world but it sure works!
#8
04/20/2004 (6:31 am)
Stefan, to the first comment I wasn't so sure that's what you ment since you went off on a tangent about 'linkers' and 'clients' :)

The 'non-acceleration' on dual monitors is card specific. I know that on both my 5800FX (ha ha) and my 9800Pro Ati that they work fine just setting the resolution to the full screen (and adjusting the the FOV). There is a performance hit, since I don't think they're as optimised, or maybe it's just the huge combined res but DX9 is still in 'Accelerated Mode'. If it had dropped to the reference driver it'd be seconds per frame not frames per second :)

So unless the res / fov are hard limited in the code. You should be able to change these in script.
#9
04/20/2004 (7:48 am)
Stefan,

What in the nine hells are you talking about, "mate"? "Read what"?
#10
04/20/2004 (8:27 am)
OtakuNoZoku

"Mate" is a friendly approach instead of putting a smiley there, kinda. Smileys get tiresome.

You said:
Quote:
To achieve this would require editing the appropriate .cc files

It doesn't require that, was what I meant.
You can do it in different ways.

Hope this isn't too hard to understand.
#11
04/20/2004 (10:51 am)
Stefan,

I'll concede it was a bit early in the morning for me to be responding to someone calling me "mate" or "pal" and I read it as "Listen pal..." Perhaps the smiley would have been better.

Are you stating that the Torque Game Engine supports single client, multiple display windows "out-of-the-box"? To achieve this would require only editing of some .cs files? I would certainly be interested in seeing an example as that could save me (and possibly others) quite some time.
#12
04/20/2004 (4:04 pm)
The TGE does NOT have out of the box multi-moniter (multihead) support. It think only DirectX 9.0 really supports this properly, not sure about OpenGL. There's going to have to be some level of custom coding in Torque (and probably any other game engine) to get this going properly. Shouldn't be super hard once you get DX9 going.
#13
04/20/2004 (6:38 pm)
Right. So my understanding of the TGE is validated. It does not support multiple display window output out-of-the-box. To achieve this requires the editing of the appropriate .cc files. DirectX natively understands multiple display architectures, even with the limitations that Microsoft has imposed on the driver manufacturers (DX 9.0b was when they finally enabled driver writers to accelerate on more than one monitor and then only under limited circumstances -- expect a proper fix in 9.0c this Summer). Pre-OpenGL 2.0 implementations do not understand multiple monitor configurations, though it is possible to create multiple display windows obviously, and position them on separate monitors. A properly implemented OpenGL driver will accelerate on both displays, though this will still require editing of TGE. I was just trying to reconcile my knowledge of OpenGL & DirectX (advanced subjects which I happen to teach at college to current & future game developers) with my currently limited knowledge of Torque.
#14
04/20/2004 (6:42 pm)
For the person who asked the very first question. Do you need the world displayed simultaneously on both screens? Or will the GUI be presenting a completely separate visual environment, e.g. buttons and player status?
#15
04/20/2004 (8:11 pm)
On a different but related issue. I am interested in multiscreen support to drive my stereoscopic projection displays. I basically take each output of a dual-headed graphics card and feed them into 2 powerpoint projectors with polarizing filters. (see www.geowall.org for more info).

Anyway, I am able to achieve this in DarkBASIC by creating one double-wide screen and then creating 2 viewports on the one screen. Then I assign two cameras, one to each viewport.

Can this be done in Torque? I don't own Torque but am curious because my students prefer C++ over BASIC.


Also does Torque support off-axis projections? This is needed in order to get correct stereo projections. Unless of course one can get the standard OpenGL stereo support to work. That thread seems to have died without any conclusive results.
#16
04/21/2004 (6:36 am)
The easiest way to do the touch screen thing is to use 2 computers. One good one to render the world, and one crappy one to run the gui.

Then you host a game on the good computer and connect to it with the crappy one. It could probably be done entirely in script.


The stereoscopic view thing would almost certianly require code that i dont understand. You could do it with 2 machines over the network with no code modification, but there would always be lag between the 2 that would probably make you vomit.
#17
04/21/2004 (8:39 am)
To ONZ:
Seems like we're doing the same kind of thing... yes the world will be on one screen and the GUI on the other, with minimal or no animation, just tool buttons and player status

The touch screen and two screen problem doesn't seem to be too bad, I've found drivers and control panels to just work it through Windows for now.

I haven't implemented it yet, since I'm still building the GUI

Jason's suggestion/question about two viewports is my question at this time... How can I run a gui in a separate viewport from the mission screen?

I may ultimately go two the two computer option, just trying this one out for now to avoid the networking/scripting hassels

Thanks for the help so far... I'll keep you up to date
#18
04/21/2004 (9:01 am)
Since this topic kinda of interests me here's some tests:

D3D 9.0b app, 100% on Display 1, 33% on Display 2 (open on one window dragged to other).

Torque (Dark Horizons Lore): Windowed mode, no change in fps no matter where the window is located. Screen 1 or 2, or across the border.

So if I had to guess it'll be ok in fullscreen (Lore doesn't allow you to set the required 'fullscreen' res). If someone could try this fullscreen with a torque demo that would be ace (or tell me where the res restrictions are).

I would be very suprised if Lore has had it's code modified to anticipate this use.
#19
04/21/2004 (9:15 am)
Another advantage of using multiple computers is upgrading. If you do it on 1 machine and then want to upgrade the video card, you'll have to get one with dual head support. Thats not really a problem since most cards support dual head these days but every one i've seen does it slightly differently so things might get screwed up.
#20
04/22/2004 (1:29 pm)
@Gareth Davies: I'm going to assume your graphics card drivers are 100% OpenGL compatible. The drop in performance is simply the way DirectX 9.0b works on your card. 9.0c may/may not fix this depending on whether the "fix" makes it in to the final build.
Page «Previous 1 2