3dvisuals dude's Flying Saucer w/HUD

About Truespace Archives

These pages are a copy of the official truespace forums prior to their removal somewhere around 2011.

They are retained here for archive purposes only.

3dvisuals dude's Flying Saucer w/HUD // Scriptorium

1  2  3  4  5  6  |  

Post by frootee // Sep 20, 2007, 8:07am

frootee
Total Posts: 2667
pic
But, we can use the mouse in shared space to select objects, and manipulate them: rotate, translate, scale. Same applies for our view.


I tested the mouse listener with a timer and the saucer last night. The listener worked correctly. The goal was to connect the LMB connector on the mouse listener to the Active connector on the timer. When the LMB was pushed down, the LMB connector was set to 1, which activated the timer. When the timer was activated, the frame output was connected to a binary op for scaling purposes. The output of the binary op was connected to the tx of the saucer input matrix.


This caused the following to happen:


On LMB down, the timer was activated, and the saucer moved continuously. On my PC, when I released the LMB, the LMB connector was set to 0, which then set the Active input on the timer to 0, and the saucer stopped moving.


On the server, however, this did not happen. Although the timer Active input was Off, the timer continued ticking, and the saucer continued moving. The only way to stop this was to disconnect the mouse listener from the timer, then disable the timer manually. The mouse listener was transmitting the correct data; the timer was not interpreting that data correctly.

Post by 3dvisuals dude // Sep 20, 2007, 8:13am

3dvisuals dude
Total Posts: 1703
pic
Yes but....

Mouse related scripts involving network user mice are different from scripts involving the actual polling of hardware mice such as a mouse listening device I would think, just as joystick software polls the hardware it is used on so would a mouse listening device.

Mark


But, we can use the mouse in shared space to select objects, and manipulate them: rotate, translate, scale. Same applies for our view.

I tested the mouse listener with a timer and the saucer last night. The listener worked correctly. The goal was to connect the LMB connector on the mouse listener to the Active connector on the timer. When the LMB was pushed down, the LMB connector was set to 1, which activated the timer. When the timer was activated, the frame output was connected to a binary op for scaling purposes. The output of the binary op was connected to the tx of the saucer input matrix.

This caused the following to happen:

On LMB down, the timer was activated, and the saucer moved continuously. On my PC, when I released the LMB, the LMB connector was set to 0, which then set the Active input on the timer to 0, and the saucer stopped moving.

On the server, however, this did not happen. Although the timer Active input was Off, the timer continued ticking, and the saucer continued moving. The only way to stop this was to disconnect the mouse listener from the timer, then disable the timer manually. The mouse listener was transmitting the correct data; the timer was not interpreting that data correctly.

Post by Wigand // Sep 20, 2007, 8:20am

Wigand
Total Posts: 462
pic
Thank you, now I understand :)


I do not know if this could be the reason, I must think about that...

Post by 3dvisuals dude // Sep 20, 2007, 8:30am

3dvisuals dude
Total Posts: 1703
pic
Thank you, now I understand :)

I do not know if this could be the reason, I must think about that...

I'm not sure either Wigand. It is a possible reason or may contribute to the reason. Just seems very likely to me but I may be completely wrong.

Perhaps Norm or one of the guys at the Server could test this theory out for us by installing your "joy'dll" to the actual server as well as a joystick or mouse and then attempt to run the script from a terminal or networked computer. Then we would know for sure, but in the meantime this will remain a possibility I think.

Your script works fine offline just as Frootee's does, so it may well be that the server simply doesn't have the ability to poll devices or dlls which it does not have installed, and it may be attempting to do that before passing the polling to the network users external devices.

Again though, I could be completely wrong and we will need someone with a greater understanding of the actual Caligari servers to resolve whether this could be the entire problem you and Frootee are encountering here on this.

- Mark / 3dvisuals dude

Post by Wigand // Sep 20, 2007, 9:20am

Wigand
Total Posts: 462
pic
The DLL should run on the local machine because there is the joystick hardware.

The information of the saucers position must be send to the server.

The server has to send the position to all other users.

The local machine moves the saucer on the local screen.


Is that right?


The server only has to send the information to other users.

The objects too. But here is a problem. Every user now has these

objects in their LE and the server should only show the changing

of the parameters in the LEs. But only on my system is the dll and the

joystick. The joyread object is calling the dll but this should only

work on my system. On others only the parameters should be shown.


I do not believe that the server needs the hardware of a keyboard, mouse or

joystick. It is only a distributor of information.


We need to know where the interface is. I think there are some network objects in TS which are used to send the information.


Maybe it is possible to have a local LE open, which sends the final

joystick information to the shared space LE?

Post by frootee // Sep 20, 2007, 9:37am

frootee
Total Posts: 2667
pic
Wigand,


the Network information is at top level of the scene graph in the LE, in a node called...


Network


HTH!


:)


Froo

Post by 3dvisuals dude // Sep 20, 2007, 9:41am

3dvisuals dude
Total Posts: 1703
pic
The DLL should run on the local machine because there is the joystick hardware.
The information of the saucers position must be send to the server.
The server has to send the position to all other users.
The local machine moves the saucer on the local screen.

Is that right?

The server only has to send the information to other users.
The objects too. But here is a problem. Every user now has these
objects in their LE and the server should only show the changing
of the parameters in the LEs. But only on my system is the dll and the
joystick. The joyread object is calling the dll but this should only
work on my system. On others only the parameters should be shown.

I do not believe that the server needs the hardware of a keyboard, mouse or
joystick. It is only a distributor of information.

We need to know where the interface is. I think there are some network objects in TS which are used to send the information.

Maybe it is possible to have a local LE open, which sends the final
joystick information to the shared space LE?

Hmmm...

I think Norm may have addressed the problem here in another thread at this link:

http://forums1.caligari.com/truespace/showpost.php?p=47754&postcount=32

As he said there:


Only crit I have is that any script that is calling for such a peice of hardware, should first check to see if one exists. If statement to handle possible no-joystick found branch.

Even though I have no joystick, I still wanted to check it out. Doing so gives error in script:/Project/ufo/InitJoystick script at line 10: a=fn.initjoy(1)


This is the same issue I have when I try to run the script while it is on the Server. I also get that same Error Report Alert which Norm gets.

So based on that fact, when you said here above:


But only on my system is the dll and the
joystick. The joyread object is calling the dll but this should only
work on my system.


The script does call (poll) the dll on my system and Norm's system as well, even though we do not have the dll present on our systems, and the server itself may also be getting similar error reports because it is also getting called (polled) directly for a dll it also does not have installed. See what I mean?

- Mark / 3dvisuals dude

Post by Emma // Sep 20, 2007, 9:44am

Emma
Total Posts: 344
pic
Would agree with what Wigand says, there is an interactive comunication between the server (shared space) and the client ( the user with the joystick)

So what should happen is indeed that the local DLL should pass on comunicative data between server / client. There should be no difference if mouse or joystick. Request comes from server, answer comes from client.


I'm having trouble to get the PC which is connected to internet when I start truePlay. This happens since I installed a new graphics card, get an nv4_disp.dll crash:( whenever DX9 seems to be involved. I'm trying to get this fixed so I can try shared space.

Post by Wigand // Sep 20, 2007, 9:51am

Wigand
Total Posts: 462
pic
It's a pity that I am not so familiar with all the nodes of LE. :o


Now the question is:


Would it be possible to poll my joystick on my system and send only the

values to an object which is in the shared space?

We do not need my joystick scripts on every users LE.

Everybody needs his own. The values must be send like

other information to the server.

How could that be done?

Post by 3dvisuals dude // Sep 20, 2007, 10:02am

3dvisuals dude
Total Posts: 1703
pic
Would agree with what Wigand says, there is an interactive comunication between the server (shared space) and the client ( the user with the joystick)
So what should happen is indeed that the local DLL should pass on comunicative data between server / client. There should be no difference if mouse or joystick. Request comes from server, answer comes from client.

I'm having trouble to get the PC which is connected to internet when I start truePlay. This happens since I installed a new graphics card, get an nv4_disp.dll crash:( whenever DX9 seems to be involved. I'm trying to get this fixed so I can try shared space.

Yes I agree but...

Request comes from server - then the answer cannot come from client who does not have dll to answer with = Error Alert

Perhaps, as I suggested above, this same thing happens at the server end itself first:

Request comes from script - server cannot answer because server does not have the dll to answer with = Error at the Server = disabled script

That still could be the problem.

- Mark / 3dvisuals dude

Post by frootee // Sep 20, 2007, 10:11am

