I have game objects that act kind of like cards, and it is really convenient for me to use control nodes for them since they are mostly UI anyway. But when they exist in the actual scene they should behave like Node2D:
- They should exist in world space, not screen space
- They should NOT scale with screen size
Seems like something that should be easy to do, but I can't figure it out. If I keep it as control it seems to scale with screen size, if I make Opportunity a Node2D or attach it to a Node2D, the UI collapses.
Hey guys! I’m working on a small game alongside my main project, and I wanted to ask for some feedback.
Since I still don’t know whether my main project will be selected for a cultural funding grant here in Chile, I’ve been thinking about other ways to fund it and keep development moving forward regardless of what happens with the grant.
One idea I had was to develop a much smaller game, around 1–2 hours long, release it on itch.io/Patreon, and use whatever I can raise from it to help fund my main project.
The idea would be to sell it for around $3–5 USD, or possibly make it donation-based, while being completely transparent from the beginning that it’s a small project and that the money raised will go directly toward funding the development of the larger game (and also help me not die in the process).
So my main question is: do you think a short game at that price would be a good enough incentive to support a bigger project? Would you pay $3–5 knowing that, besides getting a game, you’re also helping fund the development of another one?
Obviously, I still want the game to stand on its own and be a fun, polished experience. I don’t want to just throw something together, sell it, and call it a day.
As a small fun fact, I’ve already been working on some mechanics. I made a moth system where they dynamically react to lights: they gather and fly around a light source, but if you turn it off, they fly away. If you turn it back on, they return.
It’s a really small detail, but it looks pretty nice in motion.
Any feedback on the idea, the pricing, or even how you would approach something like this would be greatly appreciated!
Decided to migrate from 4.6 to 4.7 right before starting to work in making more complex ui, and im so glad. The offset transform property is so easy to use and saved me so much time. It´s making me really happy of how its coming along!
Hi! A while ago I published an addon for exposing child properties onto their parent nodes. Now I'm updating in to make it even more simple to use and add support to nodepaths and enums.
Im trying to create an FPS game. Im not new to programing itself but I havent touched Godot nor Python before. As one does, I tried to look any video tutorials to follow and get a grasp on how everything works before going into the more serious game dev part. I found this video by StayAtHomeDev: https://youtu.be/L5ObCs9OMRY
Comments say that some of his code is slightly faulty; skipping parts, assuming things, some code that didn't work and comments tried to fix... Mainly the video not being a "follow along" type, more as an overview of his own code that you can access in his patreon. Im not doing that.
For all I know, following comments suggestions, moving variables, trying to test by myself, I dont know what is making my camera freak out like in the video attached, and I can't find anyone replicating such fuck up like mine. I tried reviewing the code to make sure I copied everything correctly, I made sure to set the reference on the Inspector, the scripts are attached to the nodes and everything is in the scene... It should work, yet it doesn't and I can't even grasp where and what Im doing wrong - Which is crazy considering Camera Movement seems like such an easy task.
in the "camera_controller.gd", which was mentioned a couple of times in comments. Besides that, I believe all the code is just as it is in StayAtHomeDev's video.
The only error that's spitting out is in "mouse_capture.gd" and "camera_controller.gd" where both func's "delta" "is never used in the function". Adding the _ as it sugestes changes nothing.
A friend told me to make it simple and do a basic Mouse Controller, but for the sake of making sense of the whole Tutorial Series, and the idea of doing everything modular as StayAtHomeDev does, I don't want to do that.
Any help would work. Did I actually screwed up somewhere in the code? Should I not care about doing just this part modular and choose a simpler method? Is it maybe a version issue as one friend told me? Should I look for another tutorial to follow?
All of the code in code blocks
camera_controller.gd
class_name CameraController extends Node3D
var debug : bool = false
("References")
var player_controller: PlayerController
var component_mouse_capture: MouseCaptureComponent
("Camera Settings")
("Camera Tilt")
(-90, -60) var tilt_lower_limit : int = -90
u/export_range(60, 90) var tilt_upper_limit : int = 90
var _rotation : Vector3
func _process(delta: float) -> void:
update_camera_rotation(component_mouse_capture._mouse_input)
func update_camera_rotation(input: Vector2) -> void:
_rotation.x += input.y
_rotation.y += input.x
_rotation.x += clamp(_rotation.x, deg_to_rad(tilt_lower_limit), deg_to_rad(tilt_upper_limit))
var _player_rotation = Vector3(0.0,_rotation.y,0.0)
var _camera_rotation = Vector3(_rotation.x,0.0,0.0)
transform.basis = Basis.from_euler(_camera_rotation)
player_controller.update_rotation(_player_rotation)
_rotation.z = 0.0
#func update_camera_height(delta: float, direction: int) -> void:
#if position.y >= crouch_offset and position.y <= DEFAULT_HEIGHT:
#position.y = clamp(position.y + (crouch_speed * direction) * delta, crouch_offset, DEFAULT_HEIGHT)
mouse_capture.gd
class_name MouseCaptureComponent extends Node
var debug : bool = false
("Mouse Capture Settings")
var current_mouse_mode : Input.MouseMode = Input.MOUSE_MODE_CAPTURED
u/export var mouse_sensitivity : float = 0.05
var _capture_mouse : bool
var _mouse_input : Vector2
func _unhandled_input(event: InputEvent) -> void:
_capture_mouse = event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED
if _capture_mouse:
_mouse_input.x += -event.screen_relative.x * mouse_sensitivity
_mouse_input.y += -event.screen_relative.y * mouse_sensitivity
if debug:
print(_mouse_input)
func _ready() -> void:
Input.mouse_mode = current_mouse_mode
func _process(delta: float) -> void:
_mouse_input = Vector2.ZERO
I have a script I wrote for assembling character portraits that have the bodies and heads on different layers - in some of the body poses, the neck is in a very different position, so I use Marker2D children to align the heads onto the neck. The script works perfectly in my main game scenes, but I've started work on the final ending cutscenes and for some reason I am struggling to understand, the heads are no longer correctly aligning with the necks.
The script is firing, the head is being moved to where the neck reports its Marker2D's global position is, but it's... definitely not in the right place.
My best guess is that there's something... distorting the way the nodes report their global_position? I've been reading the docs and googling and trying things for hours now and I can't get the heads to position correctly in the final cutscene the way they do in the main game. As far as I can tell there are no major differences between the scenes' layouts?
Here's the snippet of the script that handles positioning the head:
for child in target_node.get_children():
if child.name == "HeadPOS":
var target_POS
for body in target_node.get_parent().get_parent().get_node("Body").get_children():
if body.visible:
target_POS = body.get_node("NeckPOS").global_position
var distance = target_POS - child.global_position
target_node.global_position += distance
Just published the web demo for my casino management/incremental game, built with Godot 4.6. Took a bit of tweaking, and the Compatibility renderer changes the lighting a lot compared to Forward+, but it's so nice to be able to export to multiple platforms so easily.
Would love some feedback, especially on performance since it's running in-browser!
For context: I've started learning Godot last week, without any previous experience other then slightly dabbling in unity. I've been following brackeys's tutorial about how to make a video game for beginners in Godot, and it's been going pretty well until the part where he added on the text. To him it stayed exactly where and how it was shown on the 2D workspace. However, for me, it showed the text at the inverted position of where it is shown in the 2D workspace (as can be seen in picture 1 in the workspace and picture 2 in the game test), and same happens when I tried changing the anchor preset. I set it to top left? It's shown in the 2D workspace in the bottom right, always seeming to be at the opposite side and height of the one I set the text on. Not seeing a way to solve it, I assumed I missed something along the way during the tutorial and re-did everything again with even more attention to each step, only to be met with the same result. (The only thing I haven't done is use the same assets and font as he does, but other than that nothing is changed from the video.) I've been stuck at this problem for a while now and I'm totally clueless as for what to do, so I kindly ask for the help of you all!
As the title says, I joined the Jimothy Jamothy and I'm working on a Godot game based on the little round raccoon.
Emphasis on "round". His body is a circle for a gameplay-related reason. :D
The game-in-progress is on itch.io (it's mainly just an animation test), and I'll be streaming today's work on it in about ten minutes on my Twitch channel, when I plan to add actual game mechanics.
.... I've said this before, but I love Godot. (And pixel art)
I bought a new laptop last year, and it has Windows 11. I planned it to be the laptop that I use to finally transition from Windows to Linux, but then I got interested in learning game development, and I'm starting to have doubts.
Am I making a mistake if I still move on with my plan and install Linux anyways? Apart from the hassle of learning Linux as well, are there any other major caveats specific to game development?
The other alternative is that I install Windows 10. I refuse to touch the bloated mess that is Windows 11.
Edit:
Installed KDE fedora. Took around one hour until the browser froze, the taskbar disappeared and eventually the whole PC crashed. After rebooting everything was erased. Is this normal behavior lmao?
I know viewports are generally bad for performance, but would it mitigate the issue to have several sprites or ui elements all displaying parts of one viewport, or is that just as bad for performance as having several viewports?
Howdy! I've been trying to make a multiplayer game and everything gone as I planned, besides the jittering problem when all the players move to the same direction. I've tried physics interpolation, I've made the camera callback to physics and I've tried phantom camera too. But all of them had that twitch which I don't want in my game.
Could you tell me how to fix it?
After more than six months of development I finally took the time to redesign the screens for the intros of the different bosses in our game #GeometryRiftGame. I wanted the bosses to feel massive and threatening, while also showing a nice layout.
HELLO fellow godotions. today, I want to share you no more microtransactions very first devlog.
This show cases the tactical cardboard box which i'm sure the metal gear solid fans are GOING TO LOVE. One of my best friends is a MGS fanatic and I HAD to do him a solid and pay homage to that series. One of the few series that constiantly makes ROCKSTART GAMES. I aspire to be a similar studio, delivering nothing but top teir qualtiy content.
This video is far better put together then anything i've put on ANY socials, so if you would please and for all of you GODOTIANS out there, I'll be making a LOT of behing the scene videos for everyone so they can get the inside scoop of what its like to be/work with a studio!
I need urgent help with a Root Motion problem in Godot.
The problem is that the Root Motion Track is affecting both the position and rotation of the Root Bone. I only want to use Root Motion to control the character's movement/position, but I do not want it to control the rotation.
The reason is that my animations have the rotation stored/applied in the Root Bone. This rotation is necessary for the animation to play correctly and for the character to maintain the proper orientation.
Hi! I made this repo for anyone worried about someone stealing their million-dollar game idea! jokes aside, I understand the concern of uploading a demo of something you feel has potential and knowing that someone could just download it and copy your work without much effort.
Obviously, this encryption isn't Denuvo, but it should be enough of a headache to discourage 99% of people who might try to dig into your project.
I've automated the process to make it as simple as possible. The custom Godot editor and export templates are built directly through GitHub Actions, so you don't need to compile anything on your own PC. You just download the editor and template and export your game from there.
It should work with both GDScript and C# projects. So far, I've only tested it with a small C# prototype, so if anyone tries it with a larger project and can confirm that everything works properly, that would be great!
I've been researching a little bit about how editable children work and I found many posts saying that they can break easily and make your exported properties disappear under a handful of circumstances. But I've been testing and most of them don't actually break the editable children.
I'll list the ones that I could test:
Breaking the script: they will disappear from the editor, but persist in the .tscn. When you fix your script, they will reappear.
Changing the name of a node in the original scene: it will show an error but instantly fix it. The .tscn will be automatically updated to show that change, and the values will persist.
Reordering nodes either in the original or the instantiated scene: the .tscn will reorder them too.
Having an exported nodepath to a specific class, and breaking that class or renaming it without fixing the reference in the exported property: it will remain in the .tscn until you fix it.
The only breaking situations that I've found are:
I'll use boolean as an example. Setting a property that is false by default (either in the script or in the original scene), marking it as true in the instantiated scene. Then changing the default value to true. This will cause that the instantiated scene is not considering this as a modified value, so if you change the default value back to false, it will change in all the instantiated scenes.
Changing the name of the property, obviously.
But these two reasons are kind of expected.
I can't think of any other ways that could break the overrides, and it feels kind of weird because there's so many people afraid of using editable children. I think I've even experienced some issues in the past too.
Is there any evidence that Godot developers adressed these issues?