Giter VIP home page Giter VIP logo

godot-manager's Introduction

splash

Godot Manager

Godot Manager is an engine version and project management utility, streamlining the Godot development experience.

Godot Manager supports an assorted list of features, from categorization of your projects, associating your projects with a specific version of Godot, as well as downloading Templates and Plugins that can be used in creating new projects.

splash

With Godot Manager, you can manage the versions of Godot from the official Github repository, as well as use either standard versions of Godot, or the Mono Edition of Godot. Not only can you download these, you will also get updates when new versions of Godot are released. Future versions will implement downloading from Tuxfamily as a mirror, as well as implementing other mirrors for other custom versions of Godot that are out there.

splash

Tired of trying to remember which plugins you want for which projects? Godot Manager will let you download plugins and templates from the official Godot Asset Library, and cache them on your computer. When you create a new project, you can select which plugins you want to include in your new project, as well as select a template you want to base your project on. Making things more streamlined, and easier to use!

splash

Godot Manager supports a decent set of settings that you can use to configure how you want Godot Manager to store your versions of Godot, as well as where to cache downloads, allowing you to ensure certain drives do not get over-stuffed with downloads. You can also configure how to launch the Godot Editor, along with how it should scan for projects, where they are located at, and where to store your projects.

In the future, you will be able to add additional mirrors here, be it for the Asset Library or for the Godot Engines that are out there that you want to install, as long as the engine provides an easy way to track the data.

Any comments, or suggestions are welcome, please feel free to open issues as you need.

Download

You can grab the latest release from here on Github, or from Itch.io!

You can also install it from Scoop:

scoop bucket add extras # Ensure bucket is added first
scoop install godot-manager

Sponsors

Currently, Godot manager has the following sponsors for the project. Check them out!

Participate

This project is an Open Source Project, licensed under the MIT License. Participation is always welcome from the community. A Discord server has been setup, and can be reached at the link below.

godot-manager's People

Contributors

cammymoop avatar chriba avatar darkdemiurg avatar dogboydog avatar eumario avatar galaxygamingboy avatar jnettl avatar nathanwarden avatar oliveoil1 avatar shiena avatar sitiom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-manager's Issues

Project Management Views

Implement Project Management system.

Project management should be implemented in 3 different styles as described below. It should be implemented in a way, that allows users to be comfortable, and provide the easiest method in which to organize their projects to their liking.

Standard List View

This is the Standard way that Godot's Editor presents Projects to users, with Favorites being presented at the top of the list, and projects ordered by the last time they were modified.

Icon View

This is a similar method in which projects become Icons, like on a Mini Desktop, making it feel more like an Application, then just a list of projects.

Category View

Category views should give users the ability to group projects together into categories / sub-folders. Allowing for more organized view of their projects. Two Default Categories, will be Un-Categorized, and Starred, for handling the standard Godot way of organization.

Using folder as path for project import produces a crash

Describe the bug
When trying to import a project from disk, and choosing the folder as path instead of the project.godot file, the application crashes.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the project manager
  2. Click on "Import Project"
  3. Put as path the folder to the project to import
  4. Click "Add"
  5. App crashes

Expected behavior
That the app either finds the correct project.godot file by itself or responds with a warning instead of crashing.

Screenshots
No screenshots, but a log:

Unhandled Exception:
System.UnauthorizedAccessException: Access to the path '/home/mai/apps/godot_re/rpginabox' is denied.
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x000e0] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize) [0x00055] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Boolean detectEncodingFromByteOrderMarks) [0x00007] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader..ctor(string)
  at ProjectConfig.Load (System.String fname) [0x00040] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ProjectFile.ReadFromFile (System.String filePath) [0x0000d] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ImportProject.OnAddBtnPressed () [0x000a5] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 

Unhandled Exception:
System.UnauthorizedAccessException: Access to the path '/home/mai/apps/godot_re/rpginabox' is denied.
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x000e0] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize) [0x00055] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Boolean detectEncodingFromByteOrderMarks) [0x00007] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader..ctor(string)
  at ProjectConfig.Load (System.String fname) [0x00040] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ProjectFile.ReadFromFile (System.String filePath) [0x0000d] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ImportProject.OnAddBtnPressed () [0x000a5] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 

Complete the Following:

  • OS: Linux
  • Version 0.2.1

The selection dialog for the Godot engine is not closing after clicking on the "Add" button

Describe the bug
When selecting a Godot engine to add and when clicking on the "Add" button, the modal dialog is not closing when the engine is added.

To Reproduce
Steps to reproduce the behavior:

  1. In the Godot engines panel, click on the "Add Custom Godot" at the top center of the window (screen 1).
  2. In the newly opened modal dialog, give a proper name and select the Godot binary (screen 2).
  3. Click on the "Add" button at the bottom left of the dialog.
  4. As you can see the Godot engine is added in the background (screen 3), but the dialog is not hidden (like it does when clicking "Cancel")!

Expected behavior
The modal dialog should close itself (be hidden) when the Godot engine is added to the list. This behaviour is more sneaky when the application is launched for the first time, as the background panel is not the Godot engines list, so when clcicking multiple times (like I did), there is a lot of copies of the selected engine which are added to the list!

Screenshots
Screen 1
screenshot35
Screen 2
screenshot33
Screen 3
screenshot34

Complete the Following:

  • OS: Linux (Manjaro)
  • Version 0.1.0

Standard Version of Godot Engine not properly setup

Describe the bug
This may be related to bug #37, but when installing Standard Version of Godot Manager, it isn't properly setting up in the folder of the version in the versions folder. Need to verify after folders are properly created.

To Reproduce
Steps to reproduce the behavior:

  1. Go through First Run, and change locations of Versions
  2. Attempt to download Engine
  3. After failure, create the folders for versions, and then attempt to run again
  4. Examine versions folder to see where it is located.

Expected behavior
Should be stored as a subdirectory of the versions folder, to allow for Self-Contained mode, as default mode for Godot Editor.

internal version not bumped in v0.1.1

