Author Topic: qtFRED: What is it and can I eat it?  (Read 8395 times)

0 Members and 1 Guest are viewing this topic.

Offline m!m

  • 211
qtFRED: What is it and can I eat it?
Those of you who frequent the #scp channel on Discord probably already know this but for the past few months there has been an ongoing effort to port the Windows only FRED code to the cross-platform UI framework Qt. This has actually been quite successful which allowed us to merge the current state of the project into the master branch instead of keeping it in a separate branch of the repository. Don't worry, the standard FRED won't go anywhere for some time since qtFRED is still lacking a lot of features.

The project began when the forum user groscask began porting the existing FRED rendering code to the Qt platform. He was very successful in this undertaking and managed to get a version working which allowed to view missions natively on platforms other than Windows. Unfortunately, he was unable to continue developing the project so development pretty much fell dormant at some point. Then (according to the git logs) at the end of May 2017 I restarted development on the project based on the excellent ground work done by groscask. I fixed the code so that it works with the now updated version of the FSO code and soon after I was joined by DahBlount and z64555.
We continued porting code from the FRED codebase and started to make a lot of progress towards making qtFRED an actual editor. Currently the following features are supported:
  • Moving, adding and deleting ships
  • Changing the view options of the FRED renderer
  • Various smaller editor dialogs
  • Mission spec editor is fully functional
  • Displaying the SEXP Tree in a tree widget is possible

Test builds
These builds are updated occasionally when there is something to test.

That is all for the moment. We will post updates here when there are news.
Finally, here are some screenshots of qtFRED in action. These pictures were taken on Linux which already shows that cross-platform compatibility is a thing with qtFRED:



Fully functional mission Specs editor dialog:


Event editor with SEXP tree:
« Last Edit: April 09, 2018, 11:56:20 am by m!m »

 
Re: qtFRED: What is it and can I eat it?
Impressive work, looks like it's moving along nicely :).

Uses psychic powers to summon cookies to m!m, DahBlount and z64555.

 
Re: qtFRED: What is it and can I eat it?
Actually, does cuteFRED any further improvements aside the nice new UI?

 

Offline m!m

  • 211
Re: qtFRED: What is it and can I eat it?
Aside from a few bug fixes when we find them it will be a straight port of FRED code to qtFRED. Additional features would only slow down development. There are some changes to the architecture of the code which should make it easier to add features in the future but that will not be used to introduce new features at this time.

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: qtFRED: What is it and can I eat it?
The unbundling of the SEXP tree code is a good example of that. One of the main reasons I never got around to making the cutscene editor dialogue was that I didn't fancy having to figure out how to make the SEXP code work. Now it can be added as soon as qtFRED is working.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline m!m

  • 211
Re: qtFRED: What is it and can I eat it?
The SEXP tree code I extracted is pretty much a copy & paste job. I didn't change the existing FRED code much except that I changed the MFC controls to Qt so the issues you encountered with the existing SEXP code will probably be the same although I introduced a better way of specifying context specific behavior though an abstract class.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: qtFRED: What is it and can I eat it?
This is excellent.

So, when can I eat it? :p
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
Re: qtFRED: What is it and can I eat it?
Clickbait title, poses a question, doesn't provide an answer.
Disliked, unsubscribed, reported

Can I actually eat it???


Aside from a few bug fixes when we find them it will be a straight port of FRED code to qtFRED. Additional features would only slow down development. There are some changes to the architecture of the code which should make it easier to add features in the future but that will not be used to introduce new features at this time.
There is a whole host of UI things I would like to see in cuteFRED, I've told Dahblount about them in a distance past, I'll write a bunch down here for the heck of it. (I dont know how many of these are already a thing in kawaiiFRED.)

  • Resizeable windows, primarily the event window. It can get pretty frustrating working with a large event in such a small window. I've got plenty of unused screen estate here!
  • Reorder messages. For organizing those messages you add later but actually belong up higher in the list.
  • Increase the size of the ANI dropdown menu, I've got file names that get cut off in its current dimensions.
  • Have the window that opens when you browse for an ani file, default to all valid image types, or at least to apng by default. (If been pestering Dahblount about this change for the past few days now, and I think its already been changed to default to apng for regular FRED)
  • Working keyboard shortcuts. CTRL-C CTRL-V CTRL-Z
  • Update new events. So when you make a new event, and then another new event that does a is-event-true-delay, you can actually instantly add the events you just created. Without having to close and reopen the event window.
  • A briefing window that isn't terrible and awful.

I'm sure I can come up with some more.
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: qtFRED: What is it and can I eat it?
Clickbait title, poses a question, doesn't provide an answer.
Disliked, unsubscribed, reported

Can I actually eat it???


Aside from a few bug fixes when we find them it will be a straight port of FRED code to qtFRED. Additional features would only slow down development. There are some changes to the architecture of the code which should make it easier to add features in the future but that will not be used to introduce new features at this time.
There is a whole host of UI things I would like to see in cuteFRED, I've told Dahblount about them in a distance past, I'll write a bunch down here for the heck of it. (I dont know how many of these are already a thing in kawaiiFRED.)

  • Resizeable windows, primarily the event window. It can get pretty frustrating working with a large event in such a small window. I've got plenty of unused screen estate here!
  • Reorder messages. For organizing those messages you add later but actually belong up higher in the list.
  • Increase the size of the ANI dropdown menu, I've got file names that get cut off in its current dimensions.
  • Have the window that opens when you browse for an ani file, default to all valid image types, or at least to apng by default. (If been pestering Dahblount about this change for the past few days now, and I think its already been changed to default to apng for regular FRED)
  • Working keyboard shortcuts. CTRL-C CTRL-V CTRL-Z
  • Update new events. So when you make a new event, and then another new event that does a is-event-true-delay, you can actually instantly add the events you just created. Without having to close and reopen the event window.
  • A briefing window that isn't terrible and awful.

