News:

One Minute Game Review by The Happy Friar: https://ugetube.com/@OneMinteGameReviews
Also on Rumble: https://rumble.com/c/c-1115371

idTech 4 (aka Doom 3 tech) Discord Server! https://discord.gg/9wtCGHa

Main Menu

RBDOOM3-BFG GUI system

Started by Manson, August 07, 2015, 05:26:10 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Manson

Can someone please explain how GUI system works on BFG edition.

Im intrested in modin main Screen and Menus. When i unpacked resource files there was no .gui files for main menu, only cursor.gui, genericmap.gui and some weapon gui's. So how can i mod the main menu?

trebor

You can't at the moment. Replacing is a quite tiresome task and only motorsep did this so far.
The menus are built using Flash and the source flash files where not shipped with the BFG edition. However I already worked on a solution to mimic id Tech's Flash interpreter in Blender.
The .bswf file is a simplified version of the source Flash files but it includes triangles meshes instead of Flash shapes for example.

I already wrote an export bridge using JSON to analyze the data within Blender but it is not finished.
https://www.dropbox.com/s/q11glupsdetx3zb/Screenshot%202015-06-10%2000.44.52.png?dl=0

My plan is to replace Flash with this new JSON based format and to replace Actionscript with Lua.
The menu is almost entirely written in C++ like in Q3A. However the sprite definitions are defined using Flash. Those can be defined easily by Blender.
There is almost zero Actionscript logic behind it. I know it because I wrote a P-Code -> Actionscript reverse enginering tool inside BFG.

I also have a .bswf -> Flash converter in the works but it is also not complete:
https://www.dropbox.com/s/8sdnaejpgig8mxs/Screenshot%202015-06-10%2017.49.19.png?dl=0

I can understand why they replaced the .gui stuff for the main menus. It was a huge mess.

motorsep

Apparently Adobe Flash will be phased out soon (unless it's just a rumor) :/

I personally think it would be fine to bring back old GUI system for full screen, but adjust it to work with widescreen resolutions, and pack all graphics into atlases, as it's done with Flash menus right now (automatically, by the engine).

We already fixed GUI Editor and expanded functionality. So it's much easier to build guis with it. It would be nice to add animation support, a la Adobe Flash and improve existing functionality even further.


BloodRayne

Quote from: motorsep on August 07, 2015, 10:33:54 AM
Apparently Adobe Flash will be phased out soon (unless it's just a rumor) :/
Not a rumour, Flash is leaky as a 90yo woman. It's a constant security risk and hassle, it's entire design principle is flawed in the way that it eats up CPU and performance. The kernel is so flawed that an entire rewrite is necessary. I can't believe they ever went with Flash as a GUI interface.

motorsep

Quote from: BloodRayne on August 07, 2015, 11:33:59 AM
Not a rumour, Flash is leaky as a 90yo woman. It's a constant security risk and hassle, it's entire design principle is flawed in the way that it eats up CPU and performance. The kernel is so flawed that an entire rewrite is necessary. I can't believe they ever went with Flash as a GUI interface.

While it is a security risk for web, it's in no way security risk for game UI :) Scaleform is still around and widely used, so it would be a surprise if Flash would be just dropped. It's the only robust tool on the market for UI design. I haven't seen any software aimed at UI development with capacity close to Flash (especially animation tools).

BielBdeLuna

#5
In OpenTechEngine Kortemic implemented Crazy Eddie's GUI to replace flash based GUI, Robert could this blender script be reimplemented with CeGUI? it looks pretty good!

motorsep

Quote from: BielBdeLuna on August 07, 2015, 12:09:35 PM
In OpenTechEngine Kortemic implemented Crazy Eddie's GUI to replace flash based GUI, Robert could this blender script be reimplemented with CeGUI? it looks pretty good!

There is nothing cool about artist-not-friendly tools  ::)

That's was the sole reason to implement Flash in BFG/RAGE/Wolfs and most likely Doom - artist-friendly tools that allow rapid UI development. It's also easy to find Flash UI artist to just start working on UI even before UI is implemented in the code, than train someone to use horrible GUI system from Doom 3.

BielBdeLuna

what do you reefer to artist not friendly tools? this script form Robert seems quite friendly isn't it?

motorsep

Quote from: BielBdeLuna on August 07, 2015, 12:19:01 PM
what do you reefer to artist not friendly tools? this script form Robert seems quite friendly isn't it?

Seriously? Artist use WYSIWYG tools, like Adobe Flash. Coding is not artist friendly. It's programmers friendly .

BielBdeLuna

but can't we drag and drop in Blender? Motorsep, is this script final? do you know how it works?

motorsep

Quote from: BielBdeLuna on August 07, 2015, 12:31:31 PM
but can't we drag and drop in Blender? Motorsep, is this script final? do you know how it works?

Blender is 3D app. HUD in D3BFG is the simplest of all GUIs. Menus/PDA/dialogs are much more complex and require ActionScript code. I don't k now what's Trebor's ultimate plan is, but as an artist, I sure do not want to fool around with Blender for UI design.

I've worked with Flash, Doom 3 GUI editor, Qt 5 Designer and I can say that Flash is awesome when it comes to making GUIs. Then comes Qt5 Designer and only then, far apart from the leaders comes Doom 3 GUI Editor.

As an artist, I do not want to touch scripting for anything but only making UI elements call functions that call Doom 3 script execution and such. Qt5 actually excels at GUI design as a whole.

BielBdeLuna

tell me, without any kind of scripting how would you do any sort of menu? whether you like it or not you need some sort of scripting, also, why would the artists need to touch any sort of scripting, that's work of the programmers.
So if you don't like scripting "as an artist" so be it, it's not meant to be liked by artists, isn't it?

and also, why despise this script?

motorsep

#12
I am failing to understand how you can't see the difference between Flash and that script stuff.

There is clear distinction between having WYSIWYG editor where you draw UI elements, vs coding UI elements in script.

Have you tried making UI for Doom 3 ? It's a bizarre process from artist's perspective. It's basically HTML coding, but worse.

Now with Doom 3 GUI Editor working, it's much better (if the GUI is static) - you draw entire GUI in the editor, and then script interactions.

If your GUI is animated, it becomes pretty horrible again.

Crazy Eddie's GUI looks just like that, minus WYSIWYG part.

I am sure you are aware that there are a way more artists out there trying to make games than programmers. By magnitude. So if you are making your OpenTech engine for indies, and you are not making it artists friendly, good luck finding anyone making games with it.

BielBdeLuna

yes I've done idTech4 GUI stuff, I did the pain wheel for doom3 and some stuff with usable entities and their interaction with the cursor

but never an entire fullscreen GUI, I know enough to know it is difficult. and I've also created scripts, if you want WYSIWYG kind of work-flow then you need to start with a solid foundation, and you always start with a manual process to convert it to an automatized process. Blender is great for that last part in order to keep all the process open, and with an already solid UI system which is highly expandable.

with flash don't you need the action script?

motorsep

Quote from: BielBdeLuna on August 07, 2015, 02:41:11 PM
with flash don't you need the action script?

Not to make UI elements move and animate. Also need a way less Actionscript code to do delays and triggering of animations / transition. And less code for buttons.