V4 Project Management

So endith my recitals. I’ll leave everything to you guys from henceforth.
Now I’ll badger about 3.6.7 enhancements :slight_smile:
And that’s all. My supposed active involvement died.

You must be related to Billy Connolly :slight_smile:
Cheeky bugger

1 Like

I have used this on numerous occasions when developing nested ‘ifs’ to decide what value to assign. Even using the x?a:b notation still takes a hit on performance when nested to many levels. So minimisation is vital.
I mentioned this as there are times when one needs to decide between a number of variables and potential outcomes. These also arise with programming.
So, you are saying that the use of ‘Karnaugh mapping’ is irrelevant to Vassal V4?
I say, how do you know that?

Bye. Forever more. Seems I must type in at least 20 characters. How quaint. I suppose it stops forum users from just typing @#$% it.
Oh I’ll still be hassling to make changes to ver 3.6x :slight_smile:

Basically, yes. Not just to V4, but to programming generally. IIRC, the Quine-McCluskey algorithm tends to be used for reducing boolean expressions—but it’s also the case that people seldom write expressions which require reducing or even have enough terms to be reduced. Conditions with even four terms are fairly unusual in application programming, and evaluation of boolean expressions is practically never a bottleneck.

I’d like to see an example of where you think it would be useful.

I spent some of Autumn 2021 writing a program to dump V3 modules to JSON. Getting the data to a human-readable format is half of the conversion job done; the other half we can’t start yet, without a spec for the format to convert the extracted data to.

1 Like

The best analogy for project management of software development is herding cats. :stuck_out_tongue:

Dogs have owners, cats have staff…

Given that Vassal is a volunteer effort, a lot of the project management stuff (resource/budget management) isn’t relevant.

Our biggest risk (IMPHO) is we lose one of our key developers.

BTW - I’m happy to help w/ beta testing and possible documentation updates, but I don’t know Javascript.

1 Like

Herding cats is easy, compared to this project.
But let us get something straight here.
I never imposed or even suggested a time line, nor deadlines, not anything relating to ‘timeliness’.
I proposed a systematic approach that addressed the potential solution(s), in an appropriate sequence/order. That it also needs to be adaptive to cater for changing circumstances is vital.
My aim was, that all the various ‘parts’ are identified, listed and documented. Not all will follow a straight line path. In fact I’d be surprised if they followed any sort of linear path.
Why do I bother?

Paladin - chill out bro… Don’t read nastiness or trolling into my post, because it wasn’t intended. I’m sure the developers are happy to have help… Like you, I’ve been in the business for a long time and seen all kinds of permutations of project management and software development projects… Some really good and not bad, but not a great fit for the given project team.

I think it’s great to have people volunteer, but remember that not every team sees (or has) the need for certain types of formalism… One of the best software developers I ever worked with viewed project management as anathema. I eventually found that instead of trying to formally manage him, simply describing the use cases & story points and having regular (not daily - brr!) tag-ups was the best approach to maximizing productivity…

I do not know when or where Karnaugh mapping or Quine-McCluskey algorithm would be useful. I raised it more as a possible candidate for when a situation does arise. Both achieve the desired end result. I referenced Karnaugh mapping because that was what I learned to use way in the 1970’s. I’m comfortable with its use.
You are also quite comfortable with the Quine McCluskey algorithm. That is what you learned to use.
Whatever process is to be used, whenever or if ever, a situation does arise I am perfectly happy knowing that you already know of a tested and proven regime to resolve it. :slight_smile:

No, that’s not what I said. I don’t use Quine-McCluskey myself when programming; I’ve never heard of anyone using it while programming, in fact—only as something that’s applied to data in things like SAT solvers and by compilers for reducing complex boolean expressions, where the expressions are the data.

You said this:

It sounds like you were using Karnaugh mapping directly. I would like to understand the details of this, please. I’ll wait for that before replying further.


I’m going out of lurker mode.

I’m willing to help on the V4 development effort. And I’m willing because I’m a VASSAL user, I enjoy using it and and will love to see it improve. I’m really excited on all the new ideas I have been reading recently.

But we all must be realistic. This is not a company, there’s no money at stacks, no saliries, no promotions to fight for.This will only happen if enough people wants to participate and support the effort.

