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

Conversion Progress Tracker #1

Open
3 of 32 tasks
menaechmi opened this issue Sep 13, 2024 · 0 comments
Open
3 of 32 tasks

Conversion Progress Tracker #1

menaechmi opened this issue Sep 13, 2024 · 0 comments

Comments

@menaechmi
Copy link
Owner

menaechmi commented Sep 13, 2024

Issues with Godot

  • Not all changes from 3.x to 4.x were documented. I've opened an issue upstream, but I keep encountering them.
  • Version 4.2.2 has some quirks that are fixed in 4.3 (and 4.4) but I'd like to target 4.2.x first and then up from there.

GUT

  • GUT GUI needs to be updated. GUT now expects you to use the gut tab in the editor, instead of a scene.
  • Many GUT tests fail on the Demo and in general. Without the GUI working, it is hard to tell which ones.
  • yield_for and yield_to are now deprecated and should be changed to wait_for_signal wait_seconds.
  • Maybe GUT should be a submodule?

Failing Tests

  • A few tests seem to stop the whole testing process. test_scripting_engine_filters test_state_filter_parent just stops GUT execution. You can add additional statements after the last asster, so logically it's a problem with the cleanup tasks, but I haven't been able to track it down.
  • Most tests should be failing because of some problem with the code - but a few might still have issues with changes from the conversion
  • A few tests have commented out sections - they should be fixed and re-enabled
  • All tests should pass
  • Some tests could use updating or removing - old tests existed to test class_name for example, but they no longer work, and 4.0 syntax is <variable> is <Class> but I've preserved them for now.

DEMO / BASE SCENES

  • Main menu title text is wrong size
  • Almost all text handling needs to be fixed
  • Library card and deck builder don't work as intended. Part of the issue is that PopUpPanels are no longer Controls but Windows.
  • Demo does not show cards. They're properly loaded into cfc.deck but never make it to the Scene Tree. They work properly in GUT tests.
  • Tween logic did work and then stopped working. tween_property().from() doesn't seem to like the weakref implementation.

REWRITES

  • Font handling (mostly in cardfront.gd) has changed. Instead of a font file copy for each use (which provides font.size that can be changed) Godot now uses a single FontFile with theme_fonts (and theme_override_font_size). Some if it is started.
  • super._ready() Many issues stemmed from the fact that lifecycle functions no longer call their super version of those functions. The fix for this means that every derived class needs to use super._ready() as the first line in their _ready(), which also means that users will need to do that in their derived classes. Some way to rewrite these classes to prevent that would be nice for the end user.
  • ViewPortCardFocus.gd:155:180 $VBC/Focus is a PopUpPanel node. This node used to be a Control but is now a Window - which means there is no 'modulate' property. If we want to continue the soft fade in/out either a way using Window should be done, or it should be changed to a different node type. It might need a re-write with the change. Also note the effect on test_piles.gd:95
  • Script.get_global_name will be exposed in 4.3 which should allow us to get the class_name of a script object. I think it would be able to simplify logic in a few places. <variable> is <class> works in 4.2
  • I mostly just wrote the tween logic to replace what already existed, but they could definitely use a re-write all over the place to take advantage of their new lightweight run and forget attitude and being scope-specific.
  • Godot 4 does not allow overriding build-in functions (neither did 3, but 4 is more specific about it). Overridden functions should be re-named and any calls to them also to make it clearer what the call is trying to do. Off the top of my head Pile.gd:add_child() but I know there are more
  • AcceptDialog used to be a Popup but now is only a Window - so it's lost some methods and gained others. Anything that uses it should be reworked as needed.

SPECIFIC

These may or may not address other listed items

  • pile.gd pre_sorted_order is never given a value
  • CardTemplate.gd:359 the logic is not neat (is not and is ! are not allowed in syntax). It can be fixed when 4.3 is released
  • _previously_focused_cards does not seem to work in the test only. - the problem is in MousePointer.gd. The "area_entered" signal is never sent, so _on_MousePointer_area_entered never runs, so focus is never changed. MousePointer.gd might be due for re-write to native functions anyways, but its a wide-reaching unit. (test_facedown.gd)

OTHER

  • Github actions uses godot 3.4.4, so no builds will be able to pass until that is fixed
  • I'm not sure if breakpoints are carried over - if so, they should be deleted. They're to mark all of the code I touched
  • Lots of unused variables left over and their warnings.
  • Tweens are mostly handled correctly, but there are a few that don't work properly. Some are just added to the scene tree without tweeners (normally @onready var _tween = create_tween() not being in a function)
  • Documentation might need to be updated
  • If/when this is merged back into the base (and even if it isn't) all of the non-working commits starting from b314af5 should be squashed.

If you do some testing and find an issue that's not tracked here, please open an issue or submit a PR.

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

No branches or pull requests

1 participant