“…fog of war which is impossible when you have a physical board on a table with players right there.”
That would be news to players of Avalon Hill’s “Midway”, “Bismarck” and “Flat Top” games.
Also the WW1 aeriel combat game “Aces High” in which is a plotted/simultaneous movement" game, in which spotting of enemy aircraft is in the rules, and both players must pre-plot their moves several turns ahead of the current state of the game until either spotting enemy aircraft OR getting fired on by same. Only then can a player start plotting for the current turn, rather than current turn +3.
That being said, yes, it’s MUCH more difficult for land warfare games than for, say, WW2 naval aviation games, and aviation games in general.
The API must have a passkey argument for every call to it. Passkey determines if requests for sensitive information can be retrieved or not.
Passkey should be hashed with time, so that the passkey itself can’t be read raw with a tool like wireshark that can put a network connection into “promiscuous” mode and read ALL traffic, even that which is being delivered to another application, or even passing through the computer which is acting as a go-between from remote system A to remote system B.
Military communications typically have something similar… I don’t know exactly how it is done, but as long as the internal clocks of the two systems are within a few seconds, they can understand each other’s encrypted traffic, but say, a 10-second difference and they are mutually unintelligible. I’m not exaclty how they are handling rollover from say, seconds = XXXX11 to NNNN00
What I would like to know is what is meant to happen when an LLM-driven opponent makes an illegal move. How do you correct it? In a game of perfect information, you have a chance to correct the mistake, but how do you do that when your opponent has no intent? In a game of imperfect information, an illegal move can spoil the game.
I think we have a basic difference of opinion (or experience) in using frontier AI models. IMO, if I train the AI on what is legal - a complete finite set of possible legal moves - and I forbid it from doing anything outside that set of moves, its is therefore absolutely prohibited from making an illegal move. I don’t think this is debatable. Everything from about Opus 4.2 onward can be prevented from “guessing”, “lying”, etc. I suppose the prove will be in me creating and end-to-end AI opponent, then asking it to cheat, and seeing what it does.
OK, Fable was able to build the entire scenerio, played against AI, in a Tobruk tank battle. The AI uses the same movement legality system as the player, so literally cannot cheat. The current AI is an internal python procedure, but the design allows the AI=player to hook directly to any AI you might want for more advanced tactical/strategic thinking. I will package it as a release when I get a break
The playable demo is built and ready but got flagged as spam. I am happy to share with anyone and figure out how to integrate into Vassal so any game can have an active AI opponent.
I suppose a game like Battleship has fog of war because you don’t have line of site to your opponent’s board unless you peak. I guess I just never played a tabletop wargame where my eyes where shielded from seeing a part of the board.
OK I stand corrected. I was thinking narrowly of hex-based games from AH and SPI c1970-1990. That is where my efforts are. I have also taken a cursory look at info on V4 (from Discord) and see some of the issues. Now that I have the full scenario of Tobruk playing against AI, I will try to deliver a general module converter for any hex-based desktop wargame that has a module. Rules, movement gates, states, a teacher that judges your moves or informs you about unit capabilities, and and AI so you can play solo. Checkout playing against the AI in Tobruk.
Its already done. Think of it this way: I have given the AI a language with which to move units. All possible moves are speakable in the language. Everything else is gibberish. The coding example would be like telling Claude to write a program in C++. When Claude randomly decides to put some python in the code it just fails to compile. I really think we may be talking past each other on this. So I created the Human-v-AI version of the Tobruk module from Vassal. I posted it but the post was deleted for a forum rules violation. I estimate at least 2200 of the modules will be convertible using my method (that’s tier 0). Likely most will get to tier 2 (movement rules engine), and probably many to tier 3 (AI that reads all rules and can play the game).
So, I will represent the entire library of modules in Launchbox, categorize and understand them that way, then Claude can chip away along the richest veins of the content.
The git is up, too, but that post was also deleted, I think. So I don’t know how I will share any of this with the community.
Not exactly. Some of your posts got caught by the spam detector and I had a bit of a fight with the forum’s moderation queue trying to sort them out. It’s possible I deleted one unintentionally. Please try again.
Thank you for being patient with me. I am not a trained dev - just a hobbyist rebuilding games with a background knowledge as an OG gamer. If you try the Tobruk game (full playable scenario with AI opponent) you will observe the AI making moves. Every possible move at every state is a known, delineated, unique item. When the AI moves, it can only pick from this list of moves (or actions such as firing). Any other action - illegal moves - are impossible for the AI. It may conceive of them, but its decision to move must go through the same movement ruling engine the human uses. To address at least part of your questions, there is a log on the right that shows every movement and decision by the AI. The executable of the Tobruk game is also in the git.
Currently I am specking 26 games as a second pilot to convert to this system. Then of the ~1500 hex games (out of 3100 modules), 500 already have digestible rules the AI can follow. I’ll ping you when I have the solution confirmed.
Fair question — “how” is a process, and every piece of it is inspectable in the repo . Concretely, for the Tobruk game:
The rules don’t come from the module. You’re right that a module has no rules semantics. The rules come from the published rulebook — which for Tobruk ships inside the vmod as page scans (Page_01–Page_36). Those get transcribed into plain data files: games/tobruk/game.json (movement allowances, facing, unit stats, turn/segment structure) and games/tobruk/combat.json (gun tables, to-hit modifiers, fire-initiation doctrine, per-vehicle damage cards). That’s the entire rules source — human-readable JSON you can diff against the printed page. Example you can check right now: the 47mm M37 table in combat.json gives HPN 11 at 12-13 hexes, same as the rulebook’s own chart.
Enumeration is then just a function. engine/gamestate.py has legal_moves() and legal_targets() — ordinary code that takes the current state (positions, facings, segment, damage — all discrete data) and returns the finite set of legal actions, exactly like a chess engine’s move generator. An LLM helped write the transcription and the code; it does NOT adjudicate at runtime. Nothing probabilistic ever touches legality.
Nobody is trusted, including the AI. Every action from either seat goes through one door: submit() validates against the rules data and appends the proposal to the log — rejections included, each one citing the rulebook paragraph it violated (e.g. “not the combat segment [I.B]”). Dice are engine-owned and seeded; every entry carries a state hash.
You can test it yourself. Clone the repo, play a game (or let the AI play both sides), then run: python engine/verify_game.py live/game_tobruk.log.jsonl — it replays the whole game through a fresh engine and re-checks every verdict, every die, every state hash. I just ran a full AI-vs-AI game: 89/89 entries verified, including one illegal proposal that was rejected and provably never touched the game state. Flip a single die in the log and verification fails at exactly that entry.
Where a game’s rules aren’t present, transcribable, or complete, an explicit pre-screen catches it — those don’t go through the unattended pipeline.
Last thought: your V4 log format and this log are nearly the same shape — structured commands (type, actor, src, dst). The delta is the legality function over states.
I’m tending to doubt that you’ve actually done this – the storage requirements of state tree which grows geometrically…and that you’re now merely theorizing.
Deep Blue, the IBM machine that finally beat a Chess Grand Master, had HUNDREDS of terabyte sized disk drives and HUNDREDS of CPUS working in parallel.
And the rules of Chess are trivial in comparison to even Avalon Hill and SPI games of the early 1970’s.
I’m beginning to believe that this thread is based on fantasy. Just like “Hey, dude bro, we can fire all of our white collar workers and just use AI.” – there’s a reason Sam Altman fled to Argentina last month. And it’s because AI isn’t coming anywhere close to the hype barrage of the last 2 years, and he, being the leader of this fraud, is seriously in fear of pissed off venture capitalists, who dumped more than 300 Billion dollars into this rat hole, seeing now that they are NEVER going to get a return on their investment (because Altman was fraudulently reporting internal costs as revenues… AKA “circular financing”), are now going to hire hitmen, so that they can get at least a few ounces of satisfaction for the mountains of money that Altman stole from them.
And if you think that an LLM (a language STATISTICAL model, NOT a logic model) actually understands what a natural langauge rulebook actually MEANS, you are sadly mistaken.
Ford Motor Company fired somewhere around 15,000 engineers last year, because the C-suite “MBA bros” were just creaming their pants over the idea of running a Fortune 5 company with all of the middle and lower management, and engineers, accountants, marketing, etc. employees completely removed.
Well, that blew up. Ford’s quality took a steep nosedive, and the CEO of Ford is now desperately trying to rehire those engineers they booted. The ONLY people who can be replaced by LLMS are these C-suite idiots whose only thoughts are “do what everyone else is doing” … and any LLM can trained to “just follow the trend, bro.”