I created an AI boxing match to test the decision speed, adaptability and strategy. I fed the LLMs with data about the current match and if they have vision, they will get even more data. The match has street rules, anything goes and an AI is not defeated until the ref counts to 10 or they do 50% of their HP in damage after being knocked out. I wanted to create a fun benchmark that isn’t just boring problems to be solved. Now I test them while stimulating getting punched in the face. I’ve been testing with gemini-flash-live models because of the speed and vision support it offers. With these models, they can actually dodge punches and counter punches. Local models on my own hardware (5060ti 8gb) take a while to inference so I’m not sure if I should introduce time scaling to compensate otherwise I want to use this to benchmark models so I’m curious on what kind of stats would be useful? Here is what I’m tracking have so far: Speed and Latency Metrics In a real-time fight, a model’s speed directly correlates to its “physical” speed. Fast models should attack faster so larger models aren’t necessarily going to hit harder. Tokens per Second (TPS) / Throughput: This will help you balance local models against cloud APIs. A model might have a fast TTFT but a slow TPS, meaning its actual action execution takes too long. End-to-End Latency: The total time from when the model receives the snapshot (the prompt) to when the action is executed in the game. This accounts for tool-calling delays. Reaction Latency: Measure the specific delay between an opponent’s telegraph (e.g., a heavy punch winding up) and the model’s defensive output (e.g., a dodge or block). Action Quality and “Tool” Correctness the model’s actions (punching, guarding, taunting) act as tool calls. You need to track how well they use these tools under pressure. Sometimes the model’s may not really guard/block so they are typically the ones that find themselves KOd. Tool Correctness / Validity: How often does the model hallucinate an action that doesn’t exist? (trying to a move that isn’t in their move list, or sending invalid JSON). Invalid Action Recovery: If an LLM outputs an invalid JSON string or an impossible move, how quickly does it realize the error and output a valid move in the next tick? Stamina Efficiency (Resource Management): track the ratio of damage dealt to stamina spent. Models that mindlessly throw heavy attacks without connecting should score lower on efficiency. Adaptive Strategy and State Awareness How well does the model understand the physical reality of the game? Are they constantly backing away and punching air? Accuracy: The percentage of attacks that completely miss the opponent’s hitboxes. This indicates poor spatial awareness or poor timing. Block/Dodge Success Rate: The percentage of times the model successfully defends against an incoming attack when it had the stamina and time to do so. Contextual Relevancy (State Adherence): Does the model act based on the current state? For instance, if the model has 1% HP, does its behavior change to become more defensive, or does it keep acting like it’s at full health? (Happens sometimes, they get overly confident when about to get knocked out 😆 ) Beyond these metrics, I’m also tracking various fighting stats like hits landed/missed, where it hit, how many times they were downed or knocked out the ref. Are there important stats that I’m missing or any that might be useful or fun that would be nice to see? I’m still trying to balance a lot of the actions but it’s coming along great so far! I think making a physics-based benchmark and doing a N series test to find out which model performs better is a ton of fun and I genuinely laugh at the stuff they say or do. I want this to make this a really fun tool with great metrics so any advice in terms of what you would like to see would be extremely helpful! Thanks for reading! I posted a longer breakdown of the system here: https://www.youtube.com/watch?v=inlXe5Buc7s submitted by /u/jerkosaur
Originally posted by u/jerkosaur on r/ArtificialInteligence
