Godot: The open source game engine

21 readers
1 users here now

A community for discussion and support in development with the Godot game engine.

founded 1 year ago
MODERATORS
276
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/outstarwalker on 2024-10-07 21:44:21+00:00.

277
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Green-Ad3623 on 2024-10-08 05:06:17+00:00.

278
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/XandaPanda42 on 2024-10-08 04:58:48+00:00.


I've seen a lot of posts over the last few weeks talking about features of the Godot engine, things people like, things they don't like, things they want in future. But one thing I haven't seen is anyone mentioning the Movie Maker mode.

Movie Maker

It lets you run the project at a fixed frame-rate, and saves the output as a video file. It allows sound, video, custom resolutions. It's not a full on movie editor or anything and its a little basic in terms of built in settings, but its really good as far as my limited usage is concerned. And like anything in Godot, it's a class, and can thus be inherited, allowing for customization.

Add in some fairly basic programming knowledge, and the ability to effectively use the Timer Node, and you can animate anything you want. The best bit though, is that there's no stuttering in the output file. No lag, or skipped frames. It'll take longer to render, and you really have to manage your timing and Delta, but the output is a video file with a consistent (and customizable) frame-rate.

Getting Started

Step 1: To get started, all you need to do is set an output file in your project settings. Look for a subheading call "Movie Writer". Under Output File, choose a place to save it. It saves as an 'avi' file by default I believe.

Step 2: In the top right, next to the buttons to run your project or scene, there is a button that looks like a film reel. Click it. The outline of the run and scene buttons should turn blue (or whatever your default color is)

Step 3: Press F5 to run your project. Your game will open in a new screen as normal, and will probably look a lot slower. It renders each frame to the screen as it happens, as well as running game code, and writing a video file. You're not gonna see it running at 60fps when first running it.

Step 4: When you're done, press F8 to stop the game, (or use timers connected to "get_tree().quit()" to exit the project. Navigate to the output file you chose and run it.

Step 5: (Optional) Make something cool, upload it somewhere and comment below. I wanna see what cool stuff you make :-)

You want to run a simulation of 34'000 nodes collapsing into the center like a black hole, while looping over every single one each frame? Here's a crappy 20 second clip I made in no time at all. (YouTube compression kinda kills the detail, so watch at the highest resolution you can. And yes - every single dot is just the Godot robot icon scaled to 0.05% .)

I know it's not anything particularly jaw dropping, but it's not terrible for 15 minutes of work. I'll be back if I make something more substantial.

Uses

It would be useful for making trailers for games, rendering and exporting cutscenes or clips for your help page, or skill tree. But with the extendable class, you could write a built in method for players to record and save game clips from multiple angles and chuck in some editing tools and a timeline, sorta like the Rockstar Video Editor in the last few GTA games.

But it'd be useful for things outside of game development. Imagine making a CG animated series, or making high resolution animated screensavers or those Ambient Noise videos you see on YouTube. If you're interested in animation, and you've already got experience with Godot, there's barely a need to switch to "professional" animating software. If you can use Godot, you can animate.

I look forward to seeing what you make :-)

279
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/ZCaliber11 on 2024-10-08 02:09:09+00:00.

280
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Nautilus_The_Third on 2024-10-07 23:50:07+00:00.

281
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/InTheBoxDev on 2024-10-08 00:33:15+00:00.

282
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/sundler on 2024-10-07 18:16:55+00:00.

283
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Altruistic-Light5275 on 2024-10-07 16:09:02+00:00.

284
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/kirbycope on 2024-10-07 20:55:06+00:00.

285
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/HakanBacn on 2024-10-07 17:11:50+00:00.

286
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/3boood_pro on 2024-10-07 17:21:44+00:00.

287
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Denchik029 on 2024-10-07 17:19:44+00:00.

288
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/icsp on 2024-10-07 17:19:13+00:00.

289
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/byolivierb on 2024-10-07 16:49:01+00:00.

290
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/dannygaray60 on 2024-10-07 16:03:09+00:00.

291
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/binogure on 2024-10-07 14:03:38+00:00.

292
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/lostminds_sw on 2024-10-07 09:55:05+00:00.

293
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/SteinMakesGames on 2024-10-07 14:26:48+00:00.

294
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/PepsiBluetooth on 2024-10-07 13:25:41+00:00.

295
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/potato_dude100 on 2024-10-07 11:41:37+00:00.

296
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/nvidiastock on 2024-10-07 11:20:53+00:00.


In light of the recent drama and a bit of negativity, I thought it would be a good time to think about all the good things that have happened with the project over the years. It hasn't been perfect, but I think we can all remember at least one thing that we really liked.

For example, I really liked the fact that Juan Linietsky responded to a community post about performance concerns, which detailed some challenges and potential solutions directly. I think responding to negative feedback in this way is commendable. (link for anyone interested - godot_binding_system_explained.md (github.com))

What was your favorite Godot management/development moment?

297
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/CharlatteVT on 2024-10-07 09:41:11+00:00.

298
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/Chopping_Slime on 2024-10-07 07:49:37+00:00.

299
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/KetsuiReddit on 2024-10-07 06:36:33+00:00.


Hello, I am buildig my first game in Godot. It is a platformer game where the player can die either:

  • When the timer reach 0 seconds
  • When he touches spikes in the level

For the timer, I am just sending a signal to the player when the timeout happen

However, I don't know what to do for when the player touches the spikes. There are many ways to achieve what I want. They all work but Idk which one is the best practice in terms of game dev with godot.

1. In Spikes.cs , when the player enter in the Area3D, I use:

    public void OnBodyEntered(Node3D body)
    {
        if (body.HasMethod("Die"))
        {
            body.Call("Die");
        }
    }

Not a huge fan of this one since it seems to be using reflection. A better version I found:

    public void OnBodyEntered(Node3D body)
    {       
        if (body is player player)
        {
            player.Die();
        }
    }

This one seems to be the best version so far.

2. Event bus

It was a bit hard to create in C# since most tutorials are doing it using godot but I managed to make it work. This way is good but the player needs to subscribe/unsubscribe to a global script which creates a strong dependency between the player and a singleton. So it will be harder to tests and every time I change/reload a scene, I must make sure the player unsubscribe.

3. Connect through scripts

The thrid one attempt was to connect with scripts. So basically, on the OnReady method of the Spike.cs, I find the player and create the same setup as the timer. I just do this using scripts because they will be a lot of spikes in the level.

4. Detect collision in the Character.cs

If I do this, I only have one script running checking for collision instead of multiple one. However, I did not find the signal OnBodyEnteredOnBodyEntered in the editor for the CharacterBody3d. Plus player hitbox can change when the player crouch so it complicates things.

I would appreciate some guidelines here please

300
 
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/RaccoonFormality on 2024-10-07 05:08:59+00:00.

view more: ‹ prev next ›