News: Z-Net 3 re-re-write...

Friday, July 12, 2013

Since my last post I made some progress on Z-Net 3. It was going quite well and was functional, though unrefined. But I got to a point were I was having trouble figuring out something, and when looking into how others get around the issue I learned of a new (to me) GUI class library. I've been using Win32++, which is a partial clone of MFC just with no licensing BS. But it often proves insufficient leaving me needing to rely on raw WinAPI calls. Such cases slow down and complicate development more then it needs. Without realizing it, I've been needing to find a new class library for awhile. And Qt is that library!

After examining its licensing hurdles, ease of use, and capabilities for a few days I concluded I needed to use it. Even if it meant starting the Z-Net 3 code from scratch yet again. There are to many pro's, and very few con's (if any other then wasting my time on previous work). In my few days of examinations of Qt, I focused on replicating certain aspects of ZN3 in disposable test apps to see if Qt could do what I want, and usually just how easily it could. It met all my requirements except one. That being able to natively access and change the non-client area of frame windows. Thankfully I've done that work already with non-Qt code, and indications seem to point to being able to port my code to work with Qt. So I'll mess with that later, and move forward for now.

At this time the new Z-Net 3, that's now coded in Qt, is maybe 75% of the way back to were it was. Development goes faster when I can use my previous discarded work as a guideline. Though I have made improvements on even that. Whats still lacking is opening of addon options windows (easy), and anything to do with initiating a netplay game itself. These were working in the non-Qt version of ZN3, but I just haven't worked on them yet. Netplay initiation revolves around the output area of the message windows. And I need to rewrite the output code completely. Part of what caused me to find Qt is complexity's in the text output code, and even then I was realizing I needed to completely rewrite what I had. So I've been putting this part off as long as I could.

To explain, netplay initiation revolves around links. With Z-Net I you had buttons to click to do everything. Such a setup isn't very intuitive anymore, and is something I badly wanted to get away from. It's a setup strait from 1995 along with everything else zbattle. Some of those button functions will be located in the Toolbar. But some as links in the chat output area. Links similar to a webpage link in a browser. In the non-Qt Z-Net 3 I got links working, but they were messy and there were limitations. In addition to links, the output area needs to support the display of images. In part to have this client more truly step up as a normal feeling chat client with smileys and other such text->image conversions. But it will also help in other planned ways I won't go into right now. But I can at least say that I intend for Z-Net 3 to be much more visually appealing and interactive than other projects that came before.

In fact, I'll post a screenshot of it right now to demonstrate. But keep in mind, a lot of the UI has been customized just to know that I can and that's it. I plan to do real color and image related layout design as a later step, hopefully involving someone who's better at artwork then myself. However I will say that I do intend for the (default?) color scheme to be darker oriented, at least similar to what I have now.


xZabuzax said...

The GUI looks pretty awesome imho, keep up the good work my man.

Post a Comment