You forgot to bump the version for v0.1.1 inside libs/Version.cs which means the version check within the application fails and always wants to update even though it is already the newest version
Perhaps the release strategy should be improved a little and, for example, a check should be built into the release CI to check whether the version matches the git tag or insert the git tag version into the code :)

Crash on Read only Folder

Describe the bug
Scan Crashes when File without read Permission Found

To Reproduce
Steps to reproduce the behavior:
Click on Scan Projects
Have Folder with no Read Permission in Projects Folder

Expected behavior
Skip Folders without needed Permissions

Complete the Following:

  • OS: Linux
  • Version 0.2.1

Add assets without asset library

Is your feature request related to a problem? Please describe.
It's more of an enhancement to the current asset management features (GOOD WORK), since HungryProton's Scatter plugin isn't on the asset library.

Describe the solution you'd like
The ability to add assets as a zip file (Scatter's documentation makes it look that easy).

Describe alternatives you've considered
Managing it myself? Ew!
It would also be nice to add a github repo and to grab the files on the latest release since Scatter is just a "drop source code in addons folder" release. That would be a bit more work than a zip file though, and might not work for other repos.

Additional context
Is this import button supposed to do anything?
image
I thought that would let me import a zip file, but no such luck.

Installing Mono does not properly create folder structure

Describe the bug
When installing Mono Version of Godot, it does not properly create the directory structure for the install of the version.

Example:
Godot-Manager/versions/Godot_v3.5.1-stable_mono_x11_64/Godot_v3.5.1-stable_mono_x11_64/
Instead of
Godot-Manager/versions/Godot_v3.5.1-stable_mono_x11_64/

To Reproduce
Steps to reproduce the behavior:

  1. Install Any version of Godot Mono Edition
  2. Check the Folder structure inside versions folder

Expected behavior
Should properly install Godot into the correct folder structure.

Screenshots
If applicable, add screenshots to help explain your problem.

Complete the Following:

  • OS: Linux
  • Version 0.1.3, 0.2.0-Dev

Additional context
Add any other context about the problem here.

icon.png missing when creating new project.

Describe the bug
The icon.png file is missing when creating a new project using Godot Manager. This creates an error load_image: Error opening file 'res://icon.png' when running a scene.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new project using Godot Manager
  2. Create new scene and run.
  3. There will be an error load_image: Error opening file 'res://icon.png'

Complete the Following:

  • OS: Windows 10
  • Version 0.1.2

Check for Update always shows update for same version

Describe the bug
After updating to v0.1.3, Updater does not take into account -release tag when checking version, need to fix this.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings > About
  2. Click on Check for Updates
  3. See there is an update, when on the current version.

Expected behavior
Should only show update when version has changed.

Complete the Following:

  • OS: Any
  • Version v0.1.3

Additional context
With the addition of the -dev and -release tags to the Version string for Godot Manager, when matching against Github's release, it isn't taking into account the addition of the -release tag. Should only do the update, when the numeric string matches.

long text project overlap in icon view

Describe the bug
Projects with long text/icons overlap with other projects' text/icons.

To Reproduce
Steps to reproduce the behavior:

  1. Create a project with a really long name/directory
  2. look in the Godot Manager project page icon view

Expected behavior
Either warps around or clips the text.

Screenshots
screenshot

Complete the Following:

  • OS: Windows 10
  • Version 1.3-release

Open project after associated Godot version deleted.

Platform: Windows 10
GM version: 0.2.0-release

To Reproduce

  1. Start a clean 1st run of GM
  2. During setup wizard, install 3.5.1 stable
  3. After setup, add 4.0 beta 2 as a "custom version" (not via tuxfamily)
  4. Create a new project "test" with 4.0b2
  5. Close everything
  6. Start GM
  7. Remove 4.0 beta 2
  8. Try and open the project "test"

Long pause before GM closes and the project never launches.

Add Functions for Project Management

Implement code for Project Management

Godot Project

Godot projects are stored in project.godot, Accessed through the API ConfigFile in Godot. ConfigFile's are just INI Files, with sections associated with a specific setup. We are only interested in getting config_version at root, [application] config/name, config/description and config/icon for displaying in the Manager.

Though the engine uses ProjectSettings to store settings in the project file, it is not a loadable class, where we can load a file, so we will use ConfigFile to read the project.godot file, and store it in our central repository for easy access.

Association of Godot Engine with a Project

While it would be ideal to store the version of Godot we are using in the Project file, it is not conductive to keeping things simple, uniform, and non-mutable. Any custom settings stored in the project.godot file, can be changed outside of Godot Manager, by the Godot Editor or by a simple text editor. Best to store this in our central store.

Project Management

When Godot Manager first loads up, we need to validate that projects exists, and ensure that we have all latest information for the project. Since Project Name and Icon can be changed in the project.godot, and is mutable, we will always verify the file exists with what we have stored in our central store. We will not cache any other information, and rely on project.godot to present this information to us.

However, we will associate Godot Engines, and other various data, within our own central store, so as to ensure we properly associate categories, engines, and various other future data properly for our reference.

Be able to add addons to already created project

Is your feature request related to a problem? Please describe.
We can add the addons when we create the project but not when we already created the project. Because of the asset library, we need to go to the cache folder of Godot Manager to get the downloaded addons and add them to the project manually.

Describe the solution you'd like
In the edit (project settings) menu, have a way to add (or remove) the addons.

Describe alternatives you've considered
Add a way to open the downloaded addon file in Godot Manager cache folder by a button press in a list of downloaded addons (because the downloaded addon only has id as file name, which makes it hard to find an addon) to be manually added to the project.

Crashes when trying to edit custom, downloadable versions

Describe the bug
Crashes when trying to edit custom versions.

To Reproduce

  1. Go to the version manager
  2. Click on "Download from Website" button
  3. Click on the pencil button on the left when the inputs on the right are empty (no version selected)

Expected behavior
Not crashing

Screenshots
No screenshots but a log:

Unhandled Exception:
System.UriFormatException: Invalid URI: The URI is empty.
  at System.Uri.CreateThis (System.String uri, System.Boolean dontEscape, System.UriKind uriKind) [0x0007b] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at System.Uri..ctor (System.String uriString) [0x00014] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at ManageCustomDownloads.UpdateStruct () [0x0009f] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at Godot.GodotSynchronizationContext.ExecutePendingContinuations () [0x0001d] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at Godot.GodotTaskScheduler.Activate () [0x0000c] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at (wrapper native-to-managed) Godot.GodotTaskScheduler.Activate(Godot.GodotTaskScheduler,System.Exception&)

Unhandled Exception:
System.UriFormatException: Invalid URI: The URI is empty.
  at System.Uri.CreateThis (System.String uri, System.Boolean dontEscape, System.UriKind uriKind) [0x0007b] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at System.Uri..ctor (System.String uriString) [0x00014] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at ManageCustomDownloads.UpdateStruct () [0x0009f] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at Godot.GodotSynchronizationContext.ExecutePendingContinuations () [0x0001d] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at Godot.GodotTaskScheduler.Activate () [0x0000c] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at (wrapper native-to-managed) Godot.GodotTaskScheduler.Activate(Godot.GodotTaskScheduler,System.Exception&)

Complete the Following:

  • OS: Linux
  • Version 0.2.1

A way for different Godot versions to use the same config folder

Is your feature request related to a problem? Please describe.
Managing multiple self-contained versions of Godot can be a pain. I need to run 3 different versions of Godot currently, that all need to use different settings: two instances of 3.5.1 for two separate projects, 4.0b4 and 4.0-dev.

Describe the solution you'd like
It would be nice to have some kind of "editor groups" system, where multiple installations can re-use one folder with self-contained mode. This would let them share the same configuration/EditorSettings.

Describe alternatives you've considered
Currently, I use the system-wide config folder for Godot. I have briefly experimented with having them in self-contained folders, but managing them without a tool like Godot Manager is painful, especially having to keep XDG desktop files updated.

Additional context
N/A

Add way to get Location of Godot Editor

Is your feature request related to a problem? Please describe.
Currently, you have to navigate manually to where the version of Godot is installed, in order to get the path to it.

Describe the solution you'd like
Add a way to Godot Version Line, to be able to get the location of the installed version to be used in other things, such as Visual Studio Code.

Show Data Directory case insensitive

Describe the bug
When attempting to open the Data folder for a project, it is not able to find it, cause of the case sensitivity of the file system for Linux (And possibly Mac OS on Case-Sensitive Filesystems), need to correct this issue.\

Expected behavior
Find's the folder, and opens it.

Screenshots
If applicable, add screenshots to help explain your problem.

Complete the Following:

  • OS: Linux (And Possibly Mac OS)
  • Version 0.2.1

Nightly/Alpha builds

Is your feature request related to a problem? Please describe.
I really wanted to automate the process of downloading the new alpha or nightly Godot 4 builds

Describe the solution you'd like
A way to see and download Godot 4 builds, maybe from https://hugo.pro/projects/godot-builds/ or the official ones.

Describe alternatives you've considered
Adding custom Godot instances, but this just complicates my workflow

Order the engine versions

Is your feature request related to a problem? Please describe.
If you install the godot versions in random order, they stay in that order always in every part of the interface.

Describe the solution you'd like
After installing a new version it should order the list of godot versions and save it in that state.

Describe alternatives you've considered
Trying to ignore it even though my OCD is screaming fix it. :)

