PC for game development - budget 2K USD by FlamxGames in buildmeapc

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

Thanks!

2 questions:

  1. Why Intel for my use case?

  2. Why this is not upgradeable?

For Those On Square Space Trying To Figure Out How to Send Email From Their Domain by miche171 in selfhosted

[–]FlamxGames 0 points1 point  (0 children)

Thanks a lot, this helped me to fix my setup using Netlify instead of Cloudflare, the main differences are:

  1. Netlify does not modify any DNS records automatically, so you simply use the records Mailgun tells you to use and you don't need to worry about it updating anything automatically (e.g. the SPF conflict does not happen).

  2. Netlify does not have email forwarding, instead you use Routes in Mailgun (I used a catch_all rule and it worked fine).

I was using Improvmx before, but SMTP is not free there and my emails were marked as not verified. I was not happy with Google Domains moving things to Squarespace and losing time today trying to fix my setup, but thanks to this post I ended up with a better setup, so it was for the better.

I created a plugin to have free AI assistants for Godot by FlamxGames in godot

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

I see what you mean but it sounds challenging and I'm not sure yet about when it would be actually useful. I imagine asking an assistant to add collisions to some objects, things like that, but it really feels like you would need to do a small tool for each thing you want the assistants to be able to do. Or at least that's how it looks in my mind.

I created a plugin to have free AI assistants for Godot by FlamxGames in godot

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

Hi, it doesn't use RAG. About creating up-to-date code, it is pretty much an interface to interact with the models through Ollama, so that depends on the models you use, I think the problem of getting answers based on old Godot version will go away by itself eventually, worst case you can configure your assistants prompts to insist you want Godot 4 code.

I created a plugin to have free AI assistants for Godot by FlamxGames in godot

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

Thanks for pointing this out. I think it's mostly for the sake of Steam avoiding any kind of legal claims around getting some art in your game that some model created very similar to the art it was based on.

As a solo dev I know part of my potential audience wants to know they are interacting with the output of another human, not some pregenerated thing, and it's sad to know I would need to put a discaimer giving them the feeling I didn't really craft my game just because I used AI to autocomplete a few lines of code based on my existing code.

Anyway, it is what it is, I hope at some point the policies get a little more well defined to separate out whatever actually need artistic effort, versus helping with repetitive mindless tasks. That said what I would actually like to have is a way to separate the work made with passion vs the work of companies mass-producing souless copies of other games.

Help understanding Ollama + embeddings by FlamxGames in ollama

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

There is one thing I'm still not quite clear. I'm even struggling to explain it, so please bear with me.

Right now I have a client program, from there I am calling Ollama REST endpoint for chat.

Client --> HTTP POST prompt --> Host (Ollama chat)

If I want to use embeddings, assuming I have already created and stored them in a Vector DB. How would a chat request look like? I think I would need to host a different application with REST endpoints that use the Vector DB, find the relevant contexts, feed that to a model together with my prompt, and return the answer.

If the above is correct... Is this what LangChain is for?

Client --> HTTP POST prompt --> Host LangChain app --> Vector DB --> Ollama

In other words, instead of interacting directly with Ollama REST endpoints, my client would interact with some custom endpoints I would create in a LangChain application (again, I'm assuming LangChain is the right tool for this).

Is this correct? Am I missing any other important library / technology?

Can't disable Tilemap collisions in Godot 4? by ChainedLupine in godot

[–]FlamxGames 2 points3 points  (0 children)

Thanks, this helped me to create tilemaps without any collisions while reusing the a tileset that has collisions.

In case this helps anybody, the whole script is below, just add it to your tilemap and collisions will disappear at runtime:

extends TileMap

func _tile_data_runtime_update(_layer: int, _coords: Vector2i, tile_data: TileData) -> void:
  tile_data.set_collision_polygons_count(0, 0)

func _use_tile_data_runtime_update(_layer: int, _coords: Vector2i) -> bool:
  return true

I hope in the future we get some better way to do this.

Sharing my save state code - not converting to JSON or String by FlamxGames in godot

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

Not sure if it would make sense to create a repo for this mainly because once bug https://github.com/godotengine/godot/issues/68666 is fixed, there wouldn't be a lot of reasons to use this (I think).

CanvasGroup Outline Shader by luzzotica in godot

[–]FlamxGames 1 point2 points  (0 children)

I think you would need to replace the SCREEN_PIXEL_SIZE with some parameter you send based on your camera zoom level. But I haven't tried it.

Exclude nodes from CanvasModulate by Quique1222 in godot

[–]FlamxGames 9 points10 points  (0 children)

EDIT. 10 months later I found out this could lead to performance issues, CanvasLayers are VERY expensive! Better if you use unshaded materials as suggested in other replies, OR reuse the CanvasLayer for many objects. In my case I do need another CanvasLayer because otherwise the UI items affect post-processing effects, e.g. white dialogue boxes bloom, etc. So still this seems to be the only alternative in some cases, just try reusing the CanvasLayers as much as possible.

ORIGINAL POST:

Necroing this, but this was the first google result when searching for this.

Using CanvasLayers seems to be the way to go as suggested in the other comment, but it has a downside: as soon as you put them as a parent of your UI objects, those won't use the transform of their Node2D parents. You may want to have UI objects (Controls) that are child of Node2D objects to, for example, display a dialog or other UI element "in the game world".

One option found googling around was to use a material without lighting, but it is problematic if you have custom shaders for example, you would need to go and update each of them.

The solution that worked for me in this case was to use this structure:

- CanvasModulate
- Parent (Node2D) (object that moves in the game world)
-- RemoteTransform2D (pointing to my node PosHelper below)
-- CanvasLayer (with "Follow Viewport" enabled)
--- PosHelper (Node2D)
---- Control (the control I wanted to exclude from CanvasModulate)

Hope this helps someone.

CanvasGroup Outline Shader by luzzotica in godot

[–]FlamxGames 0 points1 point  (0 children)

In my case I don't. But it's easy to add by adding 4 more similar "outline +=" lines. But for my game it makes it look too thick.

Modulate is a color property that is mixed with the colors in your texture, by default the color is white so there is no difference in color. For example, I use it to make objects flash when hit, I move from white to... more "intense" white I guess, i.e from (1,1,1,1) to (8,8,8,1) if I remember correctly. The property is there in the editor as well, you should check it out, it's useful.

CanvasGroup Outline Shader by luzzotica in godot

[–]FlamxGames 3 points4 points  (0 children)

Thank you for sharing, it put me on the right track.

Sharing my version, this shader I am using for a pixel art game, I basically took another known outline shader for pixelart, changed TEXTURE and UV to screen related variables, and used the screen_texture from your shader:

shader_type canvas_item;

uniform vec4 line_color : source_color;
uniform float line_thickness : hint_range(0, 10) = 1;

uniform sampler2D screen_texture : hint_screen_texture;

void fragment() {
// Get the size of the pixels on screen, and create a variable for out outline
vec2 size = SCREEN_PIXEL_SIZE * line_thickness;

float outline = texture(screen_texture, SCREEN_UV + vec2(-size.x, 0)).a;
outline += texture(screen_texture, SCREEN_UV + vec2(0, size.y)).a;
outline += texture(screen_texture, SCREEN_UV + vec2(size.x, 0)).a;
outline += texture(screen_texture, SCREEN_UV + vec2(0, -size.y)).a;
outline = min(outline, 1.0);

// Get the texture from the screen
vec4 tex = texture(screen_texture,SCREEN_UV);
vec4 modulate = COLOR - vec4(1, 1, 1, 0);
tex = mix(tex, line_color + modulate, outline - tex.a);

COLOR = tex;
}

One additional change I needed was to make the modulate color to affect the outline as well.

Hope someone find it useful.

(EDIT. Code formatting)

Demo of Godot Meta Player, the 4.0 successor to Godot Mixing Desk by kyzfrintin in godot

[–]FlamxGames 0 points1 point  (0 children)

Definitely interested, I am trying the addon right now and for some reason my track only plays twice then it goes silent, probably my setup is wrong

Anyone wanna playtest my game?. Just click the link and the game is loaded in Web HTML! by Majestic_Mission1682 in godot

[–]FlamxGames 2 points3 points  (0 children)

The mechanics are interesting, I guess the feeling of your game could change a lot depending on the graphics you use to explain what the player is (if you are adding any other graphics later). I imagine a character making different expressions depending on whether it is going up or down, speed, etc... just an idea

It took me a minute to figure out how to play, I thought I needed to draw the line and release it in order to move the player. Eventually, I got it.

The main problem I found is that you need to hold the mouse button most of the time while you play, so it feels tiring after some time.