Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Port the project to Godot 4 #167

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open

[WIP] Port the project to Godot 4 #167

wants to merge 18 commits into from

Conversation

qrrk
Copy link
Owner

@qrrk qrrk commented Jul 19, 2024

I finally decided to bite the bullet and make a serious attempt to port Catapult to Godot 4. I already looked into it before and know that it will be a lot of work, but it will have to be done eventually.
Some things will probably have to be seriously rewritten, especially the more hacky parts related to theming and windowing.

@qrrk
Copy link
Owner Author

qrrk commented Jul 19, 2024

If anyone is curious, this is how it looks so far, after a couple of evenings of fixing.
It launches (barely, still with some errors), but many systems are completely broken.

@Ruteski

This comment was marked as spam.

@AriaMoradi

This comment was marked as off-topic.

@qrrk
Copy link
Owner Author

qrrk commented Jul 28, 2024

Must have

  • Fix any immediate blocking problems (script parsing errors, etc.).
  • Verify core functionality and fix if needed:
    • Game installation.
    • Game launching.
    • Handling of multiple game installations.
    • Mod installation and management.
    • Soundpack installation/deletion.
    • Font customization.
    • Backups.
  • Fix localizations.
  • Fix tab disabling method in Tabs.gd (or find an alternative).
  • Fix stable/experimental selection UI.
  • Fix appearance of custom icon buttons.
  • Revisit OSExecWrapper and decide what to do with it.
  • Fix invisible scroll bars.
  • Fix visual issues in themes.
  • Fix icon scaling.
  • Fix font scaling.
  • Fix any other issues with theme scaling.
  • Playtest on Linux.

Nice to have

  • Modernize code according to changes in Godot 4 (new getter/setter syntax, typed arrays, callables, etc.).
  • Zipping and unzipping can now be done by Godot itself. There is no need to rely on external commands or exe's anymore.
  • Use OS.create_process for game launching.

Extra ideas (can be done later)

  • Centralize duplicated JSON loading code that exists in many places.
  • Add a new theme based on Godot 4 editor theme.
  • Create a watchdog for the game process that will track if the game is running.

@pierredavidbelanger
Copy link
Contributor

While trying to work on #182 , I opened the project in Godot 4 (I was not aware this project was done in v3). Wow, this seems like a huge task. Ill take a look at your godot4 branch on some spare time and see if I can help.

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