Additional context
image

As can be seen in the photo, 3.3.4 is between the 3.5.1 and 3.5.1 mono because that was the order I downloaded them in.

News Panel not working

Describe the bug
Godot Website has updated news page with new Format for displaying news. Cause of this, News Panel no longer works to properly parse the Website for news Articles.

To Reproduce
Steps to reproduce the behavior:
Open Godot Manager, and click on News, no entries are shown.

Expected behavior
Entries should be populated.

Screenshots
If applicable, add screenshots to help explain your problem.

Complete the Following:

  • OS: Any
  • Version v0.2.0

Additional context
Godot Website has switched to new layout for news article items. Need to switch from current style of parsing, to new style of parsing to properly fetch posts, and news items in the site.

Manually set the order of categories

Is your feature request related to a problem? Please describe.
If the user has multiple categories, the user would have to scroll to the category the project is in. For example Demos, Test, and Projects categories; the user would need to scroll to the third (Projects) category. With ordered categories, the user could order the Projects category as the first in the categories and lessen the need to scroll down.

Describe the solution you'd like
Add a way to manually order the categories in the category view.

Describe alternatives you've considered
Pinned category.

Project Scanning Crash

Describe the bug
Upon scanning for projects, program crashes.

To Reproduce
Steps to reproduce the behavior:
1.Launch program
2.Click "Scan Projects"
3.Program Crashes

and

1.Launch Program
2.Go to settings and click projects
3.Tick "Scan each time Godot Manager is Launched"
4.Close program
5.Upon relaunch, program immediately crashes

Expected behavior
Project files are scanned into program

OS and Program Version

  • OS: Windows 10
  • Version 0.1.1

Additional context
Project folder contains nested folders

Editing project when only one version doesn't work

Describe the bug
If a project is shown as "unknown" after you delete a version of the engine and you try to edit it to whatever you have installed, you cannot save it if there is only one version installed.

To Reproduce
Steps to reproduce the behavior:

  1. Install 3.4.X
  2. Create a project
  3. Install 3.5
  4. Uninstall 3.4.X
  5. Try to edit project, can't

Expected behavior
Should allow to save with the only version installed

Crash when trying to use tilde character in path when trying to import project

Describe the bug
When using the a tilde (~) at the begin of a path the app crashes.
Note: the tilde character is in linux a shorthand for the current users home directory (i.e. /home/username).

To Reproduce
Steps to reproduce the behavior:

  1. Go to the project manager
  2. Click on "Import Project"
  3. Put in "Path" a path that starts with the tilde character (~)
  4. Click "Add"

