Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (539)
Games in Android Showcase (132)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  roadmap?  (Read 4710 times)
0 Members and 1 Guest are viewing this topic.
Offline eltanno

Junior Newbie





« Posted 2006-05-22 16:44:11 »

Is there a roadmap?
Where are you on the development?
How much is left to do?

I am very interested in SGS but find it had to commit to anything without knowing where it is heading. Can you give us an indication of when you expect to have a full release?
Offline Jeff

JGO Coder




Got any cats?


« Reply #1 - Posted 2006-05-24 05:05:56 »

The road map is in development.

The road map TO the road map says I should know more in about a month.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline Jeff

JGO Coder




Got any cats?


« Reply #2 - Posted 2006-05-24 05:07:17 »

I should add that if you have a serious, funded project and need information sooner it *might* be possible to release more of our internal current info under NDA.  For that you'ld want to talk to Chris.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline emerald

Senior Newbie





« Reply #3 - Posted 2006-05-24 17:58:54 »

I should add that if you have a serious, funded project and need information sooner it *might* be possible to release more of our internal current info under NDA.  For that you'ld want to talk to Chris.

yes. we're trying to see how PD can be used to develop, implemented and deployed games, which we would make proposals for fundings.

Currently i'm looking at how to integrated all the different clients ie. J2SE, J2ME, C++ (these 3 are currently supported by PD) but others such as ActionScripting from Macromedia Flash, Top Script, PHP...  i was thinking of creating a servlet/web service to provide a common API interface to all the different interfaces at the front end. Do you think it's possible? But i heard that the extension docs are coming in the release 2. so it's soon right?

as for the load balancing: take for example, i have multiple servers at the backend, i will have one synchronizing server to syn all the data with the rest of the servers. This syn server will then dynamically generate the Discovery.XML to determine which server has the lowest load for connection. We can then code our own UserManagerPolicy to implement the load balancing in the SGS. It this ok too?

feelin rusty
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #4 - Posted 2006-05-24 18:59:58 »

If I have understood Jeff right, it should be possible, but he also said that the server will have highest priority when it comes to the decision which server to use (or atleast SGS might force the client to disconnect and login again on another server). Hope I have interpreted Jeffs statements correct this way.

Ragosch
Offline Mr_Light

Senior Devvie


Medals: 1


shiny.


« Reply #5 - Posted 2006-05-24 20:16:15 »

as for the load balancing: take for example, i have multiple servers at the backend, i will have one synchronizing server to syn all the data with the rest of the servers. This syn server will then dynamically generate the Discovery.XML to determine which server has the lowest load for connection. We can then code our own UserManagerPolicy to implement the load balancing in the SGS. It this ok too?

Loadbalancing and syncing is what the SGS is for afaik thats all already in place. ( using a differend strategy then outlined)

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #6 - Posted 2006-05-25 03:35:07 »

Synchronization of data is given because every mutation of the objectstore is done in a transactional (atomic) way. Loadbalancing is done on 2 places (afaik) - by the client using the discovery.xml and a UserManagerPolicy, but also by the server itself if it forces the client to reconnect to another server than the current one (this I interpret out of a statement Jeff made about load balancing). I wonder if a policy like that pointed out by emerald will come in conflict with the decisions made by the SGS server in the case that the new discovery.xml will point to just 1 server and this is unfortunately that one the SGS server wants the client not to connect to.

Ragosch
Offline Jeff

JGO Coder




Got any cats?


« Reply #7 - Posted 2006-05-25 05:29:40 »

SO...

As the opthers have already said.  This is all already part of the system.  The current client-side load balancing is pure stochastic but more sophisticated algorithyms are intended.

If you want to implement your own client-side load balance you basically do two things:
(1) Implement your own ujser manager that reports the specific info you want to have available for laod balancing to report manager.  This is automaticly destributed for you to instanes of the DiscoveryManager sitting on web servers who write the discovery XML file your client goes and fetches  All of this is built into the system..

(2) Then implement a UserManagerPolicy that eats that XML and uses the spcific data.

Note however that a 100% deterministic load balance is a BAD idea.  The reason is this:

Imagine a slice with 500 users  on it fails.  All of a sudden, all 500 users go looking for a new connection point.  They will all get the same XML file simultanouesly.  They then all try to connect to the least laoded serve atonce, spamming it and vastly over-loading it.

For this reason what we are looking at down the pike is a statistically weighted stochastic choice.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline emerald

Senior Newbie





« Reply #8 - Posted 2006-05-25 05:35:00 »

Synchronization of data is given because every mutation of the objectstore is done in a transactional (atomic) way.

