[WIP] Zeta-Windows Alpha

Software projects like source ports (3DGE, Eternity, etc), launchers like ZDL, and other useful utilities belong in this forum.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: [WIP] Zeta-Windows

Postby Nero » Sat Oct 22, 2016 4:17 pm

Update - 22/10/2016
  1. Fixed a memory leak in the console logging functions which was introduced when I changed the functions to allow for unrestricted string length.
    Couple of new features are being added:
  2. Key-bound controls, which will allow Z-Windows to be either mouse-driven or key-bound driven, but not both at the same time. The idea is to allow for more retro-styled interfaces.
  3. Signalling of specific windows from a Z-Windows-specific signaler object, which allows windows to be updated from within a level for more dynamic interactions; this is actually based on an earlier concept for my R.A.I.D.-In.F.O. system that caused UI elements to be displayed when an actor signaled the R.A.I.D. that the player was within a specific proximity.
  4. Multi-player support, for the foreseeable future, is being removed as a Planned Feature. It's pretty apparent that Z-Windows mouse control is the main thing holding back multi-player. The keybound system may allow multi-player to make return, but don't hold your breath.

OP has been updated.


*edited: forgot to add my removal of multi-player support.

Further Update Edit:
Signalling objects have been templated and functionality added to Z-Windows. How the object works and what it does in-game doesn't matter, just how it gets the information it sends to Z-Windows matters, and how it sends the information matters.

OP updated, again.
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Nero » Mon Nov 14, 2016 8:27 pm

Update - 14/11/2016
  1. New demo video!
  2. Finite windows are now a possibility.
  3. Still hunting memory leaks - accepting help and ideas Free text wrapping function to good home: here

OP has been updated.


Edit - 16/11/2016
Not hunting memory leaks anymore; but if you'd like a free text wrapping function, then check out the link above.

OP updated
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Nero » Thu Dec 08, 2016 4:12 pm

Update 08/12/2016
  • Probably the biggest thing so far in Z-Windows!
  • No I won't keep the text that big, but I will say that I'm tentatively removing the Custom Engine Build Requirement! Two big optimizations have spurred this. First, window procedures are now ACS scripts; this should reset the counter. Second, window procedures are still called by priority, but access and organization is done in a linear fashion using a table. The original idea was to create a linked list for a priority-based call stack, but the table is much simpler; basically access the window table, put the window address into the call table using the window's priority as the index. The list assembles itself and each procedure gets fired on one tic, one after the next.
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Nero » Mon Jan 16, 2017 5:35 pm

Update 16-01-2017

  • Text wrapping has been finalized!
  • Wrapping now effects other window objects
  • Hyphenated wrapping is an option


I'd also like to give a shoutout to Torm and the crew over at Realm667! I'm honored with the article guys! Thanks! :D
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Graf Zahl » Tue Jan 17, 2017 3:54 am

Interesting stuff, although what's a real pity is that it is run in ACS which cuts if off from the main engine and essentially reducing it to mod-side use.

For the scripting stuff it is nearly inevitable that I'll have to add some GUI stuff for inspecting actors and other entities as debugging aid, of course this needs either be done natively or partially in ZScript, but ACS is essentially worthless in that context - GDCC or not.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: [WIP] Zeta-Windows

Postby blood » Thu Jan 19, 2017 4:59 pm

Very amazing! :shock:

Spoiler:
blood
 
Joined: 25 Aug 2011

Re: [WIP] Zeta-Windows

Postby cybermind » Sat Jan 21, 2017 11:52 am

