Ownership Model

The average newbie works around this. As I said, I noticed that newbies simply bend themselves to fit the Vassal Engine, just as every veteran had done.

As I said “don’t workaround these things too much”. Veterans hardly have time to hand-hold a newbie through the convoluted maze (the oddball Traits engine and bugs) they painstakingly navigated (and worked around to limited success).

You’re a newbie Game Designer. I’m a newbie Developer (no, I really won’t mess up Vassal Engine). I won’t consider it rude if you told me “make this thing work for my convenience”. In fact, I’ll consider it inefficient if you tried to work around inconveniences. We want the Vassal Engine to rival even the likes of GameMaker. So, please don’t waste anymore time on working around inconveniences in Vassal Engine. Start telling me what you need. :slight_smile:

And… we should shortcut it right here, at the tip of the iceberg. Work with me to incorporate necessary enhancements to the Vassal Engine. Necessary because they just plain cripple the Game Designer if absent.

Again, I desperately implore you to use the latest builds and NamedKeyStroke from here.

We may not even need to address that inconsistency in handling “piece ending movement” if we just gave you a “Deck::CountCards” function. Please, brave Jedi, your R2D2 is here! Don’t let engineering defects hinder your force powers!

Erm, that’s how I gave up rewriting Pandemic. :slight_smile: You’re not alone, mutant. Mutant and proud! (Wait, weren’t you a Jedi before? Just kidding, X-man. Great movie, that First Class, by the way.)

Yes, that is pretty much how the current Vassal Engine is to be used. But you and us (Vassal community) are gonna change that. In fact, I envision a better version of Civilization 5 done using Vassal Engine (see my proposal here), just as how Transport Tycoon Deluxe was infinitely improved by OpenTTD and Simutrans.

Of course it isn’t. Many veterans have successfully resorted to coding custom Java classes (in place of Traits, look at VASL). The point is not that we should not learn Java (or similar scripting tools), but that Game Designers should not have to compile their custom additions.

If you’re still up for it, we could add a new Trait that reads beanshell (latest version actually is beanshell2).

No, we don’t scrap the Traits engine. Never throw away something we can reuse.

Even as we do the scripting engine, we still require existing constructs (read “Functions” by programmers), eg Behaviors like SendToLocation, CanRotate (should really be just Rotate), etc. And how these constructs interact with each other (eg how SendToLocation may be influenced by DoesNotStack) will need to be thrashed out now, way before we start on the scripting engine.

Do realize that much of that work (relating Behaviors with Behaviors and Traits) were already done, and their logics are existing in the current Traits engine. The developers of Vassal Engine had done all that in the past years.

As a stop-gap measure now, as well as an exploratory exercise, we can start by correcting the Traits you are using. Shall we?

Yes, it is true. Apparently, a group of Game Designers had gone the way of the “custom Java classes”, and never looked back. As can be expected, there are virtually no limitations to that approach (it’s like crafting your own set of Traits).

As a programmer myself, I can tell you this bad habit that mean coders often have (I speak for myself). We often feel so “usefully busy” when doing repetitive work, that we actually miss opportunities to “cut down amount of work”. It is possible that we found the integrated circuit boards (custom Java classes) approach so powerful that we forgot to turn them into microwave ovens (scripting constructs, Traits constructs).

Leave the cats be. Let us create catnip for that. We need you to bend the minds of greater threats, brave Jedi. May the force be with you. (I know I am. :slight_smile:)