Expected behavior
That the path is correctly resolved, or a indicator telling the user that the input is wrong.

Screenshots
No screenshot but a log:

Unhandled Exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path "[godotmanager installdir]/~/projects/github/godot-manager/project.godot".
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00164] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize) [0x00055] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Boolean detectEncodingFromByteOrderMarks) [0x00007] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader..ctor(string)
  at ProjectConfig.Load (System.String fname) [0x00040] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ProjectFile.ReadFromFile (System.String filePath) [0x0000d] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ImportProject.OnAddBtnPressed () [0x000a5] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 

Unhandled Exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path "[godotmanager installdir]/~/projects/github/godot-manager/project.godot".
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00164] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions)
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize) [0x00055] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Boolean detectEncodingFromByteOrderMarks) [0x00007] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in <02071a39c8a34187bdd1f58e4be38764>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader..ctor(string)
  at ProjectConfig.Load (System.String fname) [0x00040] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ProjectFile.ReadFromFile (System.String filePath) [0x0000d] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0 
  at ImportProject.OnAddBtnPressed () [0x000a5] in <f7b093cfd2f94b2ca92bd10d8f1454ab>:0

Complete the Following:

  • OS: Linux
  • Version 0.2.1

Version 0.2.0 for Mac won't run

Describe the bug
When Trying to start version 0.2.0 an my M1 Mac it comes up with a Message 'The application "Godot Manager" can't be opened'

To Reproduce
Steps to reproduce the behavior:

  1. Download Godot Manager 0.2.0 to the Applications folder
  2. Fix Permissions with: xattr -cr "/Applications/Godot Manager.app/"
  3. Click on Godot Manager.app
  4. See error

Expected behavior
Godot Manager launches

Complete the Following:

  • OS: Mac OS Monterey
  • Version 12.5.1
  • Running on M1 Macbook air

Additional context
Version 0.1.3 works fine

Binaries with a non conventional extension not found under Linux

Describe the bug
When launching the application for the first time, the dialog invinting you to find the Godot executables is not able to find the binary file under Linux if the binary extension is not standard (.x86_64).

To Reproduce
Steps to reproduce the behavior:

  1. Download Godot Linux .zip file from Godot website. The file is named like this: Godot_v3.4.3-stable_x11.64.zip for example
  2. In the file manager (I tested in Thunar (Xfce)) right click on the .zip and select "Extract here". The file has the same name minus the .zip extension.
  3. In the godot-manager application, navigate to the place where the executable is extracted: the binary is not recognized (problem of extension).

Expected behavior
A downloaded binary from the Godot team should be recognized out of the box when simply extracting the file in Linux.

Screenshots
Godot Manager Does Not Recognize the Godot Executables

Complete the Following:

  • OS: Linux (Manjaro)
  • Version 0.1.0

Additional context
The problem seems to be the naming convention used by the Godot team when they create their .zip file for Linux operating system.
As this operating system does not rely on extension but on content, the binaries of Godot are working perfectly fine out of the box, despite the fact that their naming convention is not "standard".

So this may be not a "bug" but I though it was worth mentioning it.

Work around
Select the "All files" option in the dialog box to find the binaries.

Editor feature profiles not linked

Describe the bug
When you link a config between 2 versions of the editor it doesn't copy the "editor feature profiles".

To Reproduce
Steps to reproduce the behavior:

  1. Make version 3.5.1 a shared config version.
  2. Add a custom editor feature profile.
  3. Make version 3.5 link to the 3.5.1 config.
  4. Open a project with 3.5.
  5. See error "editor/editor_feature_profile.cpp:320 - Error loading default feature profile: 2D"

Expected behavior
I expect it to also copy my feature profiles as part of the config.

Screenshots
3.5.1 has the feature profiles directory:
image
In 3.5.1 I created a profile called 2D which only has 2D tools enabled and everything 3D disabled:
image
In the 3.5 it doesn't have the copy of my profile which causes the error:
image

Complete the Following:

  • OS: Linux
  • Version Mint 21

Additional context
Nothing additional to add.

Self Contained mode

Is your feature request related to a problem? Please describe.
When using this program on a Usb, some files cannot be set to the same directory as the program. (ex. %APPDATA%\Godot-Manager) This prevents seamless usage on different computers from the same USB without hacky workarounds.

Describe the solution you'd like
I would like Godot Manager to employ a similar solution to what Godot does, by adding a file named ".sc" or "sc" in the same directory as the executable, Godot knows to use Self Contained mode.

Describe alternatives you've considered
I have tried to use programs to sync files between computers and USB to maintain %APPDATA%\Godot-Manager but it becomes tedious to set up and maintain.

Show data folder

Describe the bug
Under linux if you right click on a game and choose show data folder it fails because the path has "Godot" instead of "godot" and linux is case sensitive.

To Reproduce
Steps to reproduce the behavior:

  1. Go to projects
  2. Right click on any game
  3. Click on show data folder
  4. See error

Expected behavior
I expect it to open the directory.

Screenshots
image

Complete the Following:

  • OS: Linux
  • Version 0.2.0

Additional context
None

News needs a way to abort if it does not timeout

Describe the bug
If you click on News and for some reason you cannot reach the server or it doesn't timeout, you have to either exit the program to stop current request or to be able to refresh it again.

To Reproduce
Steps to reproduce the behavior:

  1. At the main page, click the News button
  2. If for some reason there is an issue reaching server or some timeout etc, there is no way to abort the request and have to exit program
    Expected behavior
    Maybe pressing ESC or the refresh button can cancel the current news request if any network related problem arises.

Screenshots
If applicable, add screenshots to help explain your problem.

Complete the Following:

  • OS: Windows10 21H2 19044.2364
  • Version 0.2.1-release

Additional context
This isn't really a big problem just a qol really and rather easily resolved.

Folders not properly created when switching in First Run Wizard

Describe the bug
When Updating First Run Wizard, Cache, Versions and AssetLib folders are not properly created in the wizard when switched between locations, causing Downloads to fail.

To Reproduce
Steps to reproduce the behavior:

  1. Upon First Run, change location of Cache or Versions.
  2. Move to step to Download Godot engine. Download any version of Godot
  3. Godot Manager fails to save the zip file in the proper location, because the Folder does not exist

Expected behavior
Copies the downloaded archive to the correct location, and install Godot Engine into the Versions folder Correctly.

File names are black on a dark background

Describe the bug
When browsing through files, their names are displayed in black color while being on a dark background. It's interesting that folder names are displayed with white color.

To Reproduce
Steps to reproduce the behavior:

  1. Open embedded file browser.
  2. See folder names being white and file names being black.

Expected behavior
Any text being displayed corresponding to the current theme.

Screenshots
image
image

Complete the Following:

  • OS: Ubuntu Linux x86_64
  • Version: Focal Fossa 20.04

Setting the path to Documents results in immediate permission crash

Describe the bug
setting project path to C:\Users\bla\Documents\ results in immediate crash as the manager doesnt have permissions for "My Pictures" folder to scan

To Reproduce
install it
set project source folder path to C:\Users\blabla\Documents\
click on open/scan project

Expected behavior
should just ignore the folder where it doesnt have permissions to

Screenshots

OpenGL ES 3.0 Renderer: NVIDIA GeForce RTX 3050/PCIe/SSE2
Async. shader compilation: OFF

Mono: Log file is: 'C:/Users/ixlle/AppData/Roaming/Godot-Manager/mono/mono_logs/2023-01-03_13.35.32_4768.log'

Unhandled Exception:
System.AggregateException: One or more errors occurred. (Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.) ---> System.UnauthorizedAccessException: Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateRelativeDirectoryHandle (System.ReadOnlySpan`1[T] relativePath, System.String fullPath) [0x0004b] in <c84d94161bca414384015e66544862cf>:0
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].MoveNext () [0x00158] in <c84d94161bca414384015e66544862cf>:0
  at ProjectsPanel.ScanDirectories (Godot.Collections.Array`1[T] scanDirs) [0x000b6] in <c76ad5d95438420fb559050a45690409>:0
   --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <c84d94161bca414384015e66544862cf>:0
  at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in <c84d94161bca414384015e66544862cf>:0
  at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000f] in <c84d94161bca414384015e66544862cf>:0
  at ProjectsPanel.ScanForProjects () [0x00240] in <c76ad5d95438420fb559050a45690409>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <c84d94161bca414384015e66544862cf>:0
  at Godot.GodotSynchronizationContext.ExecutePendingContinuations () [0x0001d] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0
  at Godot.GodotTaskScheduler.Activate () [0x0000c] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0
  at (wrapper native-to-managed) Godot.GodotTaskScheduler.Activate(Godot.GodotTaskScheduler,System.Exception&)
---> (Inner Exception #0) System.UnauthorizedAccessException: Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateRelativeDirectoryHandle (System.ReadOnlySpan`1[T] relativePath, System.String fullPath) [0x0004b] in <c84d94161bca414384015e66544862cf>:0
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].MoveNext () [0x00158] in <c84d94161bca414384015e66544862cf>:0

  at ProjectsPanel.ScanDirectories (Godot.Collections.Array`1[T] scanDirs) [0x000b6] in <c76ad5d95438420fb559050a45690409>:0 <---


Unhandled Exception:
System.AggregateException: One or more errors occurred. (Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.) ---> System.UnauthorizedAccessException: Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateRelativeDirectoryHandle (System.ReadOnlySpan`1[T] relativePath, System.String fullPath) [0x0004b] in <c84d94161bca414384015e66544862cf>:0
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].MoveNext () [0x00158] in <c84d94161bca414384015e66544862cf>:0

  at ProjectsPanel.ScanDirectories (Godot.Collections.Array`1[T] scanDirs) [0x000b6] in <c76ad5d95438420fb559050a45690409>:0
   --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <c84d94161bca414384015e66544862cf>:0
  at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in <c84d94161bca414384015e66544862cf>:0
  at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000f] in <c84d94161bca414384015e66544862cf>:0
  at ProjectsPanel.ScanForProjects () [0x00240] in <c76ad5d95438420fb559050a45690409>:0
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <c84d94161bca414384015e66544862cf>:0
  at Godot.GodotSynchronizationContext.ExecutePendingContinuations () [0x0001d] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0
  at Godot.GodotTaskScheduler.Activate () [0x0000c] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0
  at (wrapper native-to-managed) Godot.GodotTaskScheduler.Activate(Godot.GodotTaskScheduler,System.Exception&)
---> (Inner Exception #0) System.UnauthorizedAccessException: Access to the path 'C:\Users\ixlle\Documents\Eigene Bilder' is denied.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateRelativeDirectoryHandle (System.ReadOnlySpan`1[T] relativePath, System.String fullPath) [0x0004b] in <c84d94161bca414384015e66544862cf>:0
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].MoveNext () [0x00158] in <c84d94161bca414384015e66544862cf>:0

  at ProjectsPanel.ScanDirectories (Godot.Collections.Array`1[T] scanDirs) [0x000b6] in <c76ad5d95438420fb559050a45690409>:0 <--```


**Complete the Following:**
 - OS: Windows and probably other OS but normal people dont play that much with Linux permissions to see the Error happening
 - Version [e.g. 22]

**Additional context**
checking if the program has access to a folder before and if it hasnt then just ignoring it would be better than letting it crash

Cyrillic alphabet is not supported

Describe the bug
Any text written with Cyrillic alphabet just simply won't be displayed. Instead it just displays empty spaces and nothingness.

To Reproduce
Steps to reproduce the behavior:

  1. Go to any text input field.
  2. Try to type any Cyrillic text.
  3. See nothing.

Expected behavior

  1. Write Cyrillic text anywhere.
  2. See it being displayed properly.

Screenshots
The folder chosen below is called Зображення, meaning Pictures (please note how the path is specified in the text field):
image

Now we're inside this folder, please note the slash symbol at the end of the string, as well as file names (this dangling whitespace on each file separates words Знімок екрану, both of which are not displayed:
image

This also happens with the default path, which should be "/home/username/Documents/Projects". But my Documents folder is named Документи, resulting in just not being displayed at all in the text string:
image

Complete the Following:

  • OS: Ubuntu Linux x86_64
  • Version: Focal Fossa 20.04

Additional context
The probable solution: change the font to the one supporting not only Latin characters, but other alphabets as well.

Project fails when "uninstalling" addon

Describe the bug
I tried to install some addons, and it went horribly wrong. I reverted all the changes in git and, when I tried to unselect them in the manager, the editor crashes:

WARNING: XOpenIM failed
     at: initialize (platform/x11/os_x11.cpp:197)
WARNING: XCreateIC couldn't create xic
     at: initialize (platform/x11/os_x11.cpp:494)
OpenGL ES 3.0 Renderer: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
OpenGL ES Batching: ON
 
Mono: Log file is: '/home/jlieberg/.local/share/Godot-Manager/mono/mono_logs/2022-05-11_20.49.22_19739.log'
ERROR: Error opening file '/home/jlieberg/Documents/the-king-hungers/icon.png'.
   at: load_image (core/io/image_loader.cpp:55)

Unhandled Exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/jlieberg/Documents/the-king-hungers/addons/godot-yaml/x11'.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateDirectoryHandle (System.String path, System.Boolean ignoreNotFound) [0x00032] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult]..ctor (System.String directory, System.IO.EnumerationOptions options) [0x00048] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1+DelegateEnumerator[TResult]..ctor (System.IO.Enumeration.FileSystemEnumerable`1[TResult] enumerable) [0x00000] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1[TResult]..ctor (System.String directory, System.IO.Enumeration.FileSystemEnumerable`1+FindTransform[TResult] transform, System.IO.EnumerationOptions options) [0x00042] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles (System.String directory, System.String expression, System.IO.EnumerationOptions options) [0x00014] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.InternalEnumeratePaths (System.String path, System.String searchPattern, System.IO.SearchTarget searchTarget, System.IO.EnumerationOptions options) [0x0003c] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.EnumerateFiles (System.String path, System.String searchPattern, System.IO.EnumerationOptions enumerationOptions) [0x00000] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.EnumerateFiles (System.String path) [0x0000b] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at PluginInstaller.DeleteImports (System.String path) [0x00000] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at PluginInstaller.Uninstall (System.String instLocation, System.Boolean showDialogs) [0x00215] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at EditProject.UpdatePlugins () [0x00158] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at EditProject.OnSaveBtnPressed () [0x0004f] in <a1cad710b5c64c1685d84a0bb134b18b>:0 

Unhandled Exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path '/home/jlieberg/Documents/the-king-hungers/addons/godot-yaml/x11'.
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult].CreateDirectoryHandle (System.String path, System.Boolean ignoreNotFound) [0x00032] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerator`1[TResult]..ctor (System.String directory, System.IO.EnumerationOptions options) [0x00048] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1+DelegateEnumerator[TResult]..ctor (System.IO.Enumeration.FileSystemEnumerable`1[TResult] enumerable) [0x00000] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerable`1[TResult]..ctor (System.String directory, System.IO.Enumeration.FileSystemEnumerable`1+FindTransform[TResult] transform, System.IO.EnumerationOptions options) [0x00042] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles (System.String directory, System.String expression, System.IO.EnumerationOptions options) [0x00014] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.InternalEnumeratePaths (System.String path, System.String searchPattern, System.IO.SearchTarget searchTarget, System.IO.EnumerationOptions options) [0x0003c] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.EnumerateFiles (System.String path, System.String searchPattern, System.IO.EnumerationOptions enumerationOptions) [0x00000] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at System.IO.Directory.EnumerateFiles (System.String path) [0x0000b] in <6a7c203f6f7a4f07b7fa766077730d49>:0 
  at PluginInstaller.DeleteImports (System.String path) [0x00000] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at PluginInstaller.Uninstall (System.String instLocation, System.Boolean showDialogs) [0x00215] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at EditProject.UpdatePlugins () [0x00158] in <a1cad710b5c64c1685d84a0bb134b18b>:0 
  at EditProject.OnSaveBtnPressed () [0x0004f] in <a1cad710b5c64c1685d84a0bb134b18b>:0

The mono log file doesn't say anything, but I'm guessing it's that the files can't be removed so they die.

To Reproduce
Steps to reproduce the behavior:

  1. Add addons to project
  2. Remove addons by deleting folder
  3. Try to remove addons
  4. Crash

Expected behavior
A warning or something? It doesn't seem that crucial tbh, just don't die

Complete the Following:

  • OS: elementaryOS 6
  • Version: Latest

Desktop entry not created

Describe the bug
I chose to create a desktop entry during the first run wizard and it did not create it. I did not choose to create one for all users, only my current user. I would like to also recommend adding the option to install the .desktop file again in the settings of Godot Manager, that way at any time the user can install it, not just during the first run.

To Reproduce
Steps to reproduce the behavior:

  1. First run
  2. Choose create desktop entry
  3. It is not in my menu.

Expected behavior
I expected a desktop icon in my menu.

Screenshots
None.

Complete the Following:

  • OS: Linux
  • Version 0.2.0

Additional context
None.

Godot 4.0 Project fails to load

Describe the bug
Originally Reported by: SeySvK on Reddit.

When attempting to import a Godot 4.0 Project, Godot Manager Crashes, unable to import the project. Error Log:

`Godot Engine v3.4.3.stable.mono.official.242c05d12 - https://godotengine.org
OpenGL ES 3.0 Renderer: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2
OpenGL ES Batching: ON

Mono: Log file is: 'C:/Users/Chudj/AppData/Roaming/Godot-Manager/mono/mono_logs/2022-03-21_21.25.59_18496.log'
ERROR: ConfigFile parse error at D:/Documents/Godot/TestEmpty/project.godot:7: Unexpected identifier: 'PackedStringArray'..
at: _parse (core/io/config_file.cpp:280) - ConfigFile parse error at D:/Documents/Godot/TestEmpty/project.godot:7: Unexpected identifier: 'PackedStringArray'..
Failed to load Project file: D:/Documents/Godot/TestEmpty/project.godot, Error: ParseError`

To Reproduce
Steps to reproduce the behavior:

  1. Create a Project with Godot 4.0 Alpha 4 Editor
  2. Attempt to Import it in Godot Manager
  3. Crash when attempting to import Project.

Expected behavior
Proper importing of Godot 4 Project into the Project list.

Complete the Following:

  • OS: Windows
  • Version 0.1.0/0.1.1 (?)

Additional context
Crash Log:

Godot Engine v3.4.3.stable.mono.official.242c05d12 - https://godotengine.org
OpenGL ES 3.0 Renderer: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2
OpenGL ES Batching: ON
 
Mono: Log file is: 'C:/Users/Chudj/AppData/Roaming/Godot-Manager/mono/mono_logs/2022-03-21_21.25.59_18496.log'
ERROR: ConfigFile parse error at D:/Documents/Godot/TestEmpty/project.godot:7: Unexpected identifier: 'PackedStringArray'..
   at: _parse (core/io/config_file.cpp:280) - ConfigFile parse error at D:/Documents/Godot/TestEmpty/project.godot:7: Unexpected identifier: 'PackedStringArray'..
Failed to load Project file: D:/Documents/Godot/TestEmpty/project.godot, Error: ParseError

Create Project Dialog Driver Incorrect

Describe the bug
When creating a new project, the Dialog does not properly reflect the drivers based upon the version of Godot being used.
When using Godot from the 3.x tree, driver options should be: OpenGL ES 3.0, OpenGL ES 2.0
When using Godot from the 4.x tree, Driver options should be: Forward+, Mobile.

To Reproduce
Steps to reproduce the behavior:

  1. Open Create New Project
  2. Switch between Godot 3.x Tree and Godot 4.x Tree.
  3. See no difference in description.

Expected behavior
Text should update to represent proper description of the driver options, based upon Tree of Godot being used.

Additional context
Text from Godot Editor for these two options:
Forward+

  • Supports desktop platforms only.
  • Advanced 3D graphics available.
  • Can scale to large complex scenes.
  • Slower rendering of simple scenes.

Mobile

  • Supports desktop + mobile platforms.
  • Less advanced 3D graphics.
  • Less scalable for complex scenes.
  • Faster rendering of simple scenes.

Setup Central Store

Central Store

Central store is a database of information needed for storing various information that will be easily fetchable, without doing heavy disk usage, or heavy network usage, when fetching this information.

Project Management

CentralStore will have a Projects section, for storing Godot Engine Version, Category, and Project File for projects that are managed by the Godot Manager. It's purpose is to have a central list of projects that we can use to display to the user. This can be obtained by creating a new project, importing a project, or scanning a directory for projects.

Github Management

CentralStore will have a Github section, for storing information about releases from Github. The reason for this, is to reduce network traffic, while also notifying of new versions that are released. Github limits Rest API access to 60 requests per hour, per unique IP Address. We could setup an OAuth Token to increase our limit from 60 requests per hour, to 5,000 requests per hour. But should not be required.

Therefore, storing the initial list of releases in our CentralStore, we only need 1 request afterwards to check for updates to the Godot engine, limiting the number of API hits we incur. We can also further reduce this, by setting up an interval in which to check for updates. When the program launches, if that interval + last check has not exceeded, then we do not run the check.

Tuxfamily Management

Tuxfamily does not have a Rest API in which to access for Godot releases. Instead, it simply provides the standard Apache Index.html file for list of directories, and files at a given path, which is organized in a way that we can gather the releases by parsing the HTML. We will still store this information in the central store, to make it quicker, easier, and less data traffic on Tuxfamily, since it's a Open Source Download Repository.

Category Management

Since Categories are specific to Godot Manager, this information is stored in the CentralStore, and not in the Project file. This ensure that the data is non-mutable outside of our manager. Categories will be simple strings with ids for allowing as a way to associate projects with categories, in the above Project Manager.

Settings Management

Our own settings for Godot Manager will also be stored in CentralStore, allowing for easy access to configurable settings that users will be able to make inside the Godot Manager.

Future Management

Future Management of the CentralStore can be added to easily, as if a section doesn't exist, it will just get created. There's a possibility that we may need to add conversions in the future, to ensure that when updates to Godot Manager occur, we can update the CentralStore to prevent crashes from things not matching what should be there.

Current Format

Current format for CentralStore is as a central JSON Object, that has fields for each management section listed above. It is serialized, and deserialized by using Newtonsoft.Json. Future work, may work to convert to using a database format, such as SQLite, or similar, for storing settings, and data in.

Import editor settings

Is your feature request related to a problem? Please describe.
I have to either reconfigure each version of the engine manually or go and copy the file manually constantly. This is annoying because I change a lot of settings such as using an external editor, color scheme, tab settings, fonts, etc and when I download a new version in Godot Manager my settings are not there.

Describe the solution you'd like
A global editor_settings3.tres and editor_settings4.tres that can be imported into each version of the engine easily with a click(could be the default version config files for example). If not a global setting, then maybe an option to import the file from one version of the engine to another during install of a new version.

Describe alternatives you've considered
Not really any alternative, without this it must be done by hand which is a PITA.

Additional context
The only import thing to keep in mind when implementing this is that the version 3 and 4 settings should not be mixed or imported into each other. I should be able to import the version 3 one into any 3.x godot version but not into version 4.x, and vice versa.

Tuxfamily mirror option only available during initial setup.

Describe the bug
A clear and concise description of what the bug is.
Tuxfamily mirror option present in initial setup version menu, but not the regular version menu, menu options for alphas, betas, and RCs cannot be used, and non-release versions are not available for download.

Complete the Following:

  • OS: Windows
  • Version 0.2.0