frootee
Total Posts: 2667
pic
sounds like what you need is a generic interface. You have to split the object (saucer in this case) from the controller (the joystick). So you would have all the components of the saucer encasulated in one object, and the components of your joystick controller (all the scripts) in another object.


The generic interface is the connectors that you export from your joystick controller object, and the connectors you export from the saucer object.


This means that similar functionality occurs in the joystick object for various joystick types; the user may have to fine tune the functionality inside the joystick object. However, the connections between the joystick object and the saucer object do not change. Likewise, the functionality inside the saucer object does not change. Only in the joystick components.

Post by 3dvisuals dude // Sep 20, 2007, 10:21am

3dvisuals dude
Total Posts: 1703
pic
I think that makes sense but....

What Norm stated (I quoted him above with the related post link) still holds true here and should be considered in all this...

If the script does not first check for the presence of the dll before trying to activate it that will always lead to a related error report alert at the network user end who does not posess the prerequisite dll.

If the server also performs the script execution without the prerequisite dll with which to perform it that will similarly always lead to an error at the server level and automatically initiate appropriate action.

To avoid all that perhaps all that is required is what Norm suggested.... a routine in the script which first checks for the presence of the dll before trying to activate it.

Makes sense?

It did to Norm and does to me.:confused:

- Mark / 3dvisuals dude

Post by Norm // Sep 20, 2007, 10:22am

Norm
Total Posts: 862
pic
What is the name of that object Vladimir created. It could be helpful here. .....
..... ah yes here it is. In following library: Activities - My Activities/windmill object.

Check out what Vladimir is trying to show about server and server control vs local control. It may prove helpful.

Post by Wigand // Sep 20, 2007, 10:32am

Wigand
Total Posts: 462
pic
I can move an object in meeting room with my joystick :banana:


But I do not know if there is someone else to see it.


I did the following:


One step above of the meeting room node, I inserted my joystick objects.

I took the owner matrix of my object ( the object is in the meeting room)

and exported it one step above. There I have the ExpandIn of my object.

Then I connected all the joystick stuff together and could move my object.

Post by 3dvisuals dude // Sep 20, 2007, 10:32am

3dvisuals dude
Total Posts: 1703
pic
What is the name of that object Vladimir created. It could be helpful here. .....
..... ah yes here it is. In following library: Activities - My Activities/windmill object.

Check out what Vladimir is trying to show about server and server control vs local control. It may prove helpful.

Outstanding Norm!:banana:

// Name: SSEngine
// Author: Vladimir Sisolak
// Date: February 2006
// Purpose: This object demonstrates how to detect whether your activity is
// running on Server, Client or only in local space.

Thanks!

- Mark / 3dvisuals dude

Post by 3dvisuals dude // Sep 20, 2007, 10:34am

3dvisuals dude
Total Posts: 1703
pic
I can move an object in meeting room with my joystick :banana:

But I do not know if there is someone else to see it.

I did the following:

One step above of the meeting room node, I inserted my joystick objects.
I took the owner matrix of my object ( the object is in the meeting room)
and exported it one step above. There I have the ExpandIn of my object.
Then I connected all the joystick stuff together and could move my object.

That was brilliant!!!!:D

Well done Wigand!!!

- Mark / 3dvisuals dude

Post by Wigand // Sep 20, 2007, 10:37am

Wigand
Total Posts: 462
pic
Is there someone to watch?

Post by frootee // Sep 20, 2007, 10:49am

frootee
Total Posts: 2667
pic
Mark! Git Yerself On Ovar Please! :jumpy:

Post by frootee // Sep 20, 2007, 10:53am

frootee
Total Posts: 2667
pic
Excellent Wigand!


It sounds like this then:


You have your object in the meeting room (ie. in SS)


You have your joystick controller Outside of the meeting room (Not In SS: Maybe on your PC then?)


You have created an interface between the joystick (with data and controls on your PC) and the object in SS.


That may be incorrect but if it works, great! I will have to see that config.


I hope Mark can take some snapshots, or you can by using the PrintScreen button on your keyboard, of the configuration you have.

Post by Wigand // Sep 20, 2007, 10:55am

Wigand
Total Posts: 462
pic
We where three:


trueBlue

3dvisuals dude

Wigand


Result: I was the only one who could see the ball moving.

Sorry :(


More ideas?

Post by frootee // Sep 20, 2007, 11:12am

frootee
Total Posts: 2667
pic
Not yet... we'll have to take a look and brainstorm. Great work though! Almost there now!

Post by trueBlue // Sep 20, 2007, 11:16am

trueBlue
Total Posts: 1761
pic
Ah...so it was a Sphere that you were trying to move. I was looking for an Unidentified Flying Object. :rolleyes:

Post by 3dvisuals dude // Sep 20, 2007, 11:27am

3dvisuals dude
Total Posts: 1703
pic
We where three:

trueBlue
3dvisuals dude
Wigand

Result: I was the only one who could see the ball moving.
Sorry :(

More ideas?

as far as new ideas I only have what Norm suggested above:


that object Vladimir created. It could be helpful here
In following library: Activities - My Activities/windmill object
Check out what Vladimir is trying to show about server and server control vs local control. It may prove helpful.


I looked at that script and I agree, it may isolate the source of this issue completely and possibly provide a solution as well. Here's the comment header from the script:

// Name: SSEngine
// Author: Vladimir Sisolak
// Date: February 2006
// Purpose: This object demonstrates how to detect whether your activity is
// running on Server, Client or only in local space.

I hope that provides you with an easy solution, we would all like to be able to use this joystick capability online as much as you do!

Thanks for all the work you're putting into all this Wigand, I think you may have the solution very soon now.:)

- Mark / 3dvisuals dude

Post by 3dvisuals dude // Sep 20, 2007, 11:28am

3dvisuals dude
Total Posts: 1703
pic
Not yet... we'll have to take a look and brainstorm. Great work though! Almost there now!

We're getting so close to success on this one now I can taste it already!:banana:

This will be a blast!!!!!!!!!

- 3dvisuals dude

Post by 3dvisuals dude // Sep 20, 2007, 11:30am

3dvisuals dude
Total Posts: 1703
pic
Ah...so it was a Sphere that you were trying to move. I was looking for an Unidentified Flying Object. :rolleyes:

LOL...

Yeah I was looking all over in the LE myself for the UFO too! I guess he just wanted to do a fast test so he used a sphere instead. Then when he left he deleted all the scripts so I'm not sure exactly how he accomplished what he did... it sure was very smart though! At least it worked for him!

- Mark / 3dvisuals dude

Post by frootee // Sep 20, 2007, 11:35am

frootee
Total Posts: 2667
pic
We're getting so close to success on this one now I can taste it already!:banana:



This will be a blast!!!!!!!!!



- 3dvisuals dude


Does it Taste Like Chicken? :D

Post by 3dvisuals dude // Sep 20, 2007, 11:48am

3dvisuals dude
Total Posts: 1703
pic
Does it Taste Like Chicken? :D

LOL - Doesn't everything?:confused:

Post by 3dvisuals dude // Sep 20, 2007, 11:59am

3dvisuals dude
Total Posts: 1703
pic
I'm having trouble to get the PC which is connected to internet when I start truePlay. This happens since I installed a new graphics card, get an nv4_disp.dll crash:( whenever DX9 seems to be involved. I'm trying to get this fixed so I can try shared space.

Hi Emma,

I'm sure you would have already updated the Nvidea video driver which came with the new graphics board, so hopefully the Tech Support guys here will have a specific solution for you on this one fast.

We need you in shared space.:)

- Mark / 3dvisuals dude

Post by 3dvisuals dude // Sep 20, 2007, 12:10pm

3dvisuals dude
Total Posts: 1703
pic
Emma - I just remembered that the truePlay setup program scans your existing hardware setup and installs itself accordingly based on your hardware and video driver capabilities and versions.

Perhaps you need to uninstall and then re-install truePlay1.3 for it to work now that you have changed cards.

- Mark / 3dvisuals dude

Post by Emma // Sep 21, 2007, 4:44am

Emma
Total Posts: 344
pic
Reinstalled already several times, trueSpace, truePlay, different versions. After running dxdiag I noticed that there seems to be a mix of german/english program modules for DX9. This could be because truePlay tests installation of DX9 and perhaps decides to "correct" one or the other.


So far truePlay crashes as soon as I want to enter any room, but I managed to enter with trueSpace itself SharedSpace yesterday. Will continue today with it.


- the timers don't run when loged in, that is from my point of view a main reason. As soon as I log out the sript starts running.


But first a cup of coffee after work :)
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn