Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Croquet Project
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Architecture== [[File:Adding Notes To 3D objects and places.jpg|thumb|300px|Adding 3D Notes linked to 3D objects and places]] === Virtual machines === Croquet's [[virtual machine]] (VM) runs bit identically on multiple platforms, and supports multiple abilities that could only be provided by a true [[name binding|late bound]], message sending language. Croquet's relationship to [[Squeak]] gives Croquet the property of a purely [[Object-oriented programming|object-oriented]] system allowing for significant flexibility in the design and the nature of the protocols and architectures that have been developed for the system. Because of this, Croquet has the ability to keep running while code is modified and tested, while changes are made, an essential part of the Croquet collaborative development ability. Users can change the code running the environment while the environment runs. [[File:Edit Source Code.jpeg|thumb|300px|Croquet allows users to edit the source code of the 3D world from within the world, and immediately see the result, while the world is still running. The running program does not need to be ended, and there is no compile-link-run-debug development loop. Any part of the program may be edited, down to the VM and [[OpenGL]] calls.]] ===Synchronization architecture=== Croquet's time-based synchronization abilities enable [[real-time computing|real-time]], identical interactions between groups of users while dramatically reducing the need for server infrastructures to support virtual world deployment. Croquet's architecture makes it easy to develop deeply collaborative applications without having to spend a lot of effort and expertise in understanding how replicated applications work. TeaTime is a scalable real-time multi-user architecture that is the basis for Croquet's object-object communication and synchronization. It is designed to support multi-user applications that can be scaled to massive numbers of concurrently interacting users in a shared virtual space. The most directly visible part of this architecture is the TObject class which is used to define and construct subclassed Tea objects. All of the interesting objects inside of Croquet are constructed from subclasses of TObject. A Tea object acts with the property that messages sent to it are redirected to replicated copies of itself on other users' participating machines in a [[peer-to-peer network]]. This [[messaging protocol]] supports a coordinated distributed [[two-phase commit]] that is used to control the progression of computations at participating user sites. In this way messages may be dynamically redirected to large numbers of users while maintaining the appropriate deadline-based scheduling. Thus, TeaTime is designed to allow for a great deal of adaptability and resilience and works on a heterogeneous set of resources. It is a framework of abstraction that works over a range of implementations and that can be evolved and tuned over time, both within an application and across applications. Key elements of the TeaTime synchronization architecture include: *A coordinated universal timebase embedded in communication protocol *Replicated, versioned objects that unify replicated computation and distribution of results *Replication strategies that separate the mechanisms of replication from the behavioral semantics of objects *Deadline-based scheduling extended with failure and nesting *Coordinated, distributed two-phase commit that is used to control the progress of computations at multiple sites, to provide resilience, deterministic results, and adaptation to available resources *Uses distributed sets [[File:Croquet Screenshot.jpeg|thumb|300px|Croquet avatar with wireframe portal, eToy, and mirror]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)