Skip to content

Conversation

@van800
Copy link

@van800 van800 commented Aug 29, 2025

If you are interested in this addition, please let me know.
I would test more specifically with your improved template.
Currently I expect, rename project would not be automatically propagated to vcxproj.

There is a short demo in the godotengine#95 comments.

@nikoladevelops
Copy link
Owner

If I'm going to introduce config files for other editors then I need to be sure that other people have the need of that.

Also need to consider should this also include CLion as well since some people might use that.

If the integration has issues or confuses beginners then it might be better to leave it as just only vscode by default?

Also maybe the setup.py should have an option

  1. Configure environment

That chooses the editor and based on that will delete the useless config files and we are left only with those he needs VSCode/Zed/Rider/CLion/ Visual Studio etc.. the user chooses one option and the rest is deleted. Should this be reversible, or maybe the option 0 disappears forever after the first time the script is used or maybe it instructs the user to go and download the necessary files for the editor? - maybe runs a command to pull from this remote and get the necessary config file for the editor and keeps it up to date with the latest version of this template, do you get it?

Also need to ensure that the .gitignore ignores any cache files or weird file formats that get generated and are not needed

It would be a nice feature to include as many editors as possible.

Your idea is great but this pr needs lots of work in my opinion

@nikoladevelops
Copy link
Owner

Oh and also it should work for ANY VERSION OF GODOT, not only 4.4.1.

So the version should be read from the dont_touch.txt and based on that configure intelise or whatever else. Maybe even needs a whole refactor so that json is used.

Another point is that my template currently supports only Scons, it doesn't have CMake integration. I'd like to avoid supporting two different build systems, but if really needed maybe it should be re-introduced.

Needs planning.

@nikoladevelops
Copy link
Owner

nikoladevelops commented Aug 29, 2025

Also would be nice for the
0. Configure environment

To also check if git, python, Scons or CMake are installed and compatible with the current version of Godot selected, then warn the user or give him commands/ instructions etc..

If you think of anything else or you have motivation working on this please say so, it would be a great addition and will simplify everything for the average user even more.

Even better if it also suggests some popular C++ libraries that have good integration with Godot and can be used for performance optimization -> downloads them based on choice and edits the Sconscruct if needed / or the CMake.

It really is a lot of features, so carefully think about it and analyze and test. You should test the template to see how it works in the first place.

@nikoladevelops
Copy link
Owner

Also I should let you know that currently debug builds are built without debug symbols by default, maybe this should also be included in that option, since you won't really be able to attach a debugger without debug symbols.

Also the debug symbols slow down your build (at least on windows) so this option should be switched/toggled whenever the user decides.

There's a lot to take in, so when you have time play around with all this and experiment

@van800
Copy link
Author

van800 commented Aug 29, 2025

Lets keep in touch on it. Let me clarify the workflow I have in Rider. Much less preparation steps are needed.

The workflow becomes:

  • Use the template from github.
  • All the following steps in Rider:
    • Open it in Rider.
    • Select the Solution Configuration from a predefined list (Debug/Release and the platfrom macos/android/etc). The choice of Solution Configuration automatically controls whether debug symbols are included or not.
    • Build.
      Now you are ready to code.

When you want to run/debug:

  • Configure the path to the Godot editor in the already generated run-configuration in Rider, configure arguments pointing to the game.

That’s it. The choice of Solution Configuration automatically controls whether debug symbols are included, so users don’t have to tweak build flags themselves.

There are still a couple of open items I haven’t solved yet:

  • Propagating ExtensionName.
  • Swapping extension-api.json.

I will post on the progress. Maybe I will take another full walk-through to see if I might be missing something else.

@nikoladevelops
Copy link
Owner

As soon as you have a working solution I'll test the branch and see if it's good.

I still believe that if the project supports Rider by adding additional files, it should also support CLion and other commonly used editors (Zed would be very good since it's completely free to use forever even for closed source or commercial projects)

If you can do that it would be nice, but if you think that it's out of scope for this pr I get it.

@van800
Copy link
Author

van800 commented Aug 29, 2025

The sln+vcxproj configuration files are pretty much only Rider and Visual Studio. So I can only ensure compatibility with those two in the scope of this pull request.

@nikoladevelops
Copy link
Owner

Alright I understand. Focus on Rider and Visual Studio and ensure it's easy to use and setup.

If you have to you can edit the README and provide instructions for beginners that might not be used to using Rider or Visual Studio.

Another thing, it is crucial that you ignore Rider/Visual Studio files from the VSCode folder (basically add all files/folders/extensions that should be ignored inside the settings.json of VS Code).

Keeping them separate without polluting the explorer is good and avoids confusion.

If you can test everything on different operating systems I would really appreciate it. If you find any issues with the template or with compiling (especially on macOS and iOS when exporting a test game project since I don't have those devices) you can open a new PR.

Test both setup.py as well as Rider/Visual Studio, that's all.

@nikoladevelops
Copy link
Owner

Also all of this should be compatible with GitHub actions no matter which editor is used, the source files should still end up in the src directory (check the workflow I have right now for building it for every platform)

@van800 van800 force-pushed the main branch 8 times, most recently from 60d353a to 0296e30 Compare September 9, 2025 10:50
@nikoladevelops nikoladevelops self-requested a review September 13, 2025 17:37
@nikoladevelops
Copy link
Owner

When someone opens up the solution in Rider and tries to compile, you get an error
(you are executing the "scons" command in a different folder I think)

err

By default the x86_32 architecture was selected, even though I'm on x64, can this be auto detected somehow?
image

When opening up a Visual Studio Community 2022, nothing is configured - probably the same for the 2026 version
err2

err3

Also even when opening a solution not configured properly, this folder gets created and it should be git ignored
sln/.vs/

The setup.py compiles the debug build without debug_symbols enabled, while the Rider solution executes with dev_build=yes,
will there be a significant performance impact and should users be able to configure this by themselves in an easy way. Behavior when compiling should be the same no matter which editor is used.

Everything should work out of the box for beginners when opening the solution without having to adjust any settings, otherwise there is no point.

@nikoladevelops
Copy link
Owner

For some reason the tools folder is deleted and the setup.py script is gone?

The test_project folder is now "demo" ?

Can you ensure you are working on the latest version of the godot-plus-plus template before submitting a PR, I feel like you copy pasted your solution from the community template and just submitted it without seeing how my code works and integrates with yours

@van800 van800 marked this pull request as draft September 14, 2025 05:42
@van800
Copy link
Author

van800 commented Sep 14, 2025

I am sorry, I am under pressure on different tracks lately, so no capacity to continue for now, but I hope to return to it later.
Please feel free to close the PR, or I would prefer it as a draft.

Jean-H77 and others added 2 commits September 17, 2025 14:05
`libgdexample` string has been replaced by `EXTENSION-NAME` in `demo/bin/example.gdextension
van800 and others added 3 commits September 24, 2025 11:22
…Brains Rider on all major OS or Visual Studio on Windows. The main addition is a sln project file that configures build settings for all major platforms including Windows, Linux, macOS, iOS, Android, and WebAssembly with different architectures. It includes platform-specific property groups that map to SCons build commands and sets up proper include paths for the Godot C++ bindings. The solution file ties together both the C++ extension project and a demo project, while additional target files provide cross-platform toolchain resolution and macOS debugging entitlements.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants