GoZen Update: 2024 – Week 12

This week a lot of progress has been made, a lot of it is ready to be pushed to the repo, other parts I am still working on, let’s first go over all the parts I have finished.

Finished (won’t touch till Alpha)

Window/editor UI

So the UI has seen a shift, especially the top bar. The editor icon became bigger so it hopefully becomes more noticeable that this is clickable and that it gives a popup menu, this menu is still a work in progress though but will basically replace the missing menu bar, this gives more vertical space.

Another change is the way the layout tabs are presented. Switching between layouts can be done with ‘page up’, ‘page down’ or by using ctrl and the number of the layout.

With this new layout, a big change in the coding also happened, but going into detail about this will probably be quite boring as I am the only person working on the coding side of GoZen for now so I’ll save the details. :p

Because of the UI changes I also started adding a lot more icons to give things a little bit more of a “finished” look. More icons will be added in the future and the style and/or icons themselves can still change in the future.

Bug reporting

This bug report menu is kind of a work in progress … but I won’t touch it until right before beta I think. It looks good enough for now and it works. The way it works is by sending an HTTP request to a google form. I’ll be making a video about how this works in the future. Main reason for implementing this is because alpha is getting closer and I want to provide easy way’s for people to report bugs, be it through mail, Discord, Github, app itself, … I want the experience for testers to be reasonably smooth.

No more File manager layout

I decided to remove the file manager layout, this is something I may still implement, but it will be for after the first release. Right now I want to focus on the core functionalities of GoZen. The file handling will be done through dragging files in the editor, this will be the main and only way for now.

Subtitle layout

Something which I find important is being able to easily make subtitles. This layout got added, but won’t receive any attention from me until the alpha is released and most bugs have been squashed. The style in which this will work will be similar to YouTube but I’ll be using WebVTT, which is a subtitle format which will allow to put subtitles in different locations and to have a bit more formatting compared to the standard SRT.

Window handler

The window handling has seen big improvements thanks to Manpreet, a contributor of the GoZen project. Biggest change which happened was the switch to make this into an autoload instead. At this moment we have a lot of autoloads so I am kind of considering to move some to the GDExtension side of things and just make them into static classes instead.

What will be in the GDExtension?

At this moment only the FFmpeg stuff will be included in the GDExtension, but I do intend to move more core functionality over to the GDExtension if performance were to be an issue. The GDExtension still needs a lot of work done to it for the video seeking and rendering improvements (we still don’t have audio for rendered videos ^^”). The GDExtension system will be a vital part of GoZen for performance, but there will be testing to see if changing some code of Godot itself could also increase performance and file size, but that’s for later.

Gengodot – localization support

Gengodot is my attempt on improving the localization support for GoZen to an inscreen editor tab next to scripts. At this moment this is very bare bones but it can read in POT files, and export mo files. That’s about it for now as I really need to continue work on the core elements of GoZen if I want the alpha to be released next month.

Default theme

The default theme also saw some changes, and I really feel that from this blog post on, I’ll be able to share more visual changes which will make these devlogs probably more fun to read through. ^^”

Work in progress for Alpha

Media pool

The last parts of the media pool are to actually accept files on dragging in. Probably not that much work, but the whole system which handles files is something which took a bit of time to figure out. Don’t really expect this to take longer then a week to finish.

Project view

The project view on the other hand is something which may require more time as I will need to create yet another autoload. The frame generation is a core part which should not be put into a module by itself. I am considering of putting the code for the frame generation directly inside of C++, the problem is that a lot of how this will work is through creating a lot of nodes and shaders … Not certain how that will go, but to have a very basic version with no working effects will probably take about a week, but that can only be worked upon as soon as the Timeline is finished.

Timeline

Talking about the timeline, look how late it is! I’ve been struggling with this for well over a couple of months by now. ^^” But why do I struggle so much with the timeline for GoZen, well let’s name some of the reasons:

  • How make the data structure which saves the data of each track (clips, clip effects, positions, …);
  • How handle framerate changes of video clips;
  • How handle project framerate changes;
  • How handle transitions + effects;
  • Dragging of clips without overlapping or causing problems with the data structure;
  • Dynamically scaling the timeline;
  • Zooming in and out (again related to the whole framerate stuff);

Render menu

This has gotten a lot of work put into, however it’s still not working as we need the timeline and project view to be implemented. Afterwards I’ll be able to make the buttons, sliders, and all the rest work.

Next month!

So next month will be the release for the alpha, one more quick reminder that the end of applying for the alpha is getting very close. I don’t have any specific date, will really depend on how well the progress on these last to-do’s go.