Roadmap for VASSAL 4

Thus spake RobS:

Hey, I just read the OP for the first time and you say your ISP is in
Tucson?
I’m in Tucson, so I’m curious, who’s your ISP?

A friend of mine runs nexiliscom.com there. I still have my personal
server with him, but we moved the VASSAL server to a online.net in
France in February of this year.


J.

Hi all,

So much is happenning to the devs personnally ^-^ Hope it’s for the better !

As I’m new to VASSAL (hence my first stupid question ^-^), what could be an expected timescale for a version 4 with all the wonders that were outlined in this long thread ? (I didn’t read everything, rather the 1st 2 pages, then kind of sampled a few pages along)

Another question is, did you consider scala ? A friend of mine showed me F# and functionnal programming, then I discovered there is a similar langage in the java ecosystem, and it’s named scala. Basically, functionnal programming simplifies the way apps are written, greatly reduces code size and helps keeping a codabase clean. But it’s a change of paradigm and I would understand if not everyone is ready for this ^-^ For me, if I can get a projet under scala, I would gladly dive into it ^-^

Thus spake Mutos:

As I’m new to VASSAL (hence my first stupid question ^-^), what could be
an expected timescale for a version 4 with all the wonders that were
outlined in this long thread ? (I didn’t read everything, rather the 1st
2 pages, then kind of sampled a few pages along)

I’m not willing to give any estimates for a release. I expect to put out
some API docs for comment by the end of February, barring anything
unexpected coming up.

Another question is, did you consider scala ? A friend of mine showed me
F# and functionnal programming, then I discovered there is a similar
langage in the java ecosystem, and it’s named scala. Basically,
functionnal programming simplifies the way apps are written, greatly
reduces code size and helps keeping a codabase clean. But it’s a change
of paradigm and I would understand if not everyone is ready for this ^-^
For me, if I can get a projet under scala, I would gladly dive into it

No way will I use something that requires the JVM again, as that brings
us right back to the raft of time-consuming installation and setup
problems that we’ve always had with the JVM.


J.

I’m a dev available to help, its unclear to me whether or not any help is wanted/needed, so i thought i would just throw it out there.

Sounds like great changes, hope the project is still going forward :slight_smile:

Any news @uckelman?

Hi, all.

I’ve been a lurker for a little while. I am a developer and I am intrigued with Vassal. Can someone point me to the source repository for Vassal 4, please? I’d love to help out if I can.

Thanks,
Allen

I would like to help in this project. I’ve some free time and could help developing code or testing it. I’m working as SysAdmin.

Regards, Manuel

Thus spake aballman:

Hi, all.

I’ve been a lurker for a little while. I am a developer and I am
intrigued with Vassal. Can someone point me to the source repository for
Vassal 4, please? I’d love to help out if I can.

Welcome. Presently none of the V4 work I’ve done is public. The design
spec I’d been writing needs a week or solid work before I want to
release it for comment, and I won’t be able to do that for a few weeks
—not before the house I’m restoring is ready to be moved into, which
is a more pressing project for me at the moment. Once that’s done,
however, I intend to concentrate intensely on getting the process for
V4 to the point where more people can join in.


J.

Hi,

I would be interested in contributing to VASSAL …
I’m a software engineer working with infrastrucure architecture. In my daily work I currently code mostly in C and Go (some Perl/Python too). It’s about 20 years since I last worked with Java, but getting up to speed with the language should be a small task.

I used to play a lot of boardgames, especially larger ones, but I’ve realized that given my current daily life and where I live, I won’t have the opotunity to do that again unless it’s via the Internet.

So I’ve been puzzling with some ideas of how such a distributed game engine should/could be designed. One thing I would consider is whether it makes sense to store the game state and history in a Git repository.

Thus spake apm:

Hi,

I would be interested in contributing to VASSAL …
I’m a software engineer working with infrastrucure architecture. In my
daily work I currently code mostly in C and Go (some Perl/Python too).
It’s about 20 years since I last worked with Java, but getting up to
speed with the language should be a small task.

That’s ok, as we’re not using Java for V4. It’s going to be in C++.

I used to play a lot of boardgames, especially larger ones, but I’ve
realized that given my current daily life and where I live, I won’t have
the opotunity to do that again unless it’s via the Internet.

That’s why I got into this myself. Welcome!

So I’ve been puzzling with some ideas of how such a distributed game
engine should/could be designed. One thing I would consider is whether
it makes sense to store the game state and history in a Git repository.

My suspicion is that this would impose some hard-to satisfy requirements
on the V4 web client I expect we’ll build, as well as being heavier
weight than what we need for history tracking.

I’d like to discuss this further once I’m back home (travelling now).

I intend to return to V4 planning once we’ve moved house, which should
have happened by the end of February at the latest.


J.

Oh… ok. I actually used to teach C++ once… but that was way before all this fancy C++0x stuff.

Are there any policies about letting VASSAL be able to know more about the game rules? (or not doing it)?
Like… making it possible to calculate movement and show movement options in the GUI?

I realize that would probably require complex features for module writing to use.

Thus spake apm:

“uckelman” wrote:

That’s ok, as we’re not using Java for V4. It’s going to be in C++.

Oh… ok. I actually used to teach C++ once… but that was way before
all this fancy C++0x stuff.

C++11 is a massive improvment over C++03. I’d like to write code for the
C++14 standard if we can, as it fixes a few warts from C++11 (such as:
being unable to move objects into lambdas).

Are there any policies about letting VASSAL be able to know more about
the game rules? (or not doing it)?

My plan is for modules to have access to game objects via JavaScript,
so if one wanted to code up game rules procedurally, one could do so
much more directly than is possible now.

Eventually, I’d like to have a rules representation language for
encoding rules declaratively, which could then be used to enforce rules
via model checking—but that’s not something I want to taclke now, as
it’s very much a research problem, not a software engineering problem.


J.

Hmm… I imagined having game modules being able to verify moves or other steps in the Sequence of Play via git commit hooks.

Of course… this is all brainstorming. You are right that git provides a lot heavier history control than is probably required.

Is this something that the layman non programmer is going ot be able to use to build modules?
If not who an dhow will modules be built by end users /buyers and game publishers?

Thus spake hipshot:

Is this something that the layman non programmer is going ot be able to
use to build modules?

It depends on what the “this” is you’re referring to.

If you mean the JavaScript interface, then no—you’d need to have a
minimal understanding of programming to write scripts using it.

If you mean the rules description language I mentioned, I’d say no as
well—I doubt there’s any simple solution in that space because rules
for even the simplest games define very complicated theories.

If you mean module creation generally, I expect it to be simpler than it
is in V3.2, and lots of modules (most?) have been created by
non-programmers.

If “this” is something else, please clarify for me.


J.

More brainstorm … :slight_smile:

Wouldn’t it be awsome if VASSAL ended up being naturally usable on devices like this:
http://www.u-touch.co.uk/touch-table/

So … If you could achieve a “touch” experience on the table feeling like the actual board game you could play the same (monster)game in several sittings where some of them were face-to-face and some were over the Internet. - but not having to transfer everything back and forth (which nobody would want to do).

Just jumping in, I sort of skimmed from around page 14(?).

For the front end, is the plan to use OpenGL directly vs. some cross-platform library, maybe wxWidgets for example? I saw earlier discussions about Qt as a possibility. Kivy seems to be a wonderful thing for cross platform purposes, but also probably out of scope for what you’re aiming at.

73,
Timothy

Thus spake RunningOpenLoop:

Just jumping in, I sort of skimmed from around page 14(?).

For the front end, is the plan to use OpenGL directly vs. some
cross-platform library, maybe wxWidgets for example? I saw earlier
discussions about Qt as a possibility. Kivy seems to be a wonderful
thing for cross platform purposes, but also probably out of scope for
what you’re aiming at.

I wrote a little OpenGL demo for this in 2013; I figured we’d use
OpenGL directly unless there was some really compelling reason to take
on another dependency.


J.

So the idea is to have OpenGL ES so tablets can use VASSAL? I think I saw something about hoping to address that with VASSAL 4. Are you considering to make a multi device presentation system which would be able to dock/send windows to tablets/phones so you could have, say your card hand on your tablet and the map on the computer screen? Or is that out of scope for the roadmap.

73,
Timothy