Thus spake danieltakai via messages:
Is there a documentation page for VASSAL 4 where I can have a look at
the current plan?
Not publicly available, no. The last two times I was working on this,
I was interrupted, first by moving to England, and then by buying a
house. I don’t want to publish anything before it and I am ready. I
don’t want to be in the position of discussing a document I do not feel
is ready, as that’s a waste of people’s time, nor do I want to do it at
a time when I lack the availability to have that discussion properly.
I read the introductory post of this thread, is there
more?
Yes, I’ve written a spec, but see above for why it’s not public yet.
Also, I’d be interested in documentation regarding the concepts in
use today (coordinate system, token etc), does this exist?
No. The lack of documentation for how anything in 3.x (or earlier) was
intended to work was one of the things which made me start thinking
about V4. The best we can do with 3.x is look at the code and with
great effort, describe how things actually work—which is often
inconsistent and the product of cobbling over many years, not considered
design.
I think the concepts are really well thought out, it would be cool to
preserve that.
If by concepts, you mean things like piece, map, board, etc., then at
a very general level, I agree—but those are all taken directly from
tabletop games. When you get more fine-grained than that, I would go
more in the direction of “amazing that anything works at this point”
than “well thought out”.
Still following the client-server plan? Is there an API spec up yet?
It’s stateful, right - any thoughts spend on the persistence layer yet?
C++ for the server is fine - as long as I don’t have to work on it. What
were the reasons to use a less than popular language when you could use
something better suited to the problem, i.e. something functional as
this is basically a service?
I don’t have any reasons for using a less than popular language when I
could use something better suited to the problem, as I don’t intend to
do that.
We clearly don’t have the same view of C++. C++ is a popular language
well-suited to the problem.
In any case, one advantage of defining a specification is that it can
be multiply implemented and tested against. I want to write the
reference implementation in C++, but anyone else would be free to
write their own in their language of choice and test its behavior
against the spec.
Clojure comes to mind. One of the big
problems of VASSAL today is all these system level concerns in the
codebase. Suddenly we have to worry about memory allocation as well,
that does not strike me as good. Functional would be best in a
request-response scenario and is also excellent to write tests for.
Perhaps you have not used C++11 (or C++14)? I don’t find myself
worrying much about memory allocation these days, except in some
specialized optimization-intensive circumstances.
Possible to separate concerns? Can we have a module version service and
a game service separate from each other? Also, I’d like to authenticate
via OAuth. I need micro-services to be happy
What would a “module version service” be?
Can we design it cloud-native, i.e. inherently scalable and resilient? I
think it would be a good idea to allow people to run their own servers,
i.e. for tournaments.
Part of my plan is for most game servers to be run locally to one of the
players, with the central one used only when that’s not possible.
–
J.