>Are tuplespaces interesting for game >development? What would be>needed to make them more interesting?

(I wrote...)

IIRC they're already being used in game development, under thatguise - I thought that IBM's grid computing used ts's extensively,and Butterfly is an IBM grid...as is PS3 (IIRC?).[1]

FYI, we use the similar concept of unbound message-queues [2] a lotin the execution layer....I find tuplespaces far too abstract to be tenable in real-worldprogramming with real-world programmers who don't have phd's in CSand have never heard of ts's nor probably want to. Unbound MQ's seemto be a lot easier for today's typical programmer to get to gripswith, perhaps because they are a clear logical extension of aparadigm that most programmers are very comfortable withalready...FWIW, I'm currently looking at whether we'd solve some of ourproblems by binding more of those MQ's [3]...there are considerablelate-in-development-cycle problems that occur where your structureis too implicit and not easily reasoned about offline.

The basic concept is almost essential to writing good semi-infinitely scalable systems.

i've used jini and javaspaces to build a highly scalable service oriented architecture for bioinformatic services. the architecture is very ripe for mmpog: distributed transactions, naming services, leasing services, and javaspaces.

i have zero experience with mmpog architectures and can only base my opinion on my own experience building discrete event simulators and soa architectures, but, i think the technology is a fit.

in mmpog's i believe the key is in grouping objects based on probablity of interaction, proximity, state of an entity, or a network of interactions among entities. these obvious partitions are implemented via javaspaces. operations on the group or individuals is implemented as a jini service. attributes of the object are implemented as a java class.

so no ones tryed it? it looks like javaspaces is just awrapped up RMI- and that seems abit over the topfor tracking game object?

Not by a long way! Tuplespaces (as it's more rightly known) is completely unrelated to RMI, architecturally.

Anyway, as the above quote shows, we're using tuplespaces (albeit in a different guise - free-floating MQ's). We have considered doing a javaspaces wrapped implementation of some of our tuplespace stuff to see how it compares to the current implementations, but as far as I know no-one here has used it in anger...

Sun took many of the ideas behind the Linda systemand adapted them to their Java environment. Theadopted Java as the implementation language. Thisprovided platform independence and the ability toexecute objects on remote machines through the JavaRemote Method Invocation (RMI).

i would love to get me head around this.. sounds veryinteresting stuff. im making a simulation that has lots of object and i was thinking this maybe the way to go.there will also be lots of connections (players) interacting with the objects in the space in realtime.

Not by a long way! Tuplespaces (as it's more rightly known) is completely unrelated to RMI, architecturally.

sun's implementation of jini/javaspaces is tightly coupled to rmi. all the core services are constructed as rmi activatable services (reggie, ma. all javaspace objects must be rmi friendly (serializable). if you build any user services to interact with a javaspace out of process or in a distributed fashion, you will use rmi. in sung li's jini book he spends a few chapters getting those not up to date on all facets of rmi up to date.

i think jini/avaspaces is much more than the original tuplespace in that a javaspace contains objects with methods and i think the original definition of a tuple is just data. jini also provides a plethora of services for architecting distributed solutions: leasing management, discovery/lookup, distributed transaction management, distributed events. i'm not sure that gelertner's original concept provided such a complete set of building blocks.

Sure, but my point is that the two are entirely different things, not (as the OP questioned) simply minor extensions of each other.

Tuplespaces are an alternative programming paradigm.

[/quote]i think jini/avaspaces is much more than the original tuplespace in that a javaspace contains objects with methods and i think the original definition of a tuple is just data. jini also provides a plethora of services for architecting distributed solutions: leasing management, discovery/lookup, distributed transaction management, distributed events. i'm not sure that gelertner's original concept provided such a complete set of building blocks.[/quote]

Well, objects with methods ARE just data in the java world. I'm not really comparing to whatever the original CL/linda roots were, but what people have spent the last X years using as the generic concept + programming paradigm of TS's. I've only used javaspaces having already known TS's and not noticed any differences (yet).

Sure, the JINI services are useful, but are they an intrinsic part of javaspaces (both are available as separate downloads, aren't they?).

can you elaborate? don't you use tuples to represent the state of a player or entity in the world, and a tuplespace as a set of related entities?

That's not a trivial question to answer, and the going rate for consultantcy on this is $85/hour...

Grexengine.com is being redesigned at the moment now that some of the patents have been granted. The new content may include an article on this, because it's an interesting set of problems. Could be a while though, I'm afraid.

fair enough blahblahblah, but intuitively it seams very easy to map the mmpog framework requirements directly onto jini or a jini-like framework. sounds like fun stuff...

Sure, it's intuitive. But intuitive != effective. Most complex systems don't work if you merely try to fit them into an arrangement that is conceptually obvious and sensible to a human - instead you usually have to find what is convenient and efficient for the hardware and software platform.

NB I'm not trying to be patronising (I'm sure you know this already), just trying to make clear what I mean by saying you can't just do what would seem sensible.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org