Roadmap for VASSAL 4

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

Hello -

I didn’t read the entire thread, and since I have no programming experience since learning some rudimentary BASIC in 1979 I wouldn’t have understood it anyway.

But I am a Mac user and did note some of the challenges you mentioned a few years ago with cross compiling to a Mac, not the least of which was having neither a Mac nor a Mac programmer on the project.

I can’t get you a Mac programmer, but I would be happy to loan you my Mac via SSH if that would help in anyway.

Also, at the risk of embarrassing myself, is Swift (https://swift.org) an option for development of Vassal V4?

Thus spake RunningOpenLoop:

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.

Yes. The amount of OpenGL we’ll need is not very large, given that
we’ll be using it only for fast 2D.

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.

It’s not a thing I’d thought of previous to this.


J.

Thus spake PaulMcG:

Hello -

I didn’t read the entire thread, and since I have no programming
experience since learning some rudimentary BASIC in 1979 I wouldn’t have
understood it anyway.

But I am a Mac user and did note some of the challenges you mentioned a
few years ago with cross compiling to a Mac, not the least of which was
having neither a Mac nor a Mac programmer on the project.

I can’t get you a Mac programmer, but I would be happy to loan you my
Mac via SSH if that would help in anyway.

Thanks. Sorting out cross-compilation is one of the things we’ll be
doing towards the beginning of the development process.

Also, at the risk of embarrassing myself, is Swift (swift.org)
an option for development of Vassal V4?

No. There’s no way I’m using a language controlled by a single
corporation. We’ve already seen how miserable that’s been with Java.


J.

Hi
I would like to help with VASSAL project too.
How can I help?