Excerpts:
The Verbal Verdict demo drops me into an interrogation room with basic facts about the case to my left, and on the other side of a glass window are three suspects I can call one at a time for questioning. There are no prompts or briefings—I just have to start asking questions, either by typing them or speaking them into a microphone
The responses are mostly natural, and at times add just a bit more information for me to follow up on.
Mostly. Sometimes, the AI goes entirely off the rails and starts typing gibberish
There are, of course, still many limitations to this implementation of an LLM in a game. Kristelijn said that they are using a pretty “censored” model, and also adding their own restrictions, to make sure the LLM doesn’t say anything harmful. It also makes what should be a very small game much larger (the demo is more than 7GB), because it runs the model locally on your machine. Kristelijn said that running the model locally helps Savanna Developments with privacy concerns. If the LLM runs locally it doesn’t have to see or handle what players are typing. And it also is better for game preservation because if the game doesn’t need to connect to an online server it can keep running even if Savanna Developments shuts down.
it’s pretty hard to “write” different voices for them. They all kind of speak similarly. One character in the full version of the game, for example, speaks in short sentences to convey a certain attitude, but that doesn’t come close to the characterization you’d see in a game like L.A. Noire, where character dialogue is meticulously written to convey personality.
Wait… why the heck does it need to open a network port?
It likely starts the LLM it uses as a service, and it requires running on a port. They could of course have rewritten it to not use a port and instead use other mechanisms possible when you’re in control of the code but then that requires modification of the LLM project they use and would make updating its version harder so such a thing would be reserved for the full release or skipped all together because it’s not really a big deal. All this assuming that they do use one of the hundreds of open source local LLM projects floating around Github.
So laziness. Got it.
(They could easily move to an ipc mechanism that doesn’t require binding a port on a network interface but that’d require time and effort and why bother when the goal is to ship something fast and cheap while the AI hype is strong)
Sounds like a fun way to directly mess with their model though.
We’re talking about a demo here…
Why do you need to open a port if its listening locally?
Actually it’s not rare that a part of interprocess communication between a software’s processes is done through localhost networking
But what firewall blocks that by default?
Probably none, but I think OP did not say this
OP said that the port wasn’t open, unless they meant the port was already in use rather than the port was closed?
The warning message said the port was not open, but my guess is that the message was inexact. I doubt the port was ever restricted at all. In fact – and with no evidence one way or the other – it wouldn’t surprise me if the only issue was my old video card and the ‘port’ error was simply the first error message the game found on initial launch. For my theory to make sense, though, some initial setup piece must have completed on 1st launch such that the 2nd launch had a newly made config file or something and that extra piece let me proceed to a more accurate error.
If it runs the model as a service locally, it’s probably communicating to the game via a network port.
Similar to how some single player campaigns are still technically running a “server” for the game, despite being single player.
It is probably easier. I used to run a program that ran its own mini server-like process to send input to other open programs. It used local ports. It didn’t need internet, but it did need ports. My first guess is that programmers already know a bunch of dev libraries that deal with ports so it is easier to use that than write something else from scratch.
Probably or the ai if I should have guessed in the backend it’s using something like local ai, koboldcpp, llamacpp probably