The Croquet SDK 1.0 Beta...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

The Croquet SDK 1.0 Beta...

Andreas.Raab
... is now live at http://www.opencroquet.org

Enjoy!
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Simon Michael
Hip hip hooray!  Welcome   C  R  O   Q   U   E   T   !!!

Thank you Croquet Team, what a gift.

The beta starts up great on this ubuntu breezy gnu/linux laptop except
SimpleDemo (traceback attached). Tips: it takes a few seconds for the red
screen to clear, be more patient than I was. Also be aware: for me it runs
a lot faster when I use the /usr/local/bin/squeak I installed yesterday,
rather than the one under bin/i686-pc-linux-gnu/. squeak -version from both
is identical.

Best,
-Simon

Error: Unable to find function address
20 April 2006 2:45:07 pm

VM: unix - a SmalltalkImage
Image: Croquet1.0beta [latest update: #1]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/simon/squeak/Croquet_SDK_1.0_beta
Trusted Dir /home/simon/squeak/Croquet_SDK_1.0_beta/secure
Untrusted Dir /home/simon/squeak/Croquet_SDK_1.0_beta/My Squeak

ExternalFunction class(Object)>>error:
        Receiver: ExternalFunction
        Arguments and temporary variables:
                aString: 'Unable to find function address'
        Receiver's instance variables:
                superclass: ExternalObject
                methodDict: a MethodDictionary(#argTypes->a CompiledMethod (261) #callingConven...etc...
                format: 136
                instanceVariables: #('flags' 'argTypes')
                organization: ('initialize-release' initialize)
('accessing' argTypes flags mod...etc...
                subclasses: #(ExternalLibraryFunction)
                name: #ExternalFunction
                classPool: a Dictionary(#FFIErrorMessages->a Dictionary(-1->'Callout mechanism ...etc...
                sharedPools: an OrderedCollection(FFIConstants)
                environment: a SystemDictionary(lots of globals)
                category: #'FFI-Kernel'

ExternalFunction class>>externalCallFailed
        Receiver: ExternalFunction
        Arguments and temporary variables:
                errCode: 13
        Receiver's instance variables:
                superclass: ExternalObject
                methodDict: a MethodDictionary(#argTypes->a CompiledMethod (261) #callingConven...etc...
                format: 136
                instanceVariables: #('flags' 'argTypes')
                organization: ('initialize-release' initialize)
('accessing' argTypes flags mod...etc...
                subclasses: #(ExternalLibraryFunction)
                name: #ExternalFunction
                classPool: a Dictionary(#FFIErrorMessages->a Dictionary(-1->'Callout mechanism ...etc...
                sharedPools: an OrderedCollection(FFIConstants)
                environment: a SystemDictionary(lots of globals)
                category: #'FFI-Kernel'

OpenALUnix(Object)>>externalCallFailed
        Receiver: an OpenALUnix
        Arguments and temporary variables:

        Receiver's instance variables:
                handle: nil
                nameManager: an OpenALNameManager

OpenALUnix(OpenAL)>>alcCreateContext:with:
        Receiver: an OpenALUnix
        Arguments and temporary variables:
                device: Error: Unable to find function address
                list: a WordArray(0)
        Receiver's instance variables:
                handle: nil
                nameManager: an OpenALNameManager


--- The full stack ---
ExternalFunction class(Object)>>error:
ExternalFunction class>>externalCallFailed
OpenALUnix(Object)>>externalCallFailed
OpenALUnix(OpenAL)>>alcCreateContext:with:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OpenALUnix(OpenAL)>>createContext
CroquetHarnessWithMenu(OpenALHarness)>>initialize
CroquetHarnessWithMenu>>initialize
CroquetHarnessWithMenu class(Behavior)>>new
SimpleDemoMaster>>setup
[] in SimpleDemoMaster(CroquetParticipant)>>step {[harness   ifNil: [self setup]   ifNotNil: [harness step]]}
BlockContext>>ensure:
SimpleDemoMaster(CroquetParticipant)>>step
SimpleDemoMaster(BFDParticipant)>>step
SimpleDemoMaster(CroquetParticipantWithMenu)>>step
SimpleDemoMaster(Morph)>>stepAt:
StepMessage(MorphicAlarm)>>value:
WorldState>>runLocalStepMethodsIn:
WorldState>>runStepMethodsIn:
PasteUpMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}


Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Simon Michael
PS: I meant to add, for others trying to get oriented: Croquet's unix
squeak vm has mouse buttons 2 & 3 reversed compared to Ian's.


Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Andreas.Raab
In reply to this post by Simon Michael
Regarding your problem, in the README.txt included inside the .zip blob
it says this under the REQUIREMENTS section:
--------------
In order to run applications that use spatialized sound, you must also
install OpenAL.  Recent versions of Macintosh OSX include the OpenAL
libraries as a standard part of the system. PC users may also find that
their sound card came with an OpenAL driver as well. If you need to
install OpenAL, download the installer for your system from
http://openal.org/downloads.html.

Cheers,
   - Andreas

Simon Michael wrote:

> Hip hip hooray!  Welcome   C  R  O   Q   U   E   T   !!!
>
> Thank you Croquet Team, what a gift.
>
> The beta starts up great on this ubuntu breezy gnu/linux laptop except
> SimpleDemo (traceback attached). Tips: it takes a few seconds for the
> red screen to clear, be more patient than I was. Also be aware: for me
> it runs a lot faster when I use the /usr/local/bin/squeak I installed
> yesterday, rather than the one under bin/i686-pc-linux-gnu/. squeak
> -version from both is identical.
>
> Best,
> -Simon
>
>
> ------------------------------------------------------------------------
>

Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Yanni Chiu
In reply to this post by Andreas.Raab
Andreas Raab wrote:
> ... is now live at http://www.opencroquet.org

Finally, I got it to run on WinXP Home.
I kept getting a walkback about glMatrixMode
external call failed. When I tried Croquet 0.3
again, it worked just fine.

I hunted around for opengl32.dll, but where to install it?
I tried it in WINDOWS/system/ and in the bin/ where the
new Croquet.exe resided. But those places didn't work.

Finally, I tried moving the Croquet.exe and all the .dll's
(including the opengl32.dll) into the same directory as
the image/changes files. Then it worked. Now I'm a little
dizzy, since the avatar seems to move a little faster.

There was a slight hiccup when taking apart the coloured
cube. One or two of the blocks were thrown off into the
distance, but all the other blocks stayed the same distance
away. Also, it seems you cannot hold a block, and move at
the same time.


Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Simon Michael
In reply to this post by Andreas.Raab
Thanks. Tip for ubuntu/debian users: install the libopenal-dev package, not
just libopenal0. You should hear spatial boat engine sound in the
SailingDemo (cool!).


Reply | Threaded
Open this post in threaded view
|

Seems slower. =\

Alan Grimes
In reply to this post by Simon Michael
I'm looking at my network meeter (on linux) and Croquet seems to be
generating 40k/sec of traffic on the loopback interface and this seems
to be responsible for a large part of the slowdown...

One thing I find annoying that I hope will get taken care of is the darn
translation: method on the matrix4x4 class...

Have a look at methods

translation:
and
setTranslation:

Study what they do and how they do them....

I suggested this change many months ago. =(


--
Don't let your schoolwork get in the way of your learning.

http://users.rcn.com/alangrimes/

Reply | Threaded
Open this post in threaded view
|

Re: Seems slower. =\

Tom Phoenix
On 4/20/06, Alan Grimes <[hidden email]> wrote:

> I suggested this change many months ago. =(

What's its URL on Mantis?

--Tom Phoenix

Reply | Threaded
Open this post in threaded view
|

Re: Seems slower. =\

Andreas.Raab
In reply to this post by Alan Grimes
Alan Grimes wrote:
> I'm looking at my network meeter (on linux) and Croquet seems to be
> generating 40k/sec of traffic on the loopback interface and this seems
> to be responsible for a large part of the slowdown...

While you're running an environment or just when it's sitting there? If
the first, that seems kinda normal (though 40k/sec is somewhat
excessive; are you sure it's that much?) but unless you're running a
Croquet environment there shouldn't be any network traffic.

> One thing I find annoying that I hope will get taken care of is the darn
> translation: method on the matrix4x4 class...
>
> Have a look at methods
>
> translation:
> and
> setTranslation:
>
> Study what they do and how they do them....
>
> I suggested this change many months ago. =(

I'm not sure what your point is. Having looked at them quite carefully
my only observation is that one uses a cascade and the other one
doesn't. Is there a problem with one of them? Other than that it's three
lines of duplicated code which may be unfortunate but I'm sure there is
worse code in the system ;)

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Göran Krampe
In reply to this post by Andreas.Raab
Congratulations to you and all others involved! Looks tasty. Not
Slashdotted yet though? ;)

regards, Göran

Andreas Raab <[hidden email]> wrote:
> ... is now live at http://www.opencroquet.org
>
> Enjoy!
>    - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: The Croquet SDK 1.0 Beta...

Frank Shearar
<[hidden email]> wrote:

> Congratulations to you and all others involved! Looks tasty. Not
> Slashdotted yet though? ;)

Give it a few more hours, I think:
http://developers.slashdot.org/article.pl?sid=06/04/21/0753246 was posted
today at "04h43", but I'm not sure what time zone that is, (if they use the
computer's local time then it's 02h43 GMT) so it could be that the
slashdotters are still fast asleep.

And congrats to the Croquet team!

frank


Reply | Threaded
Open this post in threaded view
|

Re: Seems slower. =\

Alan Grimes
In reply to this post by Andreas.Raab
> While you're running an environment or just when it's sitting there? If
> the first, that seems kinda normal (though 40k/sec is somewhat
> excessive; are you sure it's that much?) but unless you're running a
> Croquet environment there shouldn't be any network traffic.

I can push the thing up to 80k/sec in the "dungeon" world. (okay, that's
my favorite...)

> I'm not sure what your point is. Having looked at them quite carefully
> my only observation is that one uses a cascade and the other one
> doesn't. Is there a problem with one of them? Other than that it's three
> lines of duplicated code which may be unfortunate but I'm sure there is
> worse code in the system ;)

Okay, what do you want me to fix?

BTW, everyone calls the cascaded version of that function. I really
should learn more about what issues affect the performance of the
compiler. =\

--
Don't let your schoolwork get in the way of your learning.

http://users.rcn.com/alangrimes/

Reply | Threaded
Open this post in threaded view
|

Usability

Alan Grimes
In reply to this post by Andreas.Raab
I have started forward porting my own hacks to the code into the new
version and I have run into a number of serious usability issues.

1. The tabs on the sides and bottom of the screen that have been in
Squeak 3.4 >> 3.7  are not there. This roughly quintuples the ammount of
time it takes me to open my most commonly used things like the
transcript and stuff. There is a fair ammount of functionality that I
just can't find using the menu.

2. The browser is worse than any other version I've ever seen in Squeak.
        A: It's not green, therefore I find it difficult to find in a mess of
other windows.
        B. It has no menus so that I can't switch it to pretty/color, print mode.


--
Don't let your schoolwork get in the way of your learning.

http://users.rcn.com/alangrimes/

Reply | Threaded
Open this post in threaded view
|

eeeek!!!!

Alan Grimes
In reply to this post by Andreas.Raab
Okay, I developed a method similar to the current implementation of
matrix "*=" and called it "multiplyAndDiscard:"

My code was:

#########
multiplyAndDiscard: aB3DMatrix4x4
        "derived from 'composedWithLocal'"
        self
                privateTransformMatrix: self
                with: aB3DMatrix4x4
                into: self
##########

The current code is:

##############
*= m2
        "Perform a 4x4 matrix multiplication with result into self."
        | result |
        result := self * m2.
        self replaceFrom: 1 to: 16 with: result startingAt: 1.
###############

Which calls:

#######################
* m2
        "Perform a 4x4 matrix multiplication."
        | result |
        result := self class new.
        self privateTransformMatrix: self with: m2 into: result.
        ^result
#########################

Which is a duplicate of:

####################
composedWithLocal: aMatrix4x4
        | result |
        result := self class new.
        self privateTransformMatrix: self with: aMatrix4x4 into: result.
        ^result
#####################

Which is called by "ComposeWith:", which I've already removed from my
version....

Which is, in turn called by 24 other functions, most of which are on the
critical path of all things Crquet... =PPPPP


--
Don't let your schoolwork get in the way of your learning.

http://users.rcn.com/alangrimes/