Hi list,
I've been working with the Croquet SDK v1.0 and Cobalt v0.01 builds for use in the Canberra Institute of Technology. Because we are collaborating over multiple network segments and over the Internet with another Institute we have a need to deploy a Croquet server in our DMZ. I have followed the examples in the '06.04.14 Croquet Programming 1.0B.pdf' file from the Croquet SDK build to develop the router and participant scripts. I'm currently stuck trying to update the participant script to use the new CroquetParticipantWithMenu class. Running the script in the CroquetSDK build generates errors on Mouse Enter events and locks up the VM. Opening the script in the Cobalt build connects to the router and opens the island but nothing happens unless I click the mouse on the squeak desktop. Every time I click on the desktop the Croquet window updates. I know it's connected to the router and receiving updates because I can have another participant walk in front of my avatar and next time I click on the desktop I can see the other participant. For further info on my current setup see http://eduversal-studios.wikispaces.com/CIT Any tips on how to initialise the participant correctly would be greatly appreciated. Here is my current participantwithmenu.st script: participant := CroquetParticipantWithMenu new. participant setup. harness := participant harness. participant position: 50@50. address := '161.50.19.254'. port := 8080. id := TObjectID readHexFrom: '35396f525945454344427a696f436c4c'. controller := TSimpleController new. controller connectTo: address port: port sessionID: id. p := controller login: 'guest' password: 'guest'. p wait. "until connected" p := controller join. "receive messages" p wait. "until joined" p := controller sync. "request replicated state" p wait. "until sync-ed" controller install: p result. island := controller island. controller beServer. controller heartbeat: 20. harness addController: controller. entry := controller island future at: #masterSpace. pc := entry future postcard. pc whenResolved:[ harness addIsland: island postcard: pc value. sync := harness viewPortal future postcardLink: pc value. sync whenResolved:[ harness startRender. participant openInWorld. ]. "ready to render" ]. -- Adam Thomas. ----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
I think you need a heart-beat. Check out this thread . . .
http://www.nabble.com/basic-tea-time-questions-tt9647734.html#a9649151
|
In my experience, the stepping behavior also happens when I put a break in the code and the heartbeats get "backlogged".
|
In reply to this post by Patrick Shouse
> -----Original Message-----
> From: pshouse [mailto:[hidden email]] > Sent: Monday, 8 September 2008 1:06 PM > To: [hidden email] > Subject: Re: [croquet-dev] Problems with creating a > CroquetPartipiantWithMenu > > > I think you need a heart-beat. Check out this thread . . . > > http://www.nabble.com/basic-tea-time-questions-tt9647734.html#a9649151 Isn't that what the setting heartbeat in the controller is supposed to do? > > > Thomas, Adam wrote: > > > > Hi list, > > > > I've been working with the Croquet SDK v1.0 and Cobalt v0.01 builds > > for use in the Canberra Institute of Technology. Because we are > > collaborating over multiple network segments and over the Internet > > with another Institute we have a need to deploy a Croquet > server in our DMZ. > > I have followed the examples in the '06.04.14 Croquet Programming > > 1.0B.pdf' file from the Croquet SDK build to develop the router and > > participant scripts. > > > > I'm currently stuck trying to update the participant script > to use the > > new CroquetParticipantWithMenu class. Running the script in the > > CroquetSDK build generates errors on Mouse Enter events and > locks up > > the VM. Opening the script in the Cobalt build connects to > the router > > and opens the island but nothing happens unless I click the > mouse on > > the squeak desktop. Every time I click on the desktop the Croquet > > window updates. I know it's connected to the router and receiving > > updates because I can have another participant walk in front of my > > avatar and next time I click on the desktop I can see the > other participant. > > > > For further info on my current setup see > > http://eduversal-studios.wikispaces.com/CIT > > > > Any tips on how to initialise the participant correctly would be > > greatly appreciated. > > > > Here is my current participantwithmenu.st script: > > > > participant := CroquetParticipantWithMenu new. > > participant setup. > > harness := participant harness. > > > > participant position: 50@50. > > > > address := '161.50.19.254'. > > port := 8080. > > id := TObjectID readHexFrom: '35396f525945454344427a696f436c4c'. > > > > controller := TSimpleController new. > > controller connectTo: address port: port sessionID: id. > > p := controller login: 'guest' password: 'guest'. > > p wait. "until connected" > > p := controller join. "receive messages" > > p wait. "until joined" > > p := controller sync. "request replicated state" > > p wait. "until sync-ed" > > > > controller install: p result. > > island := controller island. > > > > controller beServer. > > controller heartbeat: 20. > > harness addController: controller. > > > > entry := controller island future at: #masterSpace. > > pc := entry future postcard. > > > > pc whenResolved:[ > > harness addIsland: island postcard: pc value. > > sync := harness viewPortal future postcardLink: pc value. > > sync whenResolved:[ > > harness startRender. > > participant openInWorld. > > ]. "ready to render" > > ]. > > > > -- > > Adam Thomas. > > > > > ---------------------------------------------------------------------- > > - This email, and any attachments, may be confidential and also > > privileged. > > If you are not the intended recipient, please notify the sender and > > delete all copies of this transmission along with any > attachments immediately. > > You should not copy or use it for any purpose, nor disclose its > > contents to any other person. > > > ---------------------------------------------------------------------- > > - > > > > > > -- > View this message in context: > http://www.nabble.com/Problems-with-creating-a-CroquetPartipia > Sent from the Croquet - Dev mailing list archive at Nabble.com. > > ----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
In reply to this post by Thomas, Adam
Have you tried hitting Alt-. A couple times?
What error do you get? Darius On 9/7/08, Thomas, Adam <[hidden email]> wrote: > Hi list, > > I've been working with the Croquet SDK v1.0 and Cobalt v0.01 builds for > use in the Canberra Institute of Technology. Because we are > collaborating over multiple network segments and over the Internet with > another Institute we have a need to deploy a Croquet server in our DMZ. > I have followed the examples in the '06.04.14 Croquet Programming > 1.0B.pdf' file from the Croquet SDK build to develop the router and > participant scripts. > > I'm currently stuck trying to update the participant script to use the > new CroquetParticipantWithMenu class. Running the script in the > CroquetSDK build generates errors on Mouse Enter events and locks up the > VM. Opening the script in the Cobalt build connects to the router and > opens the island but nothing happens unless I click the mouse on the > squeak desktop. Every time I click on the desktop the Croquet window > updates. I know it's connected to the router and receiving updates > because I can have another participant walk in front of my avatar and > next time I click on the desktop I can see the other participant. > > For further info on my current setup see > http://eduversal-studios.wikispaces.com/CIT > > Any tips on how to initialise the participant correctly would be greatly > appreciated. > > Here is my current participantwithmenu.st script: > > participant := CroquetParticipantWithMenu new. > participant setup. > harness := participant harness. > > participant position: 50@50. > > address := '161.50.19.254'. > port := 8080. > id := TObjectID readHexFrom: '35396f525945454344427a696f436c4c'. > > controller := TSimpleController new. > controller connectTo: address port: port sessionID: id. > p := controller login: 'guest' password: 'guest'. > p wait. "until connected" > p := controller join. "receive messages" > p wait. "until joined" > p := controller sync. "request replicated state" > p wait. "until sync-ed" > > controller install: p result. > island := controller island. > > controller beServer. > controller heartbeat: 20. > harness addController: controller. > > entry := controller island future at: #masterSpace. > pc := entry future postcard. > > pc whenResolved:[ > harness addIsland: island postcard: pc value. > sync := harness viewPortal future postcardLink: pc value. > sync whenResolved:[ > harness startRender. > participant openInWorld. > ]. "ready to render" > ]. > > -- > Adam Thomas. > > ----------------------------------------------------------------------- > This email, and any attachments, may be confidential and also privileged. If > you are not the intended recipient, please notify the sender and delete all > copies of this transmission along with any attachments immediately. You > should not copy or use it for any purpose, nor disclose its contents to any > other person. > ----------------------------------------------------------------------- > |
Hi Darius,
I belive this is the info you are after. The procces to get this was to run the participant script. Wait untill I thought it was connected press 'Alt+.' twice. Then select 'Mail out bug report' option in the 'User Interupt' window's menu. 11 September 2008 10:06:20 am VM: Win32 - a SmalltalkImage Image: Croquet1.0beta [latest update: #2] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir C:\Documents and Settings\Adam Thomas\My Documents\cobalt-base-current-build-20080703 Trusted Dir C:\Documents and Settings\Adam Thomas\My Documents\cobalt-base-current-build-20080703\Adam Thomas Untrusted Dir C:\My Squeak\Adam Thomas EventSensor>>processEvent: Receiver: an EventSensor Arguments and temporary variables: evt: #(2 239184138 46 0 8 0 0 0) type: 2 a: nil Receiver's instance variables: mouseButtons: 0 mousePosition: 584@545 keyboardBuffer: a SharedQueue(0) interruptKey: 2094 interruptSemaphore: a Semaphore(a Process in Semaphore>>wait) eventQueue: a SharedQueue(0) inputSemaphore: a Semaphore() lastEventPoll: 239225459 hasInputSemaphore: false EventSensor>>fetchMoreEvents Receiver: an EventSensor Arguments and temporary variables: eventBuffer: #(2 239184138 46 0 8 0 0 0) type: 2 Receiver's instance variables: mouseButtons: 0 mousePosition: 584@545 keyboardBuffer: a SharedQueue(0) interruptKey: 2094 interruptSemaphore: a Semaphore(a Process in Semaphore>>wait) eventQueue: a SharedQueue(0) inputSemaphore: a Semaphore() lastEventPoll: 239225459 hasInputSemaphore: false EventSensor>>nextEventFromQueue Receiver: an EventSensor Arguments and temporary variables: Receiver's instance variables: mouseButtons: 0 mousePosition: 584@545 keyboardBuffer: a SharedQueue(0) interruptKey: 2094 interruptSemaphore: a Semaphore(a Process in Semaphore>>wait) eventQueue: a SharedQueue(0) inputSemaphore: a Semaphore() lastEventPoll: 239225459 hasInputSemaphore: false EventSensor>>nextEvent Receiver: an EventSensor Arguments and temporary variables: Receiver's instance variables: mouseButtons: 0 mousePosition: 584@545 keyboardBuffer: a SharedQueue(0) interruptKey: 2094 interruptSemaphore: a Semaphore(a Process in Semaphore>>wait) eventQueue: a SharedQueue(0) inputSemaphore: a Semaphore() lastEventPoll: 239225459 hasInputSemaphore: false --- The full stack --- EventSensor>>processEvent: EventSensor>>fetchMoreEvents EventSensor>>nextEventFromQueue EventSensor>>nextEvent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. capturingGesture := capturingGest...]} Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]} [] in BlockContext>>newProcess {[self value. Processor terminateActive]} > -----Original Message----- > From: Darius Clarke [mailto:[hidden email]] > Sent: Thursday, 11 September 2008 4:10 AM > To: [hidden email]; Thomas, Adam > Subject: Re: [croquet-dev] Problems with creating a > CroquetPartipiantWithMenu > > Have you tried hitting Alt-. A couple times? > What error do you get? > > Darius > > > On 9/7/08, Thomas, Adam <[hidden email]> wrote: > > Hi list, > > > > I've been working with the Croquet SDK v1.0 and Cobalt v0.01 builds > > for use in the Canberra Institute of Technology. Because we are > > collaborating over multiple network segments and over the Internet > > with another Institute we have a need to deploy a Croquet > server in our DMZ. > > I have followed the examples in the '06.04.14 Croquet Programming > > 1.0B.pdf' file from the Croquet SDK build to develop the router and > > participant scripts. > > > > I'm currently stuck trying to update the participant script > to use the > > new CroquetParticipantWithMenu class. Running the script in the > > CroquetSDK build generates errors on Mouse Enter events and > locks up > > the VM. Opening the script in the Cobalt build connects to > the router > > and opens the island but nothing happens unless I click the > mouse on > > the squeak desktop. Every time I click on the desktop the Croquet > > window updates. I know it's connected to the router and receiving > > updates because I can have another participant walk in front of my > > avatar and next time I click on the desktop I can see the > other participant. > > > > For further info on my current setup see > > http://eduversal-studios.wikispaces.com/CIT > > > > Any tips on how to initialise the participant correctly would be > > greatly appreciated. > > > > Here is my current participantwithmenu.st script: > > > > participant := CroquetParticipantWithMenu new. > > participant setup. > > harness := participant harness. > > > > participant position: 50@50. > > > > address := '161.50.19.254'. > > port := 8080. > > id := TObjectID readHexFrom: '35396f525945454344427a696f436c4c'. > > > > controller := TSimpleController new. > > controller connectTo: address port: port sessionID: id. > > p := controller login: 'guest' password: 'guest'. > > p wait. "until connected" > > p := controller join. "receive messages" > > p wait. "until joined" > > p := controller sync. "request replicated state" > > p wait. "until sync-ed" > > > > controller install: p result. > > island := controller island. > > > > controller beServer. > > controller heartbeat: 20. > > harness addController: controller. > > > > entry := controller island future at: #masterSpace. > > pc := entry future postcard. > > > > pc whenResolved:[ > > harness addIsland: island postcard: pc value. > > sync := harness viewPortal future postcardLink: pc value. > > sync whenResolved:[ > > harness startRender. > > participant openInWorld. > > ]. "ready to render" > > ]. > > > > -- > > Adam Thomas. > > > > > ---------------------------------------------------------------------- > > - This email, and any attachments, may be confidential and also > > privileged. If you are not the intended recipient, please > notify the > > sender and delete all copies of this transmission along with any > > attachments immediately. You should not copy or use it for any > > purpose, nor disclose its contents to any other person. > > > ---------------------------------------------------------------------- > > - > > > ----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
Hi Adam,
First, can I bother you to only use the Cobalt version? That's what all of us use here now, since it has several fixes and will help us to diagnose your problem.
I'm still researching it. Cheers, Darius |
Hi Darius,
Sure, I'll stick to running tests from my
cobalt-base-current-build-20080703. Despite what the dump
says the image squeak ran was cobalt.1.image unless I have
_really_broken it.
I
just did a fresh unzip of the cobalt zip and the email bug report still showed
Croquet0.1beta so I'm guessing there is a version string it the image file that
needs updating.
A
quick grep confirms it:
cobalt-base-current-build-20080703$ grep Croquet1.0beta cobalt.1.image
Binary file cobalt.1.image matches Further to my origonal problem, I've noticed that the
simulation will run if I 'middle mouse' drag a window behind the Croquet window
(this is within squeak). It doesn't work if I'm just moving the windows
outline.
Thanks
Adam.
----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
Can we start with the simplest case and work up from there?
- Let's just get two worlds to hook-up peer to peer. Also, is there a reason you run the router as a separate process from the persistent client?
Cheers, Darius |
And, yes, the version string probably needs updating. :-)
|
In reply to this post by Darius Clarke
Hi Darius
Running the two copies of cobalt on either one of my machines works fine.
I can open the worlds by dragging the cobalt icon and then (on one
client) open a portal to the other world using the 'place>link
to>portal to' menu option.
If I try and connect my Windows machine to me Linux machine using the
'portal to', I can create the portal but the Linux client locks up after one
frame. I can't even create a portal to the Windows machine from my Linux
machine. That's another oddity I hope to work out but isn't currently a
priority.
If I run the router and the participant on my Windows machine I get the
stepping problem.
As far as running the router and the persistant client as separate
procceses go:
- there was slightly more documentiation (an newsgroup post) on
doing it this way
- I can start and stop the persistant client without dropping the
router
- That bit is currently working and I'm not at a point where
I feel like 'fixing' it.
--
Adam.
From: Darius Clarke
[mailto:[hidden email]]
Sent: Thursday, 11 September 2008 2:33 PM To: [hidden email]; Thomas, Adam Subject: Re: [croquet-dev] Problems with creating a CroquetPartipiantWithMenu
----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
Ok. I'll try to simulate this with VMWare copy of Ubuntu on my Windows PC.
When you say the independent router setup is working, does that mean it all works in Windows ... or another configuration?
I didn't mean to sound critical. There could be reasons like firewall and leveraging certain servers for optimizing CPU, etc. Does Linux to Linux work w/o locking on the first frame?
Are you referring to Andreas' Jun 2006 posts? Cheers, Darius _____________ On Wed, Sep 10, 2008 at 10:00 PM, Thomas, Adam <[hidden email]> wrote:
|
Hey,
If I create an instance of CroquetParticipant rather than
CroquetParticipantWithMenu I can connect to the router from various machines
simultaneously and they all work first time. We have had a session with my Linux
and Windows machines and even another Windows machine running on a separate
campus (over our fibre based WAN) all connected and walking around in
SimpleWorld.
The hardware on the router is very capable (duel core 2.8GHz Pentium
D, 1GB RAM) . It's the same as what's running my Linux machine which can run two
participants with no hassle.
Running two instances on the same Linux machine and conecting via 'portal
to' works as expected.
--
Adam
----------------------------------------------------------------------- This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. ----------------------------------------------------------------------- |
Hi,
Since the persistent participant is not running a harness, perhaps CroquetParticipantWithMenu has a call to the non-existent harness which CroquetParticipant might not. Could you check for that? I'll check as well. Cheers, Darius
|
Hi Adam,
I've run your setup purely in Windows with separate router, persistent client, and CroquetPartipiantWithMenu participant client all in Simple World. This seems to work in this setup. So, my original guess about a harness call was wrong.
Does CroquetPartipiantWithMenu participant client work for you in a pure Windows setup?
If so, I'll need to try it in Linux next.
Cheers,
Darius |
Hi Adam,
Ok. I've experienced the jerky screen refresh problem on a second participant client in the SimpleWorld. When one client was CroquetPartipiantWithMenu and one was CroquetPartipiant, they worked smoothly together.
I'm looking at this some more.
Cheers,
Darius |
I'm out of steam tonight.
I'll look at it tomorrow. |
In reply to this post by Thomas, Adam
Hey there,
I've been talking with Darius about your problem, and it's got me confused and I have no time at the moment to deconfuse myself. I can see what you describe. So I tried a different approach where I started up a cobalt session, got the session id and port and pasted those into my second image, where I ran your client-menu script. After a delay it worked just fine. I then did the same process starting with a SimpleDemoWorld demo and got the original broken behavior. I'm not terribly surprised that the demos aren't working that well in cobalt, we're changing things around and they're going to be replaced with newer demos that are based on the cobalt browser app. Maybe you could try your demo from starting a Cobalt session hacked up to use a fixed port and sessionId? I'm going to have to spend some time seeing what s going on, but I'll observe that the CroquetParticipantWithMenu approaches have somewhat more complex startups than the CroquetParticipant ones and I can easily see that tripping it up. Cheers, -- John Thomas, Adam wrote: > Hi list, > > I've been working with the Croquet SDK v1.0 and Cobalt v0.01 builds for > use in the Canberra Institute of Technology. Because we are > collaborating over multiple network segments and over the Internet with > another Institute we have a need to deploy a Croquet server in our DMZ. > I have followed the examples in the '06.04.14 Croquet Programming > 1.0B.pdf' file from the Croquet SDK build to develop the router and > participant scripts. > > I'm currently stuck trying to update the participant script to use the > new CroquetParticipantWithMenu class. Running the script in the > CroquetSDK build generates errors on Mouse Enter events and locks up the > VM. Opening the script in the Cobalt build connects to the router and > opens the island but nothing happens unless I click the mouse on the > squeak desktop. Every time I click on the desktop the Croquet window > updates. I know it's connected to the router and receiving updates > because I can have another participant walk in front of my avatar and > next time I click on the desktop I can see the other participant. > > For further info on my current setup see > http://eduversal-studios.wikispaces.com/CIT > > Any tips on how to initialise the participant correctly would be greatly > appreciated. > > Here is my current participantwithmenu.st script: > > participant := CroquetParticipantWithMenu new. > participant setup. > harness := participant harness. > > participant position: 50@50. > > address := '161.50.19.254'. > port := 8080. > id := TObjectID readHexFrom: '35396f525945454344427a696f436c4c'. > > controller := TSimpleController new. > controller connectTo: address port: port sessionID: id. > p := controller login: 'guest' password: 'guest'. > p wait. "until connected" > p := controller join. "receive messages" > p wait. "until joined" > p := controller sync. "request replicated state" > p wait. "until sync-ed" > > controller install: p result. > island := controller island. > > controller beServer. > controller heartbeat: 20. > harness addController: controller. > > entry := controller island future at: #masterSpace. > pc := entry future postcard. > > pc whenResolved:[ > harness addIsland: island postcard: pc value. > sync := harness viewPortal future postcardLink: pc value. > sync whenResolved:[ > harness startRender. > participant openInWorld. > ]. "ready to render" > ]. > > -- > Adam Thomas. > > ----------------------------------------------------------------------- > This email, and any attachments, may be confidential and also privileged. If you are not the intended recipient, please notify the sender and delete all copies of this transmission along with any attachments immediately. You should not copy or use it for any purpose, nor disclose its contents to any other person. > ----------------------------------------------------------------------- > > -- John Dougan [hidden email] |
In reply to this post by Darius Clarke
On Wed, Sep 10, 2008 at 09:35:54PM -0700, Darius Clarke wrote:
> And, yes, the version string probably needs updating. :-) SystemVersion newVersion: 'Cobalt0.1alpha' At least if you use the squeak version naming convention -- Matthew Fulmer -- http://mtfulmer.wordpress.com/ |
Free forum by Nabble | Edit this page |