Wow, haven't noticed this until now. I've once developed a GUI widget system for ZDoom - libZDGUI, which was built by the original acc compiler, therefore its programming was kinda difficult and tricky (for example, I've implemented a dynamic string system, to get around limitations of ZDoom strings). It has modular structure to ease the addition of new widget types. I have developed only a small tech demo to show its capabilities, because I was really frustrated by limitations of ZDoom acc.

And yes, because of ZScript addition to ZDoom, I've decided to move it on GDCC as well, to use it in my new project. Well, it would be nice to have 2 GUI libraries for ZDoom, heh.
User avatar
cybermind
 
Joined: 03 Jan 2011

Re: [WIP] Zeta-Windows

Postby Nero » Sun Jan 22, 2017 2:30 pm

Hey, cybermind, I've checked out libZDGUI before, it's very neat; in fact it was one library I looked at when I first started experimenting with ACS GUI systems. Your system was full of advanced features I didn't need so it was cool to see what could be done, but I just needed basic mouse code at the time. My mouse system, I call it UMC now (Universal Mouse Control), is basically it's own thing now, but it began using a base Isle made (TY Isle, I finally understand what that wizardry is doing).

The fact that you made it work in ACS is mindblowing; I can't envision doing it without structures and pointers, or it'd be an unmanageable mess. Another issue is assigning HUDMessage IDs without overwriting incorrectly; that was goal #1 of Z-Windows. I can see it being done with ACS, but it'd be a mess; in Z-Windows you never touch a HUDMessage ID. And as for string management, again, you did it in ACS? :shock: My mind can't comprehend it, I want my c-strings.

I'm interested to see your system when you get it ported to GDCC :D
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby SanyaWaffles » Wed Jan 25, 2017 7:59 pm

Ice Sanya wants this.

Do you need any help making it/testing it?
User avatar
SanyaWaffles
Ice Bear Charges Extra
 
Joined: 25 Apr 2013
Location: Eastern Ohio

Re: [WIP] Zeta-Windows

Postby Nero » Thu Feb 23, 2017 3:42 am

HUGE UPDATE!
    23-2-2017
  • Ahead of schedule, buttons are fully functional; still a few things left but they aren't just pretty eye candy now. It's a matter of giving a button an action now. This took a full rewrite as part of the overhaul.
  • HUDMessage functionality is complete; Z-Window's doesn't actually let you use any of the various types, instead typing a string onto the screen or changes to alpha values are handled in the context of the main system loop.
  • Object handling has received a major overhaul, a switch from arrays to linked lists; Z-Windows easily lent itself to this as it was already based around lists of stuff. This also means everything is a pointer now. The upside is that elements are very easy to search for and manipulate.
  • The internal HUDMessage ID system has received work too! While globally redrawing a window's elements is what is usually called for, order of calls no longer matter, and it is perfectly possible to redraw a single element now.
  • The divider lines have been expanded into a generic graphic struct; this is your goto for health bars, mugshots, etc.

New demo video is up in the OP! Thank you everyone for your attention and patience!
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Nash » Thu Feb 23, 2017 3:57 am

Do you plan to move this to ZScript? The built-in menu system is now fully scriptable.
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

Re: [WIP] Zeta-Windows

Postby Nero » Thu Feb 23, 2017 8:43 pm

I've been looking at ZScript, personally quite lost on it at the moment, but I'm wondering if it could be used to push the inputs to Z-Windows, which would make enforcing the left/right mouse buttons actually possible since I could drop GetPlayerInput. I could see accelerator keys being a possibility too (maybe tabbing too, but I'd have to devise a tab order system). Also I'm unsure if Z-Windows could use ZScript to become multiplayer compatible without a full rewrite; I'm also a bit fuzzy on script execution in net games anyway.

I do plan to play around with ZScript's menu scripting, but for the meantime a full port of Z-Windows to ZScript isn't on the books.


Spoiler: "What would make me move to ZScript right now:"
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows

Postby Nero » Sat Mar 04, 2017 5:46 pm

Z-Windows Alpha is now available!

I'm currently beginning to put Z-Windows to actual use as the basic HUD functionality is complete, so this has required finally getting the code up on GitHub to keep the continually changing source synced between projects. And now is as good a time as any to release the Z-Windows Pre-1.0 Alpha to the community!

Z-Windows Pre-1.0 Alpha Disclaimer:
Z-Windows is still in development and will change and will break your code as things are updated. There is also no guarantee of any kind that using this code won't cause your computer to halt and catch fire; please keep a fire extinguisher handy. Finally there is no guarantee that you will not spontaneously burst into flame with frustration as the code could/will benefit from some readability cleanup.


Getting Started with Z-Windows:
The 4 basic steps are listed in the OP: download the template, setup the template, read the documentation, download the Z-Windows source.

Please refer to "zWin_example.c" for an example implementation (the source to the demo windows). There are quite a few "user" settings available, you will find them in "zusr_defs.h" (global defaults) and "zusr_lang.h" (multilingual settings). You will find function documentation (use, arg list, etc.) with each function.

The only Z-Windows header you ever ever ever include is "zWin.h"

Any questions, comments, concerns, suggestions? Please ask, reply, discuss, and suggest away!!
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Re: [WIP] Zeta-Windows Alpha

Postby Nero » Sun Oct 01, 2017 11:17 pm



No windows right now, but mouse control with the flip of a switch!
User avatar
Nero
Royal Boredom....Why can't I do this in Windows?
 
Joined: 06 Sep 2006
Location: Middle of Nowheresville Il.

Previous

Return to Software and Ports

Who is online

Users browsing this forum: No registered users and 1 guest