Please don’t try to look at his issue as a very strict planned thing. Just make a good definition of what we want to achieve and then give it time to happen. Please create a healthy and enjoyable environment where people feel s comfortable collaborating.

If the VASSAL community becomes something similar to the kind of stuff I must handle and my regular work, I don’t think I will participate.

My conclusion: Please, let’s move forward. Let’s define what you want yo have done with VASSAL V4 and let’s do it.

Now, I will go again to my regular lurker mode.

Thanks for all the effort.

1 Like

I have added a couple of spreadsheets to Google Drive, links below.
One deals with attempting to minimise the nested conditionals for the trait ‘restrict commands’.
The other deals with attempting to minimise the nested conditionals for the weather zone overlay patterns. The graphic shows the weather chart. We have 6 game turns per annum, 6 weather zones and a die roll of 1 thru 10. Fine weather predominates, so that is the last state of all the nested conditionals.

Have you tested that these are faster than a lookup table? If so, what was the result?

I strongly suspect that indexing into an array will be both faster at runtime and easier to maintain for something like this.

A lookup table, an array! Indeed, I yearn wholeheartedly for this ability, but where does Vassal provide this? The, so named, spreadsheet is useless. Do you now see my plea for a real spreadsheet capability?
As for your post, YES. An array, X x Y with row and column number ‘intercepts’ that are accessible by simple maths, would be far faster than the multiple nested conditional statements I currently use. Thankfully, players of my modules do not discern a great deal of time lapse for the weather tiling. But I am sure it does add to the time it takes to load a game.
There is no capability, that I can discern, within Vassal for arrays. If there was do you not think that I would have used it. Recall my previous missive for calculating the number of hexes a unit moved. For that I used a number of text, quasi, numeral strings and used about 8 different calculations to achieve the outcomes I wanted. An array, results accessible by row and column numbers, or a spreadsheet using vlookup and hlookup, would obviate all that nonsense.
Mayhap using the google spreadsheet capabilities, as it is cross multiple OS platforms, may do this. I have absolutely no idea what you guys are talking about when you mention 'swing this, ‘swing that’. Mayhap you are so focused on what you are using to edit and develop Vassal that this ‘swing stuff’ clouds and/or limits your view. I do not know. At the same time, perhaps you also do not know.
Something to really consider, yes?
Link to the word doc for the weather equations is:

Swing is the GUI toolkit provided by Java, that renders all of the UI elements in Vassal. It’s what would have to be used to render any sort of spreadsheet component in V3.

I have posted more than once in this forum about a simple, high-efficiency way to implement array lookups in Vassal. Typing ‘Lookup table’ into the search facility at the top of this page should get you there.You can implement the equivalent of VLOOKUP in as many dimensions as you like. Your complete weather calculation then becomes a one-liner looking up a value indexed by location, roll and month, at the expense of a one-time setup of the required Global Variables.

The fact that you can program such a calculation in V3 at all is actually remarkable and tells me that Beanshell is doing exactly what it is supposed to be doing, and doing it well. That’s some nice Java you have written there.

Or perhaps you might consider the combined 100+ year computer science and software development experience of the dev team and that when we say your suggestion of plugging google spreadsheets into Vassal V3 is unicorn and fairy talk, you might let it go instead of constantly banging on about it. Unless you have some magic technological solution to simply implement it, the while it’s conceivable we could cobble something together from scratch, it would be an enormous effort, effort we consider better spent on V4.

Is your problem actually with the language itself, or is it because it appeared to lack a function that you are used to in another language and would have made your life easier?

V4 will also have an embedded scripting language and expression evaluations will be handled in the native syntax of that language, quite probably Javascript. Access to V4 will be via an API of function calls and we will no doubt provide utility functions (like a more formal implementation of a table lookup). Non-programmers will, as always, struggle with this aspect.

Thank you. Learnt something new. Not that I would use such, being an end user not a developer.

Aside from any considerations of how you would hook up something like Google Sheets to V3, you also have to take into account how it would work when you’re offline and also how it would work after Google kills Google Sheets. (Google is notorious for ending products people had come to rely on.)

1 Like