Thanks for the comments Alex and Robert,
          I'm aware that this decoupling is against GWT's philosophy.
The reason I'm still trying to keep it separate is because these are
actually separate projects (each game) with different developers
working on each part with separate svn code repos. The game code
changes very rapidly. The pseudo code I mentioned in the post was just
a crude illustration of the logic, although the design would be
something more polymorphic.

The portal's fundamental requirement is to be not only be able to
dynamically load each game on-demand, but also to be able to send game
client commands viz. launch, play, pause, quit, add-player, and, also
have game server side control e.g register-checkpoint-callback, fetch-
progress-report. I have the flexibility to have all games run off the
same Tomcat server process along with the portal, but I'd like to keep
their entry points and services separate from the portal's. The client
side communication between portal and game should NOT be over HTTP,
similarly server side communication between portal and game should NOT
be over the wire. So it is in fact a tight/native portal-to-game
integration that is needed.

So what I'm really asking here is just project code modularisation. As
in, I just need the flexibility to be able to develop code
independently and be able to integrate the games when deploying the
portal. The games need to be able to run in their own entry points so
their devs can test them out independently without needing the portal.
And I should be able to fetch the latest code for all games and test
the portal. Rebuilding/redeploying all the code is not a major concern
for us.


---- Some deeper design details ----
For the game plugin interface I have defined a client side interface
(IPortalGameClient) and server side interface (IPortalGameServer) to
abstract out all client and server communication between portal and
game. Any game that wishes to plug into the portal needs to implement
the client and server interfaces. On the portal client side a
GameProxy (which also implements the IPortalGameClient) is used to
talk to the Game client that can handle failure-retries, caching, etc.
The portal needs to do the heavy lifting of managing sessions, player
logins, check-pointing, resuming after failure, etc.
------------------------------------

Whew! I rambled on there .. sorry bout that. Appreciate any help on
figuring this out.

thanks,
-Gautam.

On Jul 8, 3:33 am, Alex Dobjanschi <alex.dobjans...@gmail.com> wrote:
> So you want to have a single app (your dashboard, but independently develop
> each game as a totally separated gwt app, is that right? Total flexibility,
> no?
>
> First, there have been countless questions about how to communicate between
> 2 (supposedly) independent GWT apps.
> Secondly, this design, despite being flexible in theory, is by far tight in
> practice. Imagine you want to add a 3rd game, you will have to do another IF
> and full build of the dashboard, just to show it up.
>
> What I recommend is have a lightweight dashboard, with just a GameData
> widget (that contains the link to the actual JS, an image, etc). When you
> click on one, you should either navigate (be redirected) to an Url, OR
> inject the JS and have it look for a specific contained (like <div
> id="gameSpace">).
>
> Regards,
> Alex

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to