[messages] Edit: [Developers] Re: Roadmap for VASSAL 4

generateui rtimon at gmail.com
Sun Mar 27 15:31:54 MST 2011

[This message has been edited.]

> We would never be able to be completely platform neutral as the VASSAL
> engine relies on a very wide list of libraries. What you describe
> would be
> very limiting. Although it sounds like a good idea, we would only be
> able
> to support the lowest common denominator with respect to both platform
> and
> browser. That's great for small apps or very restricted ones, but I
> can see
> us hitting brick walls a lot.

As Vassal is written in Java, Vassal ties itself to the Java platform,
which depends on... the JVM (Java platform). I'm very curious about the
limitations you see towards the things I describe. As I see GWT as a few
things, I also see GWT as a GUI library. From that perspective, It would
not be limiting, but just another option to perform the GUI
implementation with. 

If you explicitly do not support IE, you can have most cake and eat it

> As for JavaScript itself, I see dynamic typing as a debugging
> nightmare.
> We're actually trying to go in the opposite direction with better
> defensive
> programming practises. In addition, we're currently looking at ways to
> expand our capabilities not restrict them further (e.g., better
> graphics/3D
> engine).

Exactly. That's why GWT worked out for OpenSettlers so well. No dynamic
typing, good IDE support, and improved capabilities for the UI (such as
canvas, canvas3d (WebGL), html and SVG).

> With respect to a C-based language, conversion from Java is relatively
> straightforward excepting the UI. JavaScript has a lot of scoping
> issues
> that make a straight translation very tricky.

I'm not sure if you're replying on me, or a previous post. I only talked
about C with Pioneers as example, so I assume you're not replying with
above quote to my post.

> I think the frontrunners are still the status quo (Java+Swing),
> Java+SWT,
> Qt, or wxWidgets. They all have their problems, but having to rely on
> a
> webbrowser (who might later decide that a feature we're using is
> actually an
> annoyance) would create more problems in terms of support. Right now,
> we
> support Windows, Mac, and Linux directly, but I can't imagine
> supporting
> multiple web browsers and all the problems they introduce.

The point of Uckelman is to decouple classes currently tightly coupled
to SWT from the UI toolkit, seperate UI classes from other classes. When
that's done, it does not really matter what UI toolkit one uses.
OpenSettlers uses currently 2: an external SVG library, and the GWT
widgets. As the architecture of OpenSettlers explicitly supports this
using interfaces (loosely coupled design), I can make widgets in SWT,
GWT, JavaFX, Canvas, SVG, whatever I like. The question indeed would be
what UI library Vassal would support officially, which I should not
answer as I am not part of Vassal.

Your last sentence make me believe that what GWT does is not fully
understood. Applications written with GWT are __entirely written and
debugged in java and your favorite IDE__. GWT contains a compiler which
translates Java to Javascript, so a user can run the application in the
browser. GWT makes different permutations for each browser, to ensure
the small (and sometimes big in the case of IE) differences are taken
care of. That's something GWT does by default, nothing which the
programmer needs to do. I have actually not written a single sentence of
javascript, though OpenSettlers still runs 100% natively (no flash/java
applet, 100% html/javascript/css) in the browser. By using GWT, I have a
single codebase, and I can support any browser, device (as long as it
has a modern browser, like Android and IOS devices) and resolution
(abstracted UI in OpenSettlers takes care of this). I don't have to
worry about OSes, since the browser itself abstracts the OS. Apart from
the SVG element (GWT 2.2, which supports canvas, removes the need for
SVG), I have not yet found any crossbrowser bugs. Crossbrowser support
is handled by GWT, not by the programmer coding against GWT.

I am no contributor for Vassal, so the things I share on this forum are
just FYI. It's just my experience devving on a codebase in many aspects
similar to Vassal's. I don't own Google shares, I'm just a techdude
sharing learned lessons :)

Read this topic online here:

More information about the messages mailing list