aNt
|
 |
«
Posted
2004-09-27 08:38:47 » |
|
what about using javaspaces for handling mmpo worlds? or is it best to use a 'simulation' and wrap all your own calls over tcp/ip etc...
just 'take', 'write' etc seems very neat- maybe it hasnt got the speed needed for mmpo?
just intrested in peoples thoughts.
|
|
|
|
|
|
|
blahblahblahh
|
 |
«
Reply #2 - Posted
2004-09-27 14:18:50 » |
|
J C Lawrence wrote:
>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 that guise - 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 lot in the execution layer. ... I find tuplespaces far too abstract to be tenable in real-world programming with real-world programmers who don't have phd's in CS and have never heard of ts's nor probably want to. Unbound MQ's seem to be a lot easier for today's typical programmer to get to grips with, perhaps because they are a clear logical extension of a paradigm that most programmers are very comfortable with already ... FWIW, I'm currently looking at whether we'd solve some of our problems by binding more of those MQ's [3]...there are considerable late-in-development-cycle problems that occur where your structure is too implicit and not easily reasoned about offline.
The basic concept is almost essential to writing good semi-infinitely scalable systems. But games developers don't tend to like it much...
|
malloc will be first against the wall when the revolution comes...
|
|
|
Games published by our own members! Check 'em out!
|
|
aNt
|
 |
«
Reply #3 - Posted
2004-09-27 16:45:47 » |
|
so no ones tryed it? it looks like javaspaces is just a wrapped up RMI- and that seems abit over the top for tracking game object?
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #4 - Posted
2004-09-28 02:24:36 » |
|
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.
|
|
|
|
|
blahblahblahh
|
 |
«
Reply #5 - Posted
2004-09-28 17:31:57 » |
|
so no ones tryed it? it looks like javaspaces is just a wrapped up RMI- and that seems abit over the top for 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... PS copy/paste misattributed that quote - I'm about to fix it
|
malloc will be first against the wall when the revolution comes...
|
|
|
blahblahblahh
|
 |
«
Reply #6 - Posted
2004-09-28 17:34:24 » |
|
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.
From experience, those groupings are relatively unhelpful in any large scale MMOG. You have to use tuplespaces at a more abstracted level in order to reap the rewards (high degrees of parallelism etc)
|
malloc will be first against the wall when the revolution comes...
|
|
|
aNt
|
 |
«
Reply #7 - Posted
2004-09-28 18:50:11 » |
|
just i read this someplace: Sun took many of the ideas behind the Linda system and adapted them to their Java environment. The adopted Java as the implementation language. This provided platform independence and the ability to execute objects on remote machines through the Java Remote Method Invocation (RMI).
i would love to get me head around this.. sounds very interesting 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.
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #8 - Posted
2004-09-29 00:55:46 » |
|
look in your local bookstore for this book: http://www.amazon.com/exec/obidos/tg/detail/-/0201309556/104-2050770-3847115?v=glance it will plant the seeds...
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #9 - Posted
2004-09-29 01:03:00 » |
|
From experience, those groupings are relatively unhelpful in any large scale MMOG. You have to use tuplespaces at a more abstracted level in order to reap the rewards (high degrees of parallelism etc)
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?
|
|
|
|
|
Games published by our own members! Check 'em out!
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #10 - Posted
2004-09-29 01:22:05 » |
|
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.
|
|
|
|
|
blahblahblahh
|
 |
«
Reply #11 - Posted
2004-09-29 09:20:48 » |
|
sun's implementation of jini/javaspaces is tightly coupled to rmi.
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?).
|
malloc will be first against the wall when the revolution comes...
|
|
|
blahblahblahh
|
 |
«
Reply #12 - Posted
2004-09-29 09:23:21 » |
|
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.
|
malloc will be first against the wall when the revolution comes...
|
|
|
aNt
|
 |
«
Reply #13 - Posted
2004-09-29 17:55:11 » |
|
hahaha blabla'''' - heres somthing for u that confuses me- wonder if u could wave the $85  i got like a rubber band and some old fluff in me pocket if u want that  ? anyways... heres what makes me abit confused... if we make a game with javaspaces the objects are serialized and stored yes? then say we have a house class. then the database will have loads of serialized house instances. if we update the house class because of a bug ;-) then what happens to all the old serialized house instances stored in places all over the network... 
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #14 - Posted
2004-09-29 18:12:57 » |
|
anyways... heres what makes me abit confused... if we make a game with javaspaces the objects are serialized and stored yes? then say we have a house class. then the database will have loads of serialized house instances. if we update the house class because of a bug ;-) then what happens to all the old serialized house instances stored in places all over the network...  depend what you modified in the class and whether you include a constant serial version in your class. now, replacing this house dynamically without shutting down the jvm is a complete different problem that requires more abstraction, registration, versioning metadata, etc...
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #15 - Posted
2004-09-29 18:29:28 » |
|
(both are available as separate downloads, aren't they?). nope... javaspaces are just one service in jini.
|
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #16 - Posted
2004-09-29 18:47:05 » |
|
That's not a trivial question to answer, and the going rate for consultantcy on this is $85/hour...
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...
|
|
|
|
|
blahblahblahh
|
 |
«
Reply #17 - Posted
2004-09-30 09:57:00 » |
|
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.
|
malloc will be first against the wall when the revolution comes...
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #18 - Posted
2004-09-30 13:43:11 » |
|
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.
agreed :> ...further, until you've created such a beast it is just an academic exercise at best, but fun nontheless.
|
|
|
|
|
the2bears
|
 |
«
Reply #19 - Posted
2004-10-03 01:38:13 » |
|
sun's implementation of jini/javaspaces is tightly coupled to rmi...
They were, up to Jini 1.2 but after that RMI was just one of a few pluggable transport layers. JERI is the reworked and rethought replacement for RMI. I and my company, Kayak Interactive, and it's predecessor have worked with Jini for over 4 years now - pretty much since the beginning. Funny coincidence, Jini and multiplayer games:) Bill
|
|
|
|
jherber
Junior Member  
Java games rock!
|
 |
«
Reply #20 - Posted
2004-10-04 00:02:54 » |
|
They were, up to Jini 1.2 but after that RMI was just one of a few pluggable transport layers. JERI is the reworked and rethought replacement for RMI.
wow! that's about when i finished up my jini project. how do they handle something like: invoking a network tranparent object? rmi's activation functionality? did they ever add a security model?
|
|
|
|
|
aNt
|
 |
«
Reply #21 - Posted
2004-10-04 07:59:34 » |
|
JERI supports the standard RMI semantics but is designed to be more flexible than existing RMI implementations such as JRMP and RMI-over-IIOP. It can support:
-The new Jini trust model -Elimination of the compile-time generation of stubs -Non-TCP transports -More flexible distributed garbage collection -Much greater customisation
|
|
|
|
|
|