• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics in ~comp with the tag "godot". Back to normal view / Search all groups
    1. Godot beginners: Here's how to fade in a 3D mesh

      I'm still a beginner at Godot. I've been playing with Godot and 3D scenes. It's great finally feeling comfortable enough to navigate the UI from watching the tutorials from Zenva/Humble Bundle....

      I'm still a beginner at Godot. I've been playing with Godot and 3D scenes. It's great finally feeling comfortable enough to navigate the UI from watching the tutorials from Zenva/Humble Bundle.

      Recently something that sounds straightforward took a long time for me to figure out: Fading in a 3D mesh. The solution is simple:

      @onready var mesh: MeshInstance3D = find_child("body-mesh")
      
      func _ready() -> void:
      	_set_material_alpha(0)
      	SomeSingleton.some_signal.connect(_fade_in)
      
      func _set_material_alpha(alpha: float) -> void:
      	var material: Material = mesh.get_active_material(0)
      	if material is StandardMaterial3D:
      		material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA_DEPTH_PRE_PASS
      		material.depth_draw_mode = BaseMaterial3D.DEPTH_DRAW_ALWAYS
      		material.albedo_color.a = alpha
      
      func _fade_in() -> void:
      	var tween = create_tween()
      	tween.set_ease(Tween.EASE_IN)
      	tween.tween_method(_set_material_alpha, 0.0, 1.0, fade_in_duration_seconds)
      

      The key being setting the material properties and using its albedo color to update transparency. The depth draw mode is needed, otherwise the result is ugly with jagged pixels during the tween.

      Getting to the solution was the hard part. Searching forum posts I was led down some rabbit holes like using shaders—overkill for this situation. (There is a cool site though, for when I do end up needing custom shaders: https://godotshaders.com/.) Asking an LLM also didn't help much, probably because my prompt was wrong. I tried again just now and it gave me something closer to a correct solution, but missing some parts like the depth draw mode, which (by trial-and-error and reading the docs) I found is necessary for a good quality render, when using transparency.

      Another small pitfall I found was that trying to change the material.transparency caused stutter. I was trying to disable transparency when the mesh was at 100% alpha, since I figured opaque rendering is cheaper. However I speculate the engine recompiles the shader when I turn off transparency, which causes the stutter. So I don't modify the material.transparency beyond that initial setting.

      Also thought I'd mention, I'm using free placeholder art assets from https://kenney.nl/ - an amazing resource.

      Aside: Shaders

      During this I learned that adding shaders to an imported 3D model in Godot is somewhat convoluted:

      1. Import the .glb model
      2. Clone the auto-created scene to an inherited scene, because I'm not allowed to directly edit that auto-created scene
      3. Extract the material (UV colormap image) from the .glb by double-clicking it in the FileSystem tab
      4. Apply the extracted material to the mesh under Surface Material Override
      5. Add a "Next Pass" material, a ShaderMaterial, to that surface material override
      6. Create the shader script
      7. Pass in parameter values from the GDScript to the shader script using code like: shader_material.set_shader_parameter("color", Color(1.0, 1.0, 1.0, alpha))

      This didn't work so well for me though, because the shader I was using was changing the ALBEDO and turning things white. If I knew anything about 3D programming I'd probably find a way to update the existing color value at each pixel, instead of setting albedo white everywhere. The end result of the shader I was using was that the models were turning too white. So that was a dead end.

      Anyway mainly leaving this here as reference for posterity. Feel free to share a story or constructive feedback if there's anything.

      21 votes
    2. Open-source robotics simulations on Godot and Unreal Engine, and ROS2

      I'm info dumping some links about open-source robotics. The rabbit hole runs deep and this barely scratches the surface. Disclaimer: I haven't tried any of these yet. Based on a cursory search and...

      I'm info dumping some links about open-source robotics. The rabbit hole runs deep and this barely scratches the surface.

      Disclaimer: I haven't tried any of these yet. Based on a cursory search and following links from the great Open-source robotics Wikipedia page.

      Robotics simulation on Godot

      Robotic car simulation on Unreal Engine and Unity

      • https://github.com/carla-simulator/carla - "CARLA is an open-source simulator for autonomous driving research." They mostly target Unreal Engine. Regularly updated and popular with 13k stars on GitHub.

      • https://github.com/microsoft/AirSim - Microsoft and IAMAI collaborated (plus DARPA funding?) to create an open source simulation platform for both flying drones and autonomous cars. Targets Unreal Engine and experimentally Unity also. Soon being sunset and replaced with a new project confusingly named "Project AirSim."

      • https://github.com/iamaisim/ProjectAirSim - The successor to AirSim. The GitHub shows it's only at version 0.1.1 though.

      Robot Operating System (ROS2)

      How to get started?

      That's a lot of links. I'd first figure out what I want to do. Humanoid robots seem popular lately—like the Berkeley 3d printed robot—so it'd be interesting to start there, although it doesn't map cleanly onto the projects I linked. So maybe if I imagined a robot with a human torso and arms, but with wheels and car-like locomotion. Then I could use a combination of the car simulators and probably ROS2 to deal with the upper body components? Or maybe there is another solution for the torso and arms that is a more direct fit than ROS2? Maybe iRobot/Roomba has a better solution for the car-like locomotion at this small scale?

      Anyone used these before and have a story to share? Anyone curious to try one out and report back? I plan to, but no idea on my schedule.

      11 votes
    3. GUI dev using Godot

      Most of my professional work involves the plumbing side of things (e.g. APIs, integration etc.) So I've come to front end quite late, and dabbled in HTML/CSS/JS frameworks, and tried to create a...

      Most of my professional work involves the plumbing side of things (e.g. APIs, integration etc.) So I've come to front end quite late, and dabbled in HTML/CSS/JS frameworks, and tried to create a thing or two using Python GUI frameworks too.

      After spending a bit of time learning about game development in Godot, I decided it might be fun to try and build a simple desktop app in the engine, and it surprised me how easy it was, it took me a day or two to build a basic git front end.

      Of course, if you ever need to build something outside of GDscript, it'll require building an extension, probably in C++, but it makes me wonder if those sorts of tools exist outside of games engines? It feels like game devs get a wonderful tool that they use as a garnish on top of the real work (the game).

      I'd be keen to know what people who regularly build front end tools tend to prefer to use.

      ETA: I just realized the title is a poor summary of what I'm actually asking about, sorry!

      22 votes
    4. Game development career advice

      Hi, I'm curious if anyone in this group has achieved success in game development, whether that's carving out a career or earning any amount of income from it. I'm currently working as a software...

      Hi,

      I'm curious if anyone in this group has achieved success in game development, whether that's carving out a career or earning any amount of income from it.

      I'm currently working as a software developer, but my passion lies in game development. I'm all too aware that achieving any measure of success in this field is next to impossible. Hence, I'm reaching out here, hoping to gather insights and advice from those who have walked this path in the past, or those who are currently walking alongside/behind me.

      One of my specific questions is about the types of games I should focus on creating. Specifically, I've heard differing opinions on whether it's more advantageous to develop a series of small games with advertisements for mobile platforms or to invest in larger, premium games for platforms like Steam. Can anyone share their insights or experiences regarding this dilemma? Is there a clear advantage to one approach over the other?

      Currently I am using godot to make a larger scale game, but I am considering switching to defold and making smaller scale games with ads.

      I saw some folks here discuss making games for the playdate. How much should one consider targeting niche platforms like this? Some of the users I saw discuss this seem to have had good success.

      Some general questions: How did you break into game dev? What were you doing before? Do you see game dev as a viable career, only as a source of side income, or is it just a hobby?

      Any guidance or experiences you can share would be greatly appreciated.

      17 votes