Post news Report RSS "Baker UI" - The Road To An Elite User Interface

A discussion of optional user interface capability and the road to come for Zircon.

Posted by on

May 25: Improved Crash Reports (Download: Zircon Beta #54 - Win64)

Going to be thinking of ways to get a better crash report. A hard to debug example is the crash someone else gets that the engine developer isn't able to replicate.

While thinking about this and examining source code, DarkPlaces performs a rather impressive reset on gamedir change which is about 85% of a full engine restart and runs a ton of Renderer_Init type of functions. However, some functions like Host_Init or Cbuf_Init run once per session. I'm renaming the ones that run once per session to "InitOnce" so when I see these functions I know they are excluded from a gamedir change or other type of restart that can occur.

May 25: Helicopter Challenge

I found this reasonably low poly helicopter model at sketchfab. I would prefer a slightly higher-poly one, but most of the others I saw were very high polygon count models. I want the blades to spin, I want the model to be separated into 2 components in obj model format with the propeller as an attachment.

helox2

And I want the entire process to be a console command in Zircon that takes the .obj model, separates out the named "group" (in this case Propeller_2) into a separate .obj file -- writing the one with and without -- and calculating the attachment position. And then the QuakeC side that attaches the propellor to the helicopter and rotates it at a speed set by QuakeC.

So this is several different challenges wrapped into 1. The splitting the model in 2 separate ones is the main challenge, about 30% through that one. I would describe this part also as "not fun at all".

May 23: Comments/Notifications

iBloodHeuer has returned and says he has some ideas. And I know I'm looking forward to it! iBloodHeuer has experience in commercial game development. I didn't notice his comment that he returned until now.

Baker's previous experimentation with getting DarkPlaces to do inventory.inventory

Comments that are direct replies to a user also do an email notification and this can also cause a notification on someone's phone. Comments that aren't a direct reply to a user, there is no notification and those can be hard to notice. I know I look at the comments on this page and the comments in the Zircon download section, in the event someone notices something is wrong with a download, etc.

May 22: Quake 1.5 JPEG Version (V2)

The Quake 1.5 JPEG Version (download JPEG version) has been updated to version 2.

May 22: Half An Idea

Several experiments combined do not necessarily come together to form a cohesive idea ...

May 21: Travail HD / Jakub JPEG

Travail HD set .. JPEG version. (978 MB -> 166 MB .. 84% smaller download). Put .pk3 in Travail folder and run Travail. (Download Travail HD JPEG version).

Pictured: I have bind mouse2 +zoom. Zircon creates a +zoom if a mod does not have one. Far better than the terrible "zoom_in" Quake comes with. On another note .. flashlight for most mods.

May 21: Tomb Of Thunder Issue ... Eliminated in #54

Plus reduced warning messages that other engines do not print ("division by zero in QuakeC", "brush with empty submodel") to developer prints ("developer 1" to show them, otherwise a user will not see them).

DarkPlaces was not fully clearing all viewblend values (set by some mods with v_cshift command) on a map restart.

May 21: New Endangered Bug

Jakub1 told me about this bug and told me how to re-create it. Notice that the screen stays black even after I die. The map restart is not clearing the black hue.

tombofthunder


Even gamedir changing after death doesn't clear it. For sure, clearing the hue on death and gamedir change will get eliminated. Note: you can type "gl_polyblend 0" in the console and the black hue doesn't render, that doesn't fix the problem but cures the symptoms of the disease. (There should probably be a way to manually clear that hue via console command -- I have seen mods that fail to clear "darkening hue" for various reasons in any normal engine too -- an example is Nehahra.)

Also note the printed warning about division by zero in QuakeC spammed. Although when I am working with QuakeC, I like those messages -- for many single player releases it is console spam that no other engine does -- I am probably turning it into a "developer 1" print -- which is unfortunate because in my opinion "developer 1" spams far too much information to be as helpful as it could be.

May 21: Quake 1.5 JPEG Version

Created JPEG version of the Quake 1.5 (download JPEG version) which the most ambitious Quake mod for DarkPlaces of all-time.

May 19: Release #53

I made a JPEG version of the remarkable Rivarez Edition (download JPEG version) using the Zircon "jpegsplit" capability that writes the alpha channel to a separate file for a rarely used DarkPlaces capability. I wanted to see what kind of file reduction yield I could get. 5.4 GB to 1.3 GB (76%).

On another note, Rivarez Edition actually has a replacement texture set for Dimension of Doomed. The MG1 maps are known for performing poorly in Zircon Beta while being steady in Zircon Alpha. I did some light experimentation with "r_q1bsp_lightmap_updates_combine 1" (the default is 2) and performance felt much better -- in time, I may be able to unwind the process and see how those particular maps interact with the lightmap upload process.

Extra note: anti-aliasing using the traditional hardware based "multisample" capability is impossible with DarkPlaces. DarkPlaces specifies the drawing of every single pixel via a GLSL pixel shader, this cannot mix with hardware multisample. There are other ways this could be achieved, but it is not a priority -- I thought I had an easy target, so I tried to knock it off the list with a simple fix.

Quake 1 Map Levelshots In #52

"levelshot_maps_all" will cause Zircon to cycle through all maps located in the current game directory and make screenshots named "levelshots/e1m1.jpg" for every map. At a few seconds a map, this can take 20 minutes if you have a lot of maps.

If you have unusual stuff maps that only work with FTEQW or other odd stuff (like a map that precaches a model that is corrupt for the format it is supposed to represent) that might actually crash a DarkPlaces engine, restart Zircon -- the screenshot process will NOT attempt the same map twice (it writes a failed placeholder first).

Anti-aliasing is probably fixed. "vid_samples 4" or "vid_samples 16" followed by a "vid_restart" should in theory activate it. Multisample anti-aliasing requires either a good example to test and it seemed to work, but at higher resolutions it is hard to tell. Multisample is performance costly and hard to notice on high resolution displays. I think it works now, but after zooming in on some surface edges it was hard for me to tell. (jakub1 pointed this out to me lately, although I did see a comment on the topic once at the Xonotic forums by a mapper).

Quake 3 Map Levelshots In #51

Sometimes I like looking through map geometry in Quake 3 maps for inspiration or to see interesting things they did with shaders. Lvlworld.com is where I usually go (although they do not have every map).

I have a quake/q3 folder that is Open Arena unzipped into that folder and I put any Q3 maps into that folder, type "game q3" and go to the maps menu ... however, I have no idea what map is what by name. I added levelshots/mapname.tga to display in the maps menu.

I also made the maps menu not automatically refresh. DarkPlaces digs through each map entities segment to find the map title, for a ton of maps this can be slow and it usually does not need to refresh unless you added a map while having the engine started. Press SPACE in the maps menu to refresh the list now.

The maps menu is one of the prime candidates for a user-interface overhaul ... I would like to figure out a solution for Q1 .. even if it involved the engine having to create the screenshots from the maps.

JPEG/Test_Mat2 Test (Download: Zircon Beta #50 - Win64/ Linux)

I had to try this out to see how well it converted (result = excellent!). Using the Zircon "jpegsplit" command, made a JPEG version of GremlinForester's Test Materials 2 map. It is now a 29 MB download.

diet gremlin

Made with the Zircon "jpegsplit" command. Video clip is of JPEG version.

I like high effects, great looking textures and environments but I am interested in avoiding download sizes like the 5.4 GB size, say, the Rivarez Edition -- for instance.

(The Zircon jpegsplit command converts to JPEG keeping the alpha channel in a separate JPEG file).

Zircon Beta Release #50

SMEJ2 issue resolved, gamedir change cvar reset is now perfect, "devinfo" command available.

Information Is Speed

Zircon will soon be getting upgrades -- optional -- I'm a hardcore conservative engine guy that wants to feel like I'm playing Quake. The current mouse-driven menu in Zircon is classy and does not take away from the "Quake" feel. At the same time, Zircon needs a mod installer built-in and I feel the options menu has too much stuff to find easily, I think an alternative might be helpful and many other possibilities exist.

ui 3

Pictured: The user-interface components in Zircon were made to allow fast real-time experimentation and adjustments with a couple of clicks. (Note: The context menu to edit mode is right click)

Little time has been invested in the "color scheme". The goal so far was writing the user-interface components and bending the engine infrastructure to get to support all of these capabilities.

The first round -- the testing round -- is a developmental tool "devinfo" that will expand as time permits and will likely eventually include the ability to real-time edit in-game entities -- which can help fine tune a map or mod.

ui 1 1


Pictured: The data displayed in "devinfo" allows column sizing, amongst other things. The user-interface components are not using a third party tool-kit, they are Zircon-native capabilities written in the last few weeks. Several DarkPlaces capabilities made this easier, like the TrueType Font support.

Mods targeting DarkPlaces capabilities tend to be far more sophisticated than Quake and when making these mods, how quickly one can get to the key information to fine-tune or fix a map or find the nature of something that is not working as expected is important.

ui 2

Pictured: Rounded buttons and text entry including selecting text with a mouse.

ui tabsel

Pictured: The user-interface capabilities in are controlled by a human readable, easily modifiable format that allows comments. It allows changing it quickly, far easier than a hard coded user-interface.

Note: The actual first step towards this was the new "load/save game menu" that stores map screenshots, pictured above. I don't recall the exact version, I think it was Zircon Beta #43.

Zircon #50 soon ..

Post comment Comments
KleskBY
KleskBY - - 25 comments

w0w

Reply Good karma Bad karma+2 votes
Baker55 Author
Baker55 - - 264 comments

Eventually will probably be able to use in conjunction with QuakeC for mods and mod menus.

Inventory management, mess with items in your backpack, etc.

Have to do this in stages, one step at a time.

Reply Good karma+1 vote
KleskBY
KleskBY - - 25 comments

Try to add nuklear gui lib to the project

Reply Good karma Bad karma+2 votes
Baker55 Author
Baker55 - - 264 comments

For graphical inspiration, those are some nice looking screenshots.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: