Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Thanks for the reply! What follows is a kind of general reply, for anyone who reads the first two posts and has a similar thought:

So for clarity on the stats, they are definitely intertwined, and the more I think about it they probably are enough so to be one variable. Part of why I'm doing this is to see what works and what doesn't about the idea, so I'm glad you said something! Moving forward, I'll start with a single "temperature" variable, and see where that leads. I think a good next step, before I write a single additional line of code, will be diagramming the system. I have a bad habit of diving into code...

As for the overlay, the issue was that while it's easy in Godot to draw a translucent rectangular overlay across the screen, it isn't as trivial to make a transparent circular cutout within the rectangle as I thought it would be. My solution is one that I found suggested on a forum (note to self, edit a link in here next time I'm on my computer), which is to esentially screen cap the game before the overlay, draw the overlay, and then to project the screencap onto a white circle using a shader. What I want to write up is how I did that, because nobody who's used it explicitly lays out the solution steps in one place! The steps I used fall into a class of things I would call "minimally documented."

I'm a little concerned the process of shading like that will be resource intensive, since it runs a function on every pixel in the circle. For now, I don't know enough to test the resource usage, but if I run into lag problems in the future, this will be the first thing I try disabling. At the same time, it's going to be a low-res 2D game, so running in an engine that can handle 3D shading makes me think it won't be an issue.

I hope any of that was actually illuminating! (Please let me know if it wasn't--Part of why I'm doing this is to devlog for the first time, and I def need to work on my communication skills)

(+1)

oh interesting that explanation makes a lot of sense! i'm not familiar enough with godot to offer any perfect alternatives, but if i were to approach the problem in an engine i'm familiar with  personally i would create a mask for the overlay. you could do this with a texture for more of a unique effect, but if you just need a circle you could use a "distance from point" function to create a gradient and remap it to adjust the softness of the edges. it's probably a bit complicated to explain without me being familiar w godot's shader functions...

that said though i'm glad you could find an alternative despite not finding a single one online--it's awesome that you're considering documenting it too! you never know who might need it in the future.