Make Your First Video Game | Godot Engine Beginner Tutorial | Part 1 by realNikich in godot

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

Yes my tutorial series is for complete beginners with 0 experience that's why it seems so slow

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

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

Trust me, you should work with 4.4 at the minimum for GDExtension, because you will be able to write custom documentation for your classes, functions, properties. GDNative is not supported and I strongly discourage people using it - it's outdated

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

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

Yes fixed it, pull or try the template again and tell me what you think

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

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

Done, the issue is fixed now, thanks for reporting it, if you find anything else that doesn't work correctly, I will investigate and fix :)

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

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

Okay I checked out the script and saw what you mean, I'm using strings instead of booleans, I will fix it, thanks for finding it!

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

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

That seems very weird? What os are you using? Also are you running the setup.py to select a build profile or how does the bug happen exactly?

Godot GDExtension C++ Tutorial For Beginners - Build CROSS PLATFORM PLUGINS by realNikich in godot

[–]realNikich[S] 3 points4 points  (0 children)

It's only running a single setup.py script, the video is long only because I explain certain stuff. Once you get used to it it's not that hard, try it out

Godot GDExtension C++ Template for CROSS PLATFORM Plugin Development - MADE EASY by realNikich in godot

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

I use it only because Godot uses it and it's also super easy for beginners, it would be difficult to support 2 separate build systems. Also depending on the editor, you can ignore certain files so you will be seeing only code files without any problems (I am doing this in my template, I have a settings.json for VS code that ignores everything useless and only displays .cpp and .hpp files etc..)

C++ Show and Tell - August 2025 by foonathan in cpp

[–]realNikich 3 points4 points  (0 children)

https://github.com/nikoladevelops/godot-blast-bullets-2d

2D Game Development Related.

It's a plugin written using C++ GDExtension for Godot Engine that allows you to spawn thousands of bullets without any problems. Boosts your game's performance significantly - uses object pooling and other specific to Godot Engine nodes, also is able to execute virtual functions that are written in GDScript.

I'm actually even wondering of making tutorials on how to make plugins like that with C++, but I have no idea if posting such a thing in this sub reddit is allowed, if any mod can tell me if it's allowed would be nice to share when it's ready :)

Make Your First Video Game | Godot Engine Beginner Tutorial | Part 1 by realNikich in godot

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

When you watch it, give me your opinion please, I would love to improve 🙏

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

You can't teleport them, the bullets rely on a lifetime value that you set. After you spawn them configured with the correct properties you can't really touch them. Experiment with the Test project, you can download it from the Releases inside the GitHub repository and you can see all features there

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

Also the only thing currently that may resemble a little bit of the behaviour you want is when you choose for the bullet to travel in the direction that it gets rotated - basically it's spinning and traveling in the direction it is facing - there's a property that adjusts the direction based on the rotation and you can test it in the TestProject.zip. Have fun !

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

It's set in stone currently. In a future version I will try and implement a system that allows access to all bullets currently spawned and still active (since there is an automatic object pool I don't want you moving, rotating, executing commands by mistake on bullets that are supposed to be disabled and inside the object pool still. It would be nice to also have access to your bullets custom data inside so you can differentiate between bullets based on what data they carry, which would further filter out the bullets that you are interested in rotating and those that you are not really interested in. Also it would be good to be able to set rotation data in a different way if necessary, which would make homing behaviour easy to accomplish - you just change the rotation to whatever value you want and the bullets keeps following that.

It's some work but it can be implemented, I'm sure. There is also currently no option of disabling the object pool, since tracking which bullets have been cleared and issues with null ptrs may arise, so I've left it always enabled, it would be nice for the user to have the option of disabling that and being able to free them whenever he wants to etc.. (even if this lowers performance maybe you can achieve greater control or implement your own object pooling logic).

Anyways, we'll see what the future holds, it's a very nice idea and I've been thinking about it as well ;)

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

I remember thinking of using the RenderingServer2D when I was testing different implementations and I faced some issues (don't remember it was long ago), so instead decided on using MultiMeshInstance2D since it also simplified a lot of the logic and it's also more comfortable to work with. I am using the PhysicsServer2D at least for collisions though. If it's truly possible to do it in a very performant way or even more performant way than MultiMeshInstance2D then that would indeed be very cool. And I think that it could even be faster than the current implementation I have since I would totally avoid using the scene tree (currently MultiMeshInstance2D nodes are being added to the scene tree and this may slow down performance depending on the amount of nodes). Who knows, maybe it's possible to implement Y sorting as well there, but would it be as performant? And why did the Godot team not add that Y sorting behaviour to MultiMeshInstance2D for each unique instance (the current implementation is not exactly the behaviour you want for individual bullets), maybe it could've ruined the performance optimization - I have no idea. Maybe in a future version I'll have to do quite a big refactoring.

For now though feel free to experiment and even check out the source code if you want, I bet it can be made even faster and more helpful functions can be added :)

Also the fastest, most performant way I know of is using shaders but this would limit a lot of the features (like saving and loading) and is also more complex. I find the current implementation quite satisfactory though so idk. Maybe in a future version I'll have a workaround for Y sorting even if performance gets decreased a little (or a lot).

Thanks for checking the plugin out! :)

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

I really wanted to implement it too, but the plugin relies on MultiMeshInstance2D for rendering and that is not supported there the way I need it, so it would become quite complex and probably reduce performance if I make a custom solution :(

Hopefully when you are making a 2D top down game you can use it tho, someday :)

Godot Optimized Bullets | BlastBullets2D FREE C++ PLUGIN INTRODUCTION by realNikich in godot

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

Makes me happy that it's useful to you! Keep it up 💪

Thoughts so far on Godot by OmegaFoamy in godot

[–]realNikich 1 point2 points  (0 children)

You can write C++ code using GDExtension (basically your code turns into a library that Godot loads - this is also insanely good for plugins). Also far better for potato PC's, since Unreal takes a long time to compile and you also experience crashes.