News: Z-Net 3 is back on track

Wednesday, July 17, 2013

Today I finished up work on getting the Qt code version of ZN3 back to where I stopped off at on the old scrapped version. As far as I can tell right now, everything I accomplished in that version has been covered again. Sadly, along the way I found some design holes that stood out that I still didn't fix. Most revolving around the addon's though. At the moment I'm still using the non-Qt addons. I plan to rewrite them in Qt, but my hope is to also support addons written in other languages.

A goal of ZN3 is to allow people other then me to create addons for use with the program. My primary focus right now is on addons that add netplay launching support for emus and games, but I hope to facilitate others later on in the design of the program.

Now that ZN3 is back to were it was, next I can focus on things such as refining the addons to remove those holes in the design. That could be what I work on next. But thee are several things I need to fix up. Like the avatar support. In both versions of ZN3, avatar support is incomplete. It will display one if you have it, but won't download it if you don't. I've decided to mimic the KVirc AVATAR protocol. Theres no IRC standard for such things, so you kind of have to pick and choose your own. At the moment it's setup to match that AVATAR protocol exactly, but I may modify it. I think I remember finding it lacking something. Anyway, the protocol allows you to either DCC an avatar from a user, or users can specify a URL. I might not support the DCC method at all. I'm not certain yet. At the moment I have no size restrictions set, for dimensions or file size. But I will later. For now though it's nice to see that I can easily resize the dimensions of a pic down. 64x64 pixels is what I'm going with for now, but should be able to be easily adjusted later if needed. As a bonus, I got animated gif avatars working too! Well, at least I can support them. I may remove it later before release. Depends if I feel people would abuse such feature to much or not.

Speaking of animated gifs. I got them working in the chat buffer too! I don't like the code used to do it to well, but it works, and performance hits are minimal, or zero if you minimize the window. Such support would mostly be for animated emoticons. I don't expect them to flood the chat buffer as much as they do for my stress testing. But I should plan for over use as much as possible. The whole emoticon feature is something I've been reluctant to add. Those and colors I've notice people tend to over use when they have access to them. They think their being cool or funny, and instead are just being annoying. Doing things like posting a big wall of emotes. Heck, some of you may have seen me use my rainbow text script. That's a perfect example of how things could be annoying. I'll probably work into the design to allow channel ops/owners to disable use of things like these if they want. And beyond that, they can always have bots that monitor text. I intend for individual rooms to have their own rules that are enforced by their own mods. Not me. Me and any Z-Net mods would just be covering rooms for addons I make, and even then I may try to pass off responsibility to others.

Well anyway. Since ZN3 is back to were it was, that means it's able to launch netplay games again! But with my recoding I've realized how much refinement of the procedure and protocol I still need to do. During design I find myself asking myself questions a lot. Like "Could this be done better?". Sometimes the rough idea I have vaguely outlined in my head doesn't quite convert as well to the quality I thought it would, right away. There may be aspects I just couldn't visualize until I'm seeing things in front of me.

I don't think there's going to be a lot of additions and advancement for the project in the near future. Instead I'll probably be working on refining and redesigning things until I'm happy.

Below is a updated pic to show where the project is at now. It's not to much different from the last one, visually. So I made certain to show some other bits. Like the Select a Game menu button in action That's the blue button in the message window. The red one pops up a similar list for the options windows, like shown at the bottom. (It's ugly, I know.). All the megamans are a animated gif looping. While in a still pic you can't see animations, it's intended to show off the feature. Compared to the last pic, the numbers next to Emu names in the list are new. They represent how many users are in that room. The blue and red buttons in that window are for adding/deleting friends FYI. And I'm sure someones gong to wonder about it sooner or later. The thing that looks like an dummy advertizement at the bottom of that window, is just that. It's a development place holder for an advertizement. The project and website has costs, and this should help cover them where the website ads alone have failed.

Before moving on much more, I may take a break. I've been grinding away pretty hard at this, so a break might do me some good. I may even try fixing the protocol signing problems with ZNI again.

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.