Godot Manager.app is damaged and can't be opened.

Describe the bug
When downloading the Mac version of Godot Manager, and trying to launch it, an error message pops up, saying that "Godot Manager.app is damaged and can't be opened."

To Reproduce
Steps to reproduce the behavior:

  1. Download from Github or Itch.io pages
  2. Once Mac OS extracts the Zip file, attempt to launch the application.
  3. Error Message Appears from OS stating the above message.

Expected behavior
Application to launch as expected.

Complete the Following:

  • OS: Mac OS
  • Version 0.1.1

Crash when opening project

Just made a new project, no plugins and opengl 2 with 3.5.1-stable. Can't open the project, here's the terminal output:

Godot Engine v3.5.1.stable.mono.official.6fed1ffa3 - https://godotengine.org
WARNING: XOpenIM failed
     at: initialize (platform/x11/os_x11.cpp:213)
WARNING: XCreateIC couldn't create xic
     at: initialize (platform/x11/os_x11.cpp:510)
OpenGL ES 3.0 Renderer: Mesa Intel(R) UHD Graphics 630 (CFL GT2)
Async. shader compilation: OFF
 
Mono: Log file is: '/home/jlieberg/.local/share/Godot-Manager/mono/mono_logs/2022-10-07_23.45.31_22301.log'

Unhandled Exception:
System.ComponentModel.Win32Exception (0x80004005): ApplicationName='/home/jlieberg/.local/share/Godot-Manager/versions/3.5.1-stable/Godot_v3.5.1-stable_x11.64', CommandLine='--path "/home/jlieberg/Documents/Projects/Jams" -e', CurrentDirectory='/home/jlieberg/Documents/Projects/Jams', Native error= Cannot find the specified file
  at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0029f] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at System.Diagnostics.Process.Start () [0x0003a] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at ProjectsPanel.ExecuteEditorProject (System.String godotVersion, System.String location) [0x00070] in <324bdea2f2864be6b2b01cea2e642c13>:0 
  at ProjectsPanel.OnListEntry_DoubleClicked (ProjectLineEntry ple) [0x0002b] in <324bdea2f2864be6b2b01cea2e642c13>:0 
  at (wrapper managed-to-native) Godot.NativeCalls.godot_icall_2_695(intptr,intptr,string,object[])
  at Godot.Object.EmitSignal (System.String signal, System.Object[] args) [0x0000b] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at ProjectLineEntry.OnGuiInput (Godot.InputEvent inputEvent) [0x0002a] in <324bdea2f2864be6b2b01cea2e642c13>:0 

Unhandled Exception:
System.ComponentModel.Win32Exception (0x80004005): ApplicationName='/home/jlieberg/.local/share/Godot-Manager/versions/3.5.1-stable/Godot_v3.5.1-stable_x11.64', CommandLine='--path "/home/jlieberg/Documents/Projects/Jams" -e', CurrentDirectory='/home/jlieberg/Documents/Projects/Jams', Native error= Cannot find the specified file
  at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0029f] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at System.Diagnostics.Process.Start () [0x0003a] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <7d230238b7e0493bad02e7b5f5cb8aa8>:0 
  at ProjectsPanel.ExecuteEditorProject (System.String godotVersion, System.String location) [0x00070] in <324bdea2f2864be6b2b01cea2e642c13>:0 
  at ProjectsPanel.OnListEntry_DoubleClicked (ProjectLineEntry ple) [0x0002b] in <324bdea2f2864be6b2b01cea2e642c13>:0 
  at (wrapper managed-to-native) Godot.NativeCalls.godot_icall_2_695(intptr,intptr,string,object[])
  at Godot.Object.EmitSignal (System.String signal, System.Object[] args) [0x0000b] in <d0b7d6b6d74e4318be3dfcff5c3b7c05>:0 
  at ProjectLineEntry.OnGuiInput (Godot.InputEvent inputEvent) [0x0002a] in <324bdea2f2864be6b2b01cea2e642c13>:0

And the log:

The request to load the assembly System.IO.Compression v4.2.0.0 was remapped to v4.0.0.0 (in domain Mono, warning)
DllImport unable to load library 'Kernel32'. (in domain Mono, warning)

It's installed through itch, and I'm running on linux.

Add ability to filter or sort projects by version.

Is your feature request related to a problem? Please describe.
I want to be able to search through my projects depending on the version of Godot they use. Also, I think it would just look nicer in the projects list if they were sorted by Godot version.

Describe the solution you'd like
Have two column headings: Name and Version. Then allow the ability to sort projects by name or version by clicking on the corresponding heading.

Describe alternatives you've considered
This could also effectively be achieved by creating categories for each version. This works fine but requires projects to manually be added to a category.

Add support for network proxy in future

Is your feature request related to a problem? Please describe.
Slow download in China, both GitHub or TuxFamily.org. (I know download mirror is not implemented yet, TuxFamily.org is slow via browser download. It shouldn't be any faster in godot-manager either.)

Describe the solution you'd like
Add support for http proxy or even SOCKS5, after godotengine/godot#55988 gets merged.
Or if you end up porting godot-manager to 4.0, as 4.0 already has proxy support godotengine/godot#55747

Describe alternatives you've considered
Add another mirror, maybe SourceForge (https://sourceforge.net/projects/godot-engine.mirror/files/), which is extremely fast in China. But it's not a matter of course to do so, as SourceForge had injected ads into the download file back in 2013, caused GIMP to stop using it. Now it seems good though, after it got acquired by another company https://www.reddit.com/r/sysadmin/comments/4n3e1s/the_state_of_sourceforge_since_its_acquisition_in/.
Actually it seems to be the only mirror, besides itch.io, which only has the latest version.

Or just don't implement it. Browser/steam download is fine.

Additional context
Maybe "Tuxfamily not available" tooltip needs be more obvious. For example, making the Tuxmaily.org button Tuxmaily.org (unavailable), because I was all set to raise an issue that mirror switching is broken, until I cloned the repo and looked at the source code to find it's unavailable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.