i do understands that SGS provides data syn. hmm, if all the servers are accessing one central DB, i guess i dont have to worry abt data syn. but if there are more than one persistent storage, then syn is required right? this is because we're also planning to expand the game to regionally as well as globally.

Loadbalancing is done on 2 places (afaik) - by the client using the discovery.xml and a UserManagerPolicy, but also by the server itself if it forces the client to reconnect to another server than the current one (this I interpret out of a statement Jeff made about load balancing). I wonder if a policy like that pointed out by emerald will come in conflict with the decisions made by the SGS server in the case that the new discovery.xml will point to just 1 server and this is unfortunately that one the SGS server wants the client not to connect to.
thanks for bringing this issue up. i have overlooked it. i was concerned with making my client more lightweight and more transparent to load balancing. thought i could get the server to handle all the load balancing. well, in that case, i will have to adopt the suggestion above.

feelin rusty
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #9 - Posted 2006-05-25 11:59:49 »

Emerald, I see what you are up to, but I fear you cant gain control over the ObjectStore they way you want it. There is only one ObjectStore which is accessed by all the GLEs in the cluster and access to this ObjectStore is transparent to the server application (=only the SGS backend has direct access to the ObjectStore). There is not even a fixed model how the ObjectStore is actually implemented or handled (=which database is used, it does not need to be the current one afaik).

I also wonder on which level the transactional services are provided, inside the SGS or does the SGS use database services to ensure transactional integrity - I dont believe in the last because PEEK is non-reread-safe, what is a problem because it will cause many GETs where a reread-safe PEEK would be enough on a temporary copy of the requested GLO. This copy should be made with the first access to the GLO from that task and subsequent reads should access this copy instead of a new PEEK into the ObjectStore - this could be a problem, but maybe I am wrong and this is already handled and the term "non-reread-safe" is misleading here.

Also I am curious if the ObjectStore is stored actually on the same hardware or farmed out onto the servers in the cluster - I dont believe in the last because it would be too high of a risk. But on the other hand there need to be some kind of backup otherwise a failure of the ObjectStore server woud be fatal. But maybe Jeff can tell us more about it and those management tools needed to clean up the ObjectStore from time to time (I think of kind of a garbage collection here used during sheduled downtime of the system for maintainance purposes). There is a high risk of GLOs which are no longer referenced by any other valid GLO in the ObjectStore and therefore unaccessible but still remaining in the ObjectStore - this might be caused by bugs and we need to discover and handle those things in a way.

Sorry, that I put so many issues into one post - I just reflected what I was thinking about when I read Emeralds post.

Ragosch
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Jeff

JGO Coder




Got any cats?


« Reply #10 - Posted 2006-05-26 05:54:57 »

Emerald, I see what you are up to, but I fear you cant gain control over the ObjectStore they way you want it. There is only one ObjectStore which is accessed by all the GLEs in the cluster and access to this ObjectStore is transparent to the server application (=only the SGS backend has direct access to the ObjectStore). There is not even a fixed model how the ObjectStore is actually implemented or handled (=which database is used, it does not need to be the current one afaik).

This is true that the ObjectStore is under the control of the system and not directly acessible from the coding model.  We have *talked* internally about openoing up the ObjectStore interface and making the store pluggable in order to support third party ObjectStore vendors but we havent doen that yet.

Im still not quite following the issue.  is the issue that youa re trying to synchroinize clusters on different contents so they all reflect a single view of the world?  This is a hugely difficult problem due to the latencies you will encounter going trans-continental.


Quote
I also wonder on which level the transactional services are provided, inside the SGS or does the SGS use database services to ensure transactional integrity -

Some of both, depending on the ObjectStore implementation.  From the POVof the GLE the ObjectStore provides the transactional context and is responsible for it.  However we build ontop of the databases we currently use in order to implement our deadlock avoidance scheme (Time Stamp Ordering.)

Quote
I dont believe in the last because PEEK is non-reread-safe,

Actually, if you are talking about within 1 event (which means within 1 transactional contaex) PEEK is re-read safe in that all peeks on GLO references that reference the same GLO will return a reference to tyhe same object EXCEPT in the case that a PEEK is followed by a GET.   The GET will return a new object and every PEEK after that wil lreturn the same object as the GET.  This turns out to be necessary to insure ACID properties.


Quote
a new PEEK into the ObjectStore - this could be a problem, but maybe I am wrong and this is already handled and the term "non-reread-safe" is misleading here.

Yes this is already handled.  When we say "non-repeatable read" we are referring to reads across tasks/transactions.  Within any 1 task a PEEK is a repeatable read with the caveat above.