I'm sure I can come up with some more.

OMG So much yes.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline Axem

  • 211
Re: qtFRED: What is it and can I eat it?
https://docs.google.com/document/d/1BRJZ8wI-1JeEzaZ0GuZki7K93BYqPea-iSEDnjqZ49Q/edit?usp=sharing

:)

EDIT: I should add this is very cool and major props to the people who are diving into this job!
« Last Edit: March 12, 2018, 12:24:38 pm by Axem »

 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
Re: qtFRED: What is it and can I eat it?
Right, I forgot that document existed.
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 
Re: qtFRED: What is it and can I eat it?
If we're already talking about that, what about some kind of dialog editor that ties message, sender (including ani), interval and stuff like that together, so that instead of send-message-list you have pre-made message lists that can be stopped if necessary? If you had a button like "add message to list", with interval (from message length) and priority being assigned automaticly, all the user would have to add being sender and priority (if needed), and writing the message of course.

Because for now the easiest way to insert a msg into send-message-list is to open the mission in notepad, AFAIK.

Also, if the list is too long it can happen that you (probably even with correct FREDing) receive opposite messages at the same time.

 

Offline Spoon

  • 212
  • ヾ(´︶`♡)ノ
Re: qtFRED: What is it and can I eat it?
If we're already talking about that, what about some kind of dialog editor that ties message, sender (including ani), interval and stuff like that together, so that instead of send-message-list you have pre-made message lists that can be stopped if necessary? If you had a button like "add message to list", with interval (from message length) and priority being assigned automaticly, all the user would have to add being sender and priority (if needed), and writing the message of course.

Because for now the easiest way to insert a msg into send-message-list is to open the mission in notepad, AFAIK.

Also, if the list is too long it can happen that you (probably even with correct FREDing) receive opposite messages at the same time.
+1 for that

The way we still do messages nowadays is archaic as all heck
Urutorahappī!!

[02:42] <@Axem> spoon somethings wrong
[02:42] <@Axem> critically wrong
[02:42] <@Axem> im happy with these missions now
[02:44] <@Axem> well
[02:44] <@Axem> with 2 of them

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: qtFRED: What is it and can I eat it?
I mean, you might be able to get Ctrl+Z working on an individual text element if that is already supported by Qt, but having an undo stack for FRED in general has been a long-awaited but very difficult thing to try to implement.  Assuming the state of that won't change much as the underlying architecture of how FRED works is being maintained.  That probably means that it's still using backup mission files for each change you make, etc.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 
Re: qtFRED: What is it and can I eat it?
Well you might be able to log all things in a seperate file everytime something in the mission is updated.

That would require having a window where you could read things like

"Alpha 1" moved to coordinates "x,y,z"
"Alpha 1" changed orientation to "p,b,h"
Event "WTF" modified

So far FRED spits out a Backup.00x file everytime something is updated, if only the changes were saved it might be easier to handle.

Also, it might be useful to have such a log file if you're working on a project with others. If something is suddenly broken that worked before, it is probably easier to find out why.

but I have no idea about coding, sooo...
« Last Edit: March 12, 2018, 02:46:15 pm by Nightmare »

 

Offline DahBlount

  • Moderator
  • 29
  • Alpine ☆ Cancer Tribulation
    • Minecraft
    • Skype
    • Steam
Re: qtFRED: What is it and can I eat it?
I highly encourage any suggestions be put in the google doc Axem linked. It'll make things easier once qtFRED is at parity with FRED2.
<Axem> yet still more insightful than #hard-light

<Axem> jad2.23 will just be cat videos

<DahBlount> So
<DahBlount> JAD2.2 is like that
<Axem> maybe
<Axem> it can be whatever you like!
<DahBlount> A Chocolate Sundae?
<Axem> sure

My models: GTF Gilgamesh - GTD Nuadha [Redesigning] - Ningirama [WIP] - GTG Zephyrus

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: qtFRED: What is it and can I eat it?
Oh my... I imagined FREDing in the future FRED as described by that document and I about died with excitement. Yes. All of that.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline kaptain

  • 20
Re: qtFRED: What is it and can I eat it?
Amazing work :yes: ! i know this is not a priority but... just a question out of curiosity, how difficult under a coding point of view will be a feature to test a mission without loading it every time from zero? i mean, keeping the invariable assets in memory (models, sounds, etc.) and only loading the changes?

 

Offline DahBlount

  • Moderator
  • 29
  • Alpine ☆ Cancer Tribulation
    • Minecraft
    • Skype
    • Steam
Re: qtFRED: What is it and can I eat it?
That might be a bit difficult as FRED and FreeSpace are separate executables.
<Axem> yet still more insightful than #hard-light

<Axem> jad2.23 will just be cat videos

<DahBlount> So
<DahBlount> JAD2.2 is like that
<Axem> maybe
<Axem> it can be whatever you like!
<DahBlount> A Chocolate Sundae?
<Axem> sure

My models: GTF Gilgamesh - GTD Nuadha [Redesigning] - Ningirama [WIP] - GTG Zephyrus

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: qtFRED: What is it and can I eat it?
Oh my... I imagined FREDing in the future FRED as described by that document and I about died with excitement. Yes. All of that.

The problem is that at the moment qtFRED is a straight port of FRED. All that's changed is the interface. So if anything was impossible before because of MFC, then it might be possible to change it (CTRL + whatever is an example of that sort of thing. I did look into it a while back and could never get it to work despite the fact I seemed to be doing everything the MFC documentation told me to do). If the problem is that you'd have to rewrite large sections of FRED, then that's not going to be fixed simply by moving to qt.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]