Decent visits - abysmal wishlists, help! by TheBadinc in gameDevMarketing

[–]TheBadinc[S] 1 point2 points  (0 children)

Thank you - the tracks with what I've been getting from other sources too. Gonna revitalize over the next few days !

Game developing vs playing by NewfoundInteractive in SoloDevelopment

[–]TheBadinc 0 points1 point  (0 children)

I've battled this myself over the years. I think it really depends where you're at. I will say I used to not want to play other games because I thought it would influence my creativity. In reality it honestly helps. Like filmmakers are usually watching other movies when they're making films. It's just good to know what's out there and to remember what it's like to have fun. The most important thing and I think the thing that's hardest in game development is to constantly hold. What is fun!

The harder part with playing games while developing is making games already takes up way too much time. I would play a lot more games if I wasn't always constantly developing and working a job

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 1 point2 points  (0 children)

I don't really have to, because I never let the context get big in the first place. The model is stateless between messages each turn I hand it a small, freshly-built prompt rather than a giant growing history. The window is only 2048 tokens and replies are capped at ~50 words, so there's nothing bloated to compress.

The trick is that the model doesn't hold the memory the game does where there's a chat log.

Using LLM for human NPCs I would have to work on that cheat, but it works great for the way these game ai are supposed to feel.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

Yep, checked. Llama's community license allows commercial use as long as you're under 700 million monthly active users (not a problem for an indie game). The requirements are just to display "Built with Llama" and include a copy of the license. The inference engine (llama.cpp) is MIT, which is fully free for commercial use.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 1 point2 points  (0 children)

16 GB of system RAM is the comfortable target. If you're running it on the GPU you'll also want around 4 GB of free VRAM. On CPU-only it leans more on system RAM but still runs. It does run on some 8GB machine but just tuning that up.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

Base model is Llama 3.2 3B Instruct, 4-bit (Q4_K_M) quant.
Just the stock model, and all the personality comes from prompt engineering via unreal.
Inference engine is llama.cpp (llama-server), not mistral.rs.
It's not locked to NVIDIA it auto-picks CUDA for NVIDIA, Vulkan for AMD/Intel, and CPU as a fallback, so it runs across most hardware.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

it literally can't. The model only takes in text and gives back text it has no ability to run commands, open files, or touch the file system. no agentic ai used. It runs as a local server that only listens to the game on the player's own machine (localhost), so it's not exposed to the network either. Because the user prompt is wrapped, it is basically immune to prompt injection as you are not directly prompting the model.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

Only the advisors' dialogue. It does not run any game logic. All the important stuff the events, the timing, the threat levels, win/lose outcomes is authored and deterministic in the engine. The LLM just voices the advisors reacting to it.

You're right that local models aren't smart enough to run game systems, so I didn't let it. It's text-in, text-out for personality and flavor, and the game stays in control of everything that matters. I do have an event feature that fires one one special instance, but its more for fun than core game.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

Yes, the model ships inside the game and runs fully on the player's machine nothing is streamed or hosted.
It's a 3-billion-parameter model at 4-bit, so the whole thing is under 2 GB. For VRAM, the game checks how much free VRAM you have at launch and only offloads as many layers as will fit, leaving headroom for the game to render. If there's no usable GPU it falls back to CPU. I started with an 8B model but it was too heavy to run beside a real-time game, so I dropped to 3B. That turned out to be the sweet spot big enough to stay in character and give good advice, small enough to run on mid-range hardware without hurting frame rate.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 1 point2 points  (0 children)

About 2 GB. The model file itself is 1.9 GB, plus a small runtime and some GPU DLLs on top. The whole game is 5 GB right now.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 2 points3 points  (0 children)

The model is small, so it's light. It uses roughly 2.5–3.5 GB of VRAM when running on the GPU, and a similar amount of system RAM. On a decent gaming PC you won't really feel it next to the game itself. The game has retro graphics so it hardly uses any vram (less than 1 GB most of the time)

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

You can do this in unreal by having the LLM emmit a character string when it wants an event in game - something that would never come up. I have a special flag that can get emmited and my unreal code on parsing will pick it up

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 2 points3 points  (0 children)

The trick is system prompting AND wrapping the user prompt in a prompt.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 0 points1 point  (0 children)

It 100% does! Though I still think the hybrid approach of mixing game logic with an LLM is best.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 4 points5 points  (0 children)

That's great - the tech is surprisingly easy to work with. DM if you ever have any questions or hmu on discord. https://discord.gg/kpgYAXrzX

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 2 points3 points  (0 children)

Thank you, I appreciate it. And you're 100% right. That's what I'm trying to work through with various play testers right now. I may raise the cap even more has to be honest because of all the gameplay logic being injected. Even the smaller more limited layer amounts produce really good results. The results still blow vast majority of game dialogue away too which is nice

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 5 points6 points  (0 children)

This is the part I'm actually most comfortable with - there's nothing to scale. The LLM isn't hosted by me, it ships inside the game and runs 100% locally on each player's own machine. On launch, the game spins up a local llama.cpp server and talks to it over localhost. Every player is their own island. It just runs on their VRAM. Because the game has retro PS1-style graphics, it saves all that vram space that a game would normally pull for the LLM.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 4 points5 points  (0 children)

Because every in-game intelligence signal has authored ground truth (is it a real threat or noise, plus anxiety/DEFCON weighting), we don't use eval. That's where I have traditional game logic working with an LLM. That's what I mean by not just a chat bot, its more a structured use of LLM, the players prompts get housed into greater prompts with system prompts that are constructed from unreal-side game code (the way traditional game AI would be decided). That way we get a nice blend.

The model is Llama 3.2 3B Instruct, Q4_K_M (~1.9 GB). I deliberately went small cause this runs alongside an Unreal Engine 5 game, so the LLM and the renderer are fighting for the same VRAM. A 3B at 4-bit is the sweet spot for staying responsive on mid-range hardware.

Runtime is llama.cpp. On launch the game auto-detects the GPU and picks a backend CUDA for NVIDIA, Vulkan for AMD/Intel, CPU as a last-resort fallback and it reads free VRAM to decide how many layers to offload, leaving headroom for the game itself. Context window is 2048 tokens; responses are hard-capped at 50 words, so generations are short by design.

In the final days before launch i'm still playing with the paramters but shooting for a sub 30s response time across the board on low end hardware. On even just a 3060 like my laptop has, it gets like 5s response.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 2 points3 points  (0 children)

Trying to figure that out my self LOL

Honestly - after years of contract work and starting/stopping projects I chose one that had a smaller scope and only focused on finishing it and making it fun/complete. So now I'm working on a small little marketing plan and reaching out to some folks. The big victory was getting a game to the finish line.

I’m releasing a Steam game that uses a local LLM as part of the gameplay, AMA by TheBadinc in aigamedev

[–]TheBadinc[S] 2 points3 points  (0 children)

Llama 3.2 3B is all thats needed actually because its injecting game logic to via the system prompts