back to article Croquet for Unity: Live, network-transparent 3D gaming... but it's so much more

Which of these appeals more: a new, free, Javascript framework for writing network-enabled 3D games, complete with integrated physics modelling and spatial audio… or, a complete, mature, dynamic programming platform that can implement the metaverse? Why not both? The new announcement from Croquet Corporation at the Game …

  1. Pascal Monett Silver badge
    Trollface

    "it's tiny, efficient, fast, lightweight, and in places, surprisingly simple"

    So you're saying that Microsoft had nothing to do with it, basically ?

    1. Liam Proven (Written by Reg staff) Silver badge

      Re: "it's tiny, efficient, fast, lightweight, and in places, surprisingly simple"

      [Author here]

      > So you're saying that Microsoft had nothing to do with it, basically ?

      All I will do is point out this line:

      «

      Despite the buzzwords, the tech is mature, with roots in designs that are older than Microsoft Windows.

      »

      ;-)

  2. Anonymous Coward
    Anonymous Coward

    It's not FLOSS :(

    I knew this was too good to be true. It's not FLOSS: https://www.croquet.io/faq/

    > Croquet OS - This product is Closed Source and bound by the Croquet Commercial License.

    The only parts that are open source are the "Microverse World Builder" and the "Worldcore Engine", which seem to be the equivalent of a game engine and IDE, and are impressive, but are tied to a single proprietary OS and its cloud service.

    1. Tom7

      Re: It's not FLOSS :(

      Yep. And "Contact Us" if you're interested in running your own reflector.

      I get it. They need a revenue model. But this is a lot less exciting now.

    2. Liam Proven (Written by Reg staff) Silver badge

      Re: It's not FLOSS :(

      [Author here]

      > I knew this was too good to be true.

      Good catch. I am seeking clarification and we will reword the story. My apologies.

      1. Tom7

        Re: It's not FLOSS :(

        It's also not really clear what your comments about it being "serverless" mean, since it's dependent on a network of "reflectors" that are operated by Croquet and are closed-source.

        1. Anonymous Coward
          Anonymous Coward

          Re: It's not FLOSS :(

          AIUI the "reflectors" are just something like STUN/TURN servers for their proprietary protocols, which just serve to introduce and help clients to connect to each other (bypassing NAT, etc.). So the "serverless" here would mean that all the application logic is in the clients, with no central command-and-control overseeing everything - truly peer-to-peer.

          1. Tom7

            Re: It's not FLOSS :(

            That's not how they describe it in the documentation. The reflectors also serve to serialise the event stream, ensuring that each client sees the event stream in the same order with the same timestamps and so ends up with the same simulation. At any rate, you can't use Croquet without using the reflectors and you pay for their use (subject to a free usage allowance).

      2. Liam Proven (Written by Reg staff) Silver badge

        Re: It's not FLOSS :(

        We've added a paragraph of clarification from the CTO to the end of the story.

        TL;DR: it's not FOSS *yet*. It will be.

        The existing older Smalltalk Croquet is entirely FOSS and available for study.

  3. Anonymous Coward
    Anonymous Coward

    Unity3D is basically "modern" Adobe Flash in terms of tooling and technology. Its lifespan is basically going to be similarly stunted. I wouldn't say anything truly ground breaking or significant can come from a bunch of developers (typically amateurs / indies, just like Flash, same market) depending on it.

    Nothing in Croquet seems that ground breaking either; if I wanted to get my UNIX virtual terminal displaying in there or direct access to my serial port or Raspberry Pi GPIO, I am going to have to invest my time writing adapters. Why would I do that for a system that is outside my control and *will* disappear at some random point within the future when they realise that their monetisation strategy isn't that good.

    Its all a bit lame ;)

    1. Anonymous Coward
      Anonymous Coward

      > Unity3D is basically "modern" Adobe Flash in terms of tooling and technology. Its lifespan is basically going to be similarly stunted. I wouldn't say anything truly ground breaking or significant can come from a bunch of developers (typically amateurs / indies, just like Flash, same market) depending on it.

      Depends what you mean by "groundbreaking". If you mean technologically, perhaps not, but in terms of art, just like Flash, I would say Unity3D has been the backbone of the indie gaming scene for many years, enabling some truly outstanding and innovative games to be made by individuals and small teams.

      I'm more a Godot person myself, but I can't deny the impact Unity3D has had - particularly on the native Linux gaming market which I care most about!

      > Nothing in Croquet seems that ground breaking either; if I wanted to get my UNIX virtual terminal displaying in there or direct access to my serial port or Raspberry Pi GPIO, I am going to have to invest my time writing adapters.

      Sounds like you have needs that are not served by, and not intended to be served by, Croquet. For someone like me with an interest in interactive real-time multi-user 3D experiences, this is (was) very interesting indeed! A simple but effective online multiplayer networking platform is a holy grail for many game developers, because it's *extremely* difficult to do well, especially in a generalised way.

      1. karlkarl Silver badge

        AC here (I usually stay AC when not "praising" Unity3D because it does tend to have a strange cult following with overly energetic kids (just like Adobe Flash tools).

        My area *is* actually in interactive real-time multi-user 3D experiences. My PhD specifically was on a network aware implementation of OpenGL to among many things, facilitate these kinds of multi-user interactions (implicitly).

        However, from observation, Croquet does not do anything too different from other network serialization approaches. Yes the "Chatroom" style multi-player offered by Unity out of the box is easily beaten by it and it looks easier to work with than some of the very high performance solutions offered by Quake III (this stuff is cool if you dig very deep). However, I still need to provide some serious legwork before this middleware can actually be integrated. Including for existing software. It really does just sound like metaverse vaporware.

        - Croquet Microverse World Builder

        - Croquet OS

        - Croquet Metaverse Web Showcase

        It really *is* just metaverse hype.

        But I do agree with you. Decent networking (at scale) *is* hard. Very hard. Hopefully something comes along soon. My solution isn't particularly great at very large scale. MMOs are out of the question, for example. But at the same time, Croquet doesn't general enough for so many use-cases outside of fairly basic multi-player games.

        If you are interested:

        https://eprints.bournemouth.ac.uk/36043/1/PEDERSEN%2C%20Karsten_Ph.D._2021.pdf

  4. ecofeco Silver badge

    Seems very interesting

    But I am not the person who gives a damn about on-line 3D games.

    Technical manuals? Yeah, that would be cool.

    Remote tours? Yeah, cool as well.

    3D data presentation? Yeah, that too.

    But we all know the money is in games. *sigh*

  5. horrido

    Despite what the article says, JavaScript was in no way derived from Smalltalk. Just ask Brendan Eich. He'll tell you his inspiration came exclusively from Scheme (Lisp). Douglas Crockford (author of "JavaScript: The Good Parts") will back this up.

    Moreover, JavaScript adopted the Java-like syntax much later at the behest of his overlord, Netscape. Netscape wanted to cash in on the Java hype.

    Not only was JavaScript not derived from Smalltalk, it differs from Smalltalk in substantial ways. JavaScript is a wickedly complicated language. The ECMAScript 2022 Language Specification, for example, is 846 pages long. The language has tons of features. It would take a person, even a seasoned software engineer with no knowledge of JavaScript, many months to understand the full language.

    Smalltalk, on the other hand, would require less than 15 minutes. Its entire syntax can literally be summarized on a post card.

    JavaScript also differs in having a boatload of quirks and WTFs which have been well-documented on the web. It's nearly impossible for a super-simple language to have quirks and WTFs.

    JavaScript also differs in not being object-oriented, at least, not in the traditional or Smalltalk sense. JavaScript uses the prototype object model for which the article correctly cites the Self programming language. Other than JS, there really aren't any major programming languages based on the prototype object model in wide use, unless you include something like Lua.

    The point being that JavaScript requires considerable self-discipline to use safely. The language imposes a tremendous cognitive load on the software developer. Smalltalk imposes practically no load at all.

    For the article to state that JavaScript is "an extraordinarily good language" and "probably one of the best languages out there" is absurd. How does the author define "good" and "best"???

    1. Liam Proven (Written by Reg staff) Silver badge

      [Author here]

      There are a number of misconceptions and misunderstandings in this comment. I doubt I can persuade you, but for anyone else who reads it, I will try to correct them.

      > Despite what the article says

      You seem to misunderstand the article and it does not say what you claim.

      > JavaScript was in no way derived from Smalltalk

      I did not say it did.

      JavaScript is *not* derived from Smalltalk. JavaScript is derived from Self. It is Self that was derived from Smalltalk. This is a matter of historical record, and there are plenty of links to back it up.

      Javascript:

      https://en.wikipedia.org/wiki/JavaScript

      Quote:

      «

      Influenced by:

      Java,[5][6] Scheme,[6] Self,[7] AWK,[8] HyperTalk[9]

      »

      > Just ask Brendan Eich.

      Two things here.

      [1] It may interest you to know that Mr Eich himself tweeted this story about Croquet.

      [2] I quoted Mr Eich in the article. I linked to Eich's own history of the development of JavaScript. You appear not to have noticed or read that. I specifically said:

      «

      whose creator described it as "a quickie love-child of C and Self."

      »

      That is how Brandon Eich *himself* described Javascript.

      I make no claims about Javascript's simplicity or anything to do with that.

      Smalltalk, for all its power, remains a relatively niche language and not widely used in industry.

      Javascript, on the other hand, is _vastly_ widely used and is part of almost every website in the world. It's been implemented and re-implemented, by Mozilla, Microsoft, the KDE project for KHTML which became Webkit and Blink, and standardised by ECMA.

      It's the fate of widely-used languages to accumulate features, like any other widely-used software.

      > He'll tell you his inspiration came exclusively from Scheme

      This is a misremembering of history.

      The original plan was to use Scheme, but in fact, due largely to time pressures, that was abandoned and instead Eich used Self with a bolted-on C-like syntax.

      This is widely recorded. The link I used in the article itself:

      «

      As I’ve often said, and as others at Netscape can confirm, I was recruited to Netscape with the promise of “doing Scheme” in the browser.

      »

      https://web.archive.org/web/20200204010840/https://brendaneich.com/2008/04/popularity/

      It certainly seems clear to me that you didn't follow that link and read Eich's *own history of the development*.

      Other sources:

      «

      What was meant to be a Scheme for the browser turned into something very different.

      »

      https://auth0.com/blog/a-brief-history-of-javascript/

      You continue to misinterpret what I wrote:

      > JavaScript also differs in not being object-oriented, at least, not in the traditional or Smalltalk sense.

      No, because *it's not based on Smalltalk*. It's based on Self. Self is a classless language, using prototypes instead.

      «

      In Self, and other prototype-based languages, the duality between classes and object instances is eliminated.

      »

      https://en.wikipedia.org/wiki/Self_(programming_language)

      > For the article to state that JavaScript is "an extraordinarily good language" and "probably one of the best languages out there" is absurd.

      The article does not state that. I did not write those lines. They are _quotes_. I interviewed David A Smith for the story; those are quotations from him, not from me.

      What *I* said was:

      > We were surprised by the glowing terms in which Smith described it to The Reg:

      I was surprised because I am not a fan of JavaScript myself. I quoted Smith, and then I resumed by saying that the explanation made sense.

      That does not mean I agree. It means that I thought his explanation added up.

      > How does the author define "good" and "best"???

      How *I* define them does not matter because I was not using those words; you seem not to notice that they are from the founder and CTO of Croquet Inc. not from me.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like