Quote
Also I am curious if the ObjectStore is stored actually on the same hardware or farmed out onto the servers in the cluster -

Our current "big" implementation is based on  HADB which is a seperate set of servers which have their own fail-over and disaster recovery.  Having said that, we are also lookign at the moment at some intermediate layers to deal with some huge- scale scaling issues.

Quote
There is a high risk of GLOs which are no longer referenced by any other valid GLO in the ObjectStore and therefore unaccessible but still remaining in the ObjectStore - this might be caused by bugs and we need to discover and handle those things in a way.

GLOs are "real objects" ina  simualtion sense so they never tgo away unless explicitly destroyed.  ANy named object can be found without any other referemce so those need to be treated as "root" objects.  Having said this, gaving some tools to trace from the named objects to all references objects and find those no longer referenced is not a bad idea.

We're still designing all the admin tools, ill add it to the list of ideas for the team to discuss Cool


Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #11 - Posted 2006-05-26 09:28:54 »

Fine! And thank you, Jeff, for you detailed answer - I am glad to hear that PEEKs are re-read-safe in the scope of a task; this was something I was worrying about a lot because it would have been a horrifying bottleneck. Thank you for clarification, you saved my day  Cheesy

Ragosch
Offline emerald

Senior Newbie





« Reply #12 - Posted 2006-05-26 16:51:24 »

Emerald, I see what you are up to, but I fear you cant gain control over the ObjectStore they way you want it. There is only one ObjectStore which is accessed by all the GLEs in the cluster and access to this ObjectStore is transparent to the server application (=only the SGS backend has direct access to the ObjectStore). There is not even a fixed model how the ObjectStore is actually implemented or handled (=which database is used, it does not need to be the current one afaik).

This is true that the ObjectStore is under the control of the system and not directly acessible from the coding model.  We have *talked* internally about openoing up the ObjectStore interface and making the store pluggable in order to support third party ObjectStore vendors but we havent doen that yet.

Im still not quite following the issue.  is the issue that youa re trying to synchroinize clusters on different contents so they all reflect a single view of the world?  This is a hugely difficult problem due to the latencies you will encounter going trans-continental.

yes. i'm trying to syn clusters on different contents so they all reflect a single view of the world.

feelin rusty
Offline Jeff

JGO Coder




Got any cats?


« Reply #13 - Posted 2006-05-26 17:36:39 »

No offense, but I think you are dreaming the impossible dream on trying to synch clusters trans-continentally.

Having to comitt every transaction across continents will introduce horrible latencies if you wait for them all to complete.  Not waiting for them all to complete will break your referenitial integrity.

.  If you want players around the world to play in the same game then IMHO you are better off centralizing your server room someplace that minimizes the worst-case lag to your expected clinet base and then desigining your cleint/server protocol to support that level of latency.

(Note that in this case "cnetralizing" refers to internet topology, not necessarily geography.)

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline emerald

Senior Newbie





« Reply #14 - Posted 2006-05-26 18:44:41 »

No offense, but I think you are dreaming the impossible dream on trying to synch clusters trans-continentally.

Having to comitt every transaction across continents will introduce horrible latencies if you wait for them all to complete.  Not waiting for them all to complete will break your referenitial integrity.

.  If you want players around the world to play in the same game then IMHO you are better off centralizing your server room someplace that minimizes the worst-case lag to your expected clinet base and then desigining your cleint/server protocol to support that level of latency.

(Note that in this case "cnetralizing" refers to internet topology, not necessarily geography.)


thank for the suggestion. no offences to me.  Wink
in that case, it seems that, if i were to have the same game in each server, then the objectstore in each server will be individual not sharing of data? except with ur suggestion of implementation?

actually what i'm trying to do is to have multiple servers with the same game so that clients can logon to the servers to play. and i would like the players to view all other players like they belong to the same world. (do you call this cluster?)

feelin rusty
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #15 - Posted 2006-05-27 03:37:43 »

Does this mean you want several parallel worlds on different shards (like World of Warcraft for example) and just a connection between those shards on the communication tier without sharing the worlds itself?
Offline emerald

Senior Newbie





« Reply #16 - Posted 2006-05-27 04:21:43 »

Does this mean you want several parallel worlds on different shards (like World of Warcraft for example) and just a connection between those shards on the communication tier without sharing the worlds itself?

yes. Grin now then i remembered my boss telling me about the Grid technology which allows all the players to see it as a real world.
so sorry about the "thinking the impossible dream"..

back to Ragosch, yes, tt's what i'm trying to do, ie. World of Warcraft.

feelin rusty
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #17 - Posted 2006-05-28 03:12:15 »

@ Emerald:

But that is one of the downsides of WoW - players are hindered to play together if they dont know each other before joining a server. Is there a reason why you want your game to be sharded into meaningless worlds where those things you do never ever have any real meaning to the majority of people, instead of providing a meaningful big one-world-solution for all players like EVE did it on their 70-server-cluster?- IMO we are interested in SGS technology because we can handle those clusters with SGS easily. Where do you see the advantage of a sharded-worlds solution over a one-world-solution?- Or to say it the other way round, why should I as a player be interested to talk to someone playing on another shard, if nothing this person will do ever has an effect on my avatar, because I am on another shard than he/she is? (besides a nice small-talk, I mean)  Smiley

Ragosch
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #18 - Posted 2006-05-28 12:30:37 »

On possible solution to have several parallel worlds where all players can communicate with each other over a common channel could be like that:

you install your game under several names in the SGS; each "game" is a separate parallel world. Now you have a special "client" program which logs in to all those games and broadcasts the input of the common channel to all the other games. This way a common channel can be used from all the worlds to speak with users from other worlds. But users cannot open private channels cross-world that easily like in a single world.

Ragosch
Offline abies

Senior Devvie





« Reply #19 - Posted 2006-05-28 14:40:36 »

But that is one of the downsides of WoW - players are hindered to play together if they dont know each other before joining a server. Is there a reason why you want your game to be sharded into meaningless worlds where those things you do never ever have any real meaning to the majority of people, instead of providing a meaningful big one-world-solution for all players like EVE did it on their 70-server-cluster?

As far as I know, technology part is smaller part of equation with shard concept. Bigger part is content - putting 2 million players into 6-city world means crowded streets... Some games try to work around that by using multi-instance cities (guildwars for example) and instanced quests/areas. But in such case, you can as well go with full blown sharded design, just allow people to jump between shards.

EVE is unique not because it can handle 25k players at once in one shard, but because it has world large enough to host these players and provide some meaningful activities. But even CCP has created separate set of servers for Chinese market - again, because of design/cultural reasons, not so much because of technology limitations.

BTW, as far as chat is concerned, I don't see a reason why chat should have anything to do with SGS. Having specialized chat server(s) is probably a better way to solve it for big scale world.

Artur Biesiadowski
Offline blahblahblahh

JGO Coder


Medals: 1


http://t-machine.org


« Reply #20 - Posted 2006-05-28 20:21:20 »

If you want players around the world to play in the same game then IMHO you are better off centralizing your server room someplace that minimizes the worst-case lag to your expected clinet base and then desigining your cleint/server protocol to support that level of latency.

Well, what most people do is speak to Akamai et al and get a decent managed virtual delivery network overlaid on the internet.

But you need to have hundreds of thousands of players, or tens of thousands of subscribers, before its worth the cost of such things. Its not something you should be worrying about now Smiley.

malloc will be first against the wall when the revolution comes...
Offline Ragosch

Junior Devvie




Java games rock!


« Reply #21 - Posted 2006-05-29 02:52:12 »

BTW, as far as chat is concerned, I don't see a reason why chat should have anything to do with SGS. Having specialized chat server(s) is probably a better way to solve it for big scale world.

But SGS provides a chat system within SGS on the communication tier, why not use it, if it is already there and managed on mixed client/server and peer-to-peer level?- I never was a friend of extern applications to do ingame chat - neither by voice (teamspeak for example) nor by text using IRC channels. The pure handling of those separate applications kills immersiveness IMO or did you think of a chat system integrated nicely into the client which is just not part of the SGS?- There you would also have to check for people allowed to join channels and such, so you will need some kind of interaction with the SGS too - so I see no real advantage for this approach instead of using the SGS chat system directly.

Ragosch
Offline Jeff

JGO Coder




Got any cats?


« Reply #22 - Posted 2006-05-31 21:53:36 »

I think the chat question very much depends on what your are trying to do with the chat and what the costs in time/complexity/management are for each approach.  Its soemthing each game will likely decide for itself.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

rwatson462 (31 views)
2014-12-15 09:26:44

Mr.CodeIt (23 views)
2014-12-14 19:50:38

BurntPizza (50 views)
2014-12-09 22:41:13

BurntPizza (84 views)
2014-12-08 04:46:31

JscottyBieshaar (45 views)
2014-12-05 12:39:02

SHC (59 views)
2014-12-03 16:27:13

CopyableCougar4 (57 views)
2014-11-29 21:32:03

toopeicgaming1999 (123 views)
2014-11-26 15:22:04

toopeicgaming1999 (114 views)
2014-11-26 15:20:36

toopeicgaming1999 (32 views)
2014-11-26 15:20:08
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!