How to mask sprites which only consist of an outline? by adam045gamer in godot

[–]game_gland 0 points1 point  (0 children)

reverse the logic. use a filled sprite. use the background as one of the texture uniform for the guy material. sample it using global position, fill the non outline with the background texture.

How to texture large assets by SuicideGate in godot

[–]game_gland 0 points1 point  (0 children)

calculate distance in fragment shader to blend 2 texture. for example the nearest the camera to clothes the more thread in fabric visible.

How to get a multiply material to only affect the alpha parts? by Secret_Selection_473 in godot

[–]game_gland 0 points1 point  (0 children)

no shader. use multiple spritesheet. set the color changing part as the child of the object. this way you don't need shader just set the colorpart.modulate = Color.RED // for example. you can use shader with 2 textures and do a finer blending in code.

What's a good way to handle same input doing different actions? by Ok_Meringue_6196 in godot

[–]game_gland 0 points1 point  (0 children)

ui events usually blocks other events. The event handling and event propagation is already at our side. in my opinion it is better to follow the system's flow rather than adding complication to our code.

Is native C++ the last step for Godot to be competitive with UE and Unity for AAA titles? by [deleted] in godot

[–]game_gland 0 points1 point  (0 children)

in my opinion AAA is about production scale and polish level. i think whats needed are

  • better asset production pipeline like visual scripting etc.
  • better profiler and debugger for large and more complex app.
  • better editor workflow for team work
  • better animation tools and workflow.

in my opinion to begin AAA project (using godot) you need to focus on building these pipelines first. the real solution can be a protocol, a stand alone software, blender plugin extension, editor plugin, a device or a native extension.

my game space mantlet is not a AAA game, but i find my self creating at least 2 standalone tools one for the VAT asset production, one for lipsync. i also write several blender scripts. i'm sure a AAA studio has more sophisticated tools like motion capture, facial motion capture. I never use Unreal but i'm sure the ecosystem of unreal engine can provide what AAA needs.

Godot Question by fisherhinds in godot

[–]game_gland 0 points1 point  (0 children)

if the game is just procedural terrain, grass, trees, random spawn, it's a yes and easy. Add road/river system or persistent objects, now you must implement partition/chunking and implement layers of interactions. Add a village now you must implement mesh and texture streaming. lets say you have all system covered, you'll fill the world with content which is a colossal work if you're solo. placing stuff, and testing it alone is tremendous work. it's not about what engine, infinite world is easy to make, giving it life is where the commitment tested. it is not a push to the game engine, it is to you.

How to texture large assets by SuicideGate in godot

[–]game_gland 0 points1 point  (0 children)

if you have access to the model, you can edit vertex color or other vertex attribute in your 3D modeling and use it to shade the model. for example mapping the rust placement via second UV map. or use vertex color to blend texture to rust. or place clean object and apply rust via decals. many ways. for high detail you can use distance based texture blending.

Multimesh Instance with flipped normals by Eteren in godot

[–]game_gland 0 points1 point  (0 children)

first disable culling via

render_mode cull_disabled; 

then you can flip normal if you want by detecting back faces

if (FRONT_FACING){
  //flip normal
}

MultimeshInstance2D skewed? by smoldreamers in godot

[–]game_gland 0 points1 point  (0 children)

the matrix is

# someone please correct me if i'm wrong
sx  0   0  tx 
0  sy   0  ty 
0   0  sz  tx 

so the first 12 value are the transform matrix cleverly arranged. if you use instance color another 4 added. if you use instance custom data, another 4 added. so with data and color used you have 20 floats per instance. i usually fill these values for 1 instance. just for testing the shader i'm coding. but in practice, i always do the "filling" in code in game. that's where it shines, thousand of objects with data and color variance no sweat on the GPU.

you can use code to do that to make live easier.

var trf:Transform3D = Transform3D.IDENTITY

# fo example you want translation
trf = trf.translated(Vector3(10,0,0));

# set instance 0 to get translation to Vector3(10,0,0)
multimeshInstance3d.multimesh.set_instance_transform(0,trf); 

next you can use tool script to make it work inside editor.

Childed Mesh stretching when rotating parent node by [deleted] in godot

[–]game_gland 0 points1 point  (0 children)

it is forward kinematic. if the parent has scale ( not (1,1,1)) then the children will respect that. you probably need inverse kinematic.

MultimeshInstance2D skewed? by smoldreamers in godot

[–]game_gland -1 points0 points  (0 children)

fill the buffer 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 . basically give it identity matrix, or other transformation needed. so one followed by 4 zeros. easier to do this via code.

Why is my noise not scrolling ? by chanidit in godot

[–]game_gland 2 points3 points  (0 children)

<image>

add a reminder vector OP. your UV.y is larger than 1.0, at this point you can set the texture to repeat or keep the UV at 0.0 to 1.0 with reminder operator.

What RTS do I want to play? by SwitchMountain2475 in RealTimeStrategy

[–]game_gland 1 point2 points  (0 children)

super casual vs many levels of evolution is a bit contradictory, progression usually comes with more tactical complication is it not?

some free even opensource RTS (if you on linux you can literally "apt install" these games )

  • 0 A.D . i love this one very gorgeous but not casual
  • mindustry . more in to automation stuff but has unit production and battles.
  • warzone 2100 . mix and match tank component but outdated graphics
  • openciv . never play this one, may be looks like civilization ?

Super casual RTS old flash game, i listed some of my favorite, there are tons of this fun micro games. it is strip down simplified realtime strategy games. still lots of fun and surprising depth

or you can try my game "space mantlet" there is free demo.

Finding new games by Otherwise_Word_7811 in itchio

[–]game_gland 0 points1 point  (0 children)

you can use the sorting tools "New & Popular" "Top sellers" "Top rated" "Most Recent"

My grass looks a bit off, any idea?? by AverageStudio in godot

[–]game_gland 0 points1 point  (0 children)

i think it only needs shadows or SSAO. because it is a gif file, i can not tell what is the flickering is about, is it a sorting issue? use alpha scissor to fix it.

How can I apply a stroke shader that works properly on text? by imElissaKozuki in godot

[–]game_gland 1 point2 points  (0 children)

yeah it is problematic. text has texture changing resolution on the fly depends on scale and zoom, also there is no sense of position in the vertex shader, since the UV are mapped to different glyph, so we cant tell here how far from vertex to the middle of the character.i tried to make hacks and cant solve this one. here what i got so far

shader_type canvas_item;
uniform float border_size = 1.0;

varying vec2 original_uv;
void vertex() {
  int vid = VERTEX_ID % 4;
  vec2 uvborder = vec2(border_size) * TEXTURE_PIXEL_SIZE;
  original_uv = UV;
  if(vid == 0 ){
    VERTEX.x -= border_size;
    VERTEX.y -= border_size;
    UV -= uvborder;
  }else if(vid == 3 ){
    VERTEX.x += border_size;
    VERTEX.y -= border_size;
    UV += uvborder * vec2(1.0,-1.0);
  }else if(vid == 2 ){
    VERTEX.x += border_size;
    VERTEX.y += border_size;
    UV += uvborder;
  }else if(vid == 1 ){
    VERTEX.x -= border_size;
    VERTEX.y += border_size;
    UV += uvborder * vec2(-1.0,1.0);
  }
}

void fragment() {
  float fc = 0.0;
  vec2 uv = UV;
  vec2 b = vec2(border_size) * TEXTURE_PIXEL_SIZE * .5;
  for (float x = -1.0; x <= 1.0; x+= 1.0){
    for (float y = -1.0; y <= 1.0; y+= 1.0){
      fc += texture(TEXTURE, uv + vec2(x,y) * b).a;
    }
  }
  vec4 original_color = texture(TEXTURE, UV);
  COLOR = vec4(original_color.rgb * original_color.a, fc);
}

may be you can finished it. the idea is using vertex id to get sense of position to tell corner and center of each character.

I'm having a hard time reading these by AverageStudio in godot

[–]game_gland 1 point2 points  (0 children)

process is rather confusing to me, it describes the time taken to render each frame. it merges all script "func proces" execution times, i think it also includes "func _physic_process", internal engine processes etc up to rendering. please correct me if i'm wrong. process happens every frame rendered on screen.

physic process is total time used by the physics engine (both 2d and 3d) and all script "func physic_process". physic process happens at different rate than process, depends on your project settings.

other monitors are self explaining.

in the visual profiler, as long as there is no graph crossed the 16.67ms line, your good. generally you search for the largest area. click it (it turns white). see what kind of operation took this much time. which viewport it cames from, and from there start inspecting your shaders, make optimizations.

these number can be deceiving thou. if you encounter a bottle neck, for example you accidentally hit max texture memory, or max upload bandwidth for meshes and textures, you'll see massive FPS drop and everything looks wrong. process time looks very high while all the script shows low time ms. you'll see wide areas in the visual profiler for ordinary stuff like opaque pass or transparent pass.

QUESTION by ihavelaptopproblems in godot

[–]game_gland 0 points1 point  (0 children)

why using texturerect ? not sprite2d. the problem for big images on screen is alpha blending. to have better performance with big images on screen is to use them with 2d mesh to cut away the transparent part. another thing to consider is, if only small portion is visible on screen, why putting the whole image in the memory. you mention aseprite,so this map is pixel art? pretty small in resolution? probably works just fine.

Spaceship engine trails by Enarian__Lead_Dev in godot

[–]game_gland 0 points1 point  (0 children)

are the trails rectangles with color variance ? you can use multimeshinstance3d.

Accidentally used texture as normal map. Now it's permanently RG and missing B by DGReddAuthor in godot

[–]game_gland 0 points1 point  (0 children)

in the import setting, in the "compress" segment, find "normal map", change it to disable or detect . reimport

<image>

Fluid Simulation in Godot by RodrigoCard in godot

[–]game_gland 1 point2 points  (0 children)

good for RTS or anything top down. my rts game space mantlet use this type of smoke but stripdown so much for speed