History: Z-Net 0.10 - 1.41 (2003-2004)

Friday, August 19, 2011

Z-Net is my first foray into coding/scripting, other then HTML for a couple websites. I started developing it in December of 2003. It's written in the mIRC scripting language, so it requires mIRC to use it. I was learning scripting as I was making it, and as such it had a lot of bugs in it, and a generally sloppy or not well thought out design.

The aim of the project was to make finding and launching IP-to-IP netplay games with the SNES emulator ZSNES easier, and to fill the void left by the comparable program zbattle after it's server was down for many months with little to no sign of returning. I felt zbattle lacked a lot, such as features and community, and strove to not only make it as good, but make it better and give all those players without a way to play quick easy games a new home. Sadly for the project, the wind got knocked out of it's sails by the return of the zbattle servers after I was mostly done with it in early 2004. Due to mostly being done, and the advancements I made in Z-Net over zbattle, I decided to continue development.

Late in February 2004 Z-Net had it's first official release as "Z-Net 1.0". The project gained several loyal users, but failed to grab more then 25% of the type of users interested in this type of project. In part due to the strange design of the Z-Net interface, bugs, slightly complicated installation, peoples strange misguided aversion to mIRC, and stability/relative ease of use of zbattle. I continued to try and refine the complexity and messiness of the interface more, as well as offer some simpler installation methods, while also adding more features. Eventually I changed the core of the code around a bit, and found users seemed to prefer a new "Quick Launch" option I introduced, that while quick and easy, lacked features and bypassed the bulk of the interface completely. I then came to realize my failure of the project and it's grim future. Looking back, I'd have to say my blunder was that I designed Z-Net to be easy for me to use, rather then looking at it from other peoples view and designing it for them. Combined with just my inexperience with designing such projects when I started. Z-Net's script grew to large to just not use what I've already written, so I turned a blind eye to any remaining issues with it's design and kept plowing forward thinking adding more bells and whistles will solve everything. I can now easily say it didn't, and by v1.41 I started accepting some of the issues.

I started working on several other side projects, mainly Super Mario Kart hacks, Z-Band, and more notably a complete redesign of Z-Net itself. The complete redesign was something I kept quite about, and in part due to that, I ended up losing interest in the Z-Net project completely. The other part being that it became glaringly apparent that Z-Net's "open source" release format as it were, was very troubling in terms of theft and users being able to tinker with the script and possibly impair theirs and other users ability to play. The mIRC scripting format offers no form of compiled binary, so Z-Net being left as being developed as a mIRC script started seeming like a serious issue. I realized that it would be a great help to learn more C++ to continue the project, and started doing so with plans to make a complete "stand alone" client that offered all features of the mIRC script and chat interface similar to mIRC itself, but as a compiled binary not involving mIRC at all.

Learning went fast for me, but not fast enough. My plans exceeded my experience, and despite taking shortcuts using source I found available on the internet (of which I think was licensed), I was just in over my head.

Convinced that a complete rewrite, and one in C++ was the only viable option to continue the project, the project hit a dead end and I lost interest completely.


Downloads: (this outdated version is given only for posterity. Its not recommended to be used, and instead if you have to use the 2.0 version)

Z-Net 1.41

Screenshots:

(I don't have any full sized screenshots on hand, but their un-needed. The dialog window pictured in these skin screenshots was basicly Z-Net itself, with a standard mIRC window in the background.)


Details: EQC Launchpad

Thursday, August 18, 2011

EQC Launchpad is a project I started in 2009, while waiting for the long needed return to Classic Era EverQuest that the EQClassic project hoped to produce. Excited and impatient, I wanted to help like many others. Though unlike many others in that community, I had at least some skills towards doing so, even if it was just some minor C++ ability. Due to my low level of skill, I saw that I would easily get overwhelmed at the scope of the server project had I offered and accepted an invite to join.

Still I wanted to contribute, and after tinkering around with my old EQTrilogy discs, I ran the patcher. Something that wouldn't be needed once the EQClassic project was finished, as for one if it did work, it would just update the classic EQ files to modern expansions, and even if it could be pointed elsewhere, the files it would download would be illegal to distribute. The patcher, while probably easily forgettable by most, was still part of the "Classic EQ" experience. I then realized I could create a new one that looks exactly like it, seemingly functions exactly the same, and can have it just download a handful of legal and very needed files that will help users install classic EQ and join the server more easily.

An example file being the little "eqhost.txt" file. Its a very important file for any EQ server emulators, as without one pointing to the emulators server, a user can't play there. I don't understand how editing/creating a new eqhost file could be difficult, but saw people often get intimidated by having to dig into their EQ directory to change something like that, or the eqclient.ini. Also even though an update to the client would never be released, server side things get changed all the time so patch news will still happen. So a new eqnews.txt file is added to the list. While arguably not classic, EQWindows was often used by people during the classic era, me one of them, and as modern MMOs all now adopt playing in a window and being able to alt tab is a necessity. That's another 3 files added to the list. These 5 files were enough to me, to decide making the program was worth it.

Now the question was, was my skill up to it? I figured I could learn more as I go and if I got stuck at some point and had to give up, oh well. It's just a hobby and I'll have fun either way. I started work right away, and wow. While I still didn't consider my skills very good, I had underestimated how much I've learned from past C++ projects, as coding the project went relatively easy. I got the program working, connecting to a remote server, downloading a file/command list, checking its local files against that list to see if it need to download any new files, and more. I even added extra unplanned features like an editor window interface for the eqclient.ini, a file scan that checks all the important game client files for corruption and patches them from the users EQTrilogy disc if needed. An IRC chat window, and Login/World server status indicators. As its still unreleased, there are a couple other features I've added but won't go into as they may not be in the final version.

The program shaped up quite well, and even became adopted/endorsed by the EQClassic team of which I eventually joined. Shortly after that though, advancement of my project slowed as there wasn't much left to do on it, and EQClassic itself still had no ETA in sight. I've worked on it very little since the first couple months when I hammered out the bulk of the program. It has little use in the current testing phase, but will have more use at a later time.

Look forward to this and the EQClassic project in the coming years!

Screenshots:




Details: Super Mario Kart - Z-Net Special 1 - 3 (2004)

Wednesday, August 17, 2011

Once Z-Net 1.0 begone getting more stable, I started trying more to attract more users to Z-Net, and encourage them to stick around and be part of the community. One method was making some custom hacks for my favorite netplay game, Super Mario Kart. These hacks were done in part using a track editor (TrackDes I believe) and some of the unused hex based ROM hacking knowledge I learned years before. These hack only changed the battle mode courses, as those were what I personally found more fun.

Z-Net Special 1:

This hack was very minor. The only change I made was adding the jump bumpers around every single inner wall. This made the game a lot more challenging as red shells became more balanced.

Z-Net Special 2:

The courses for this one were more custom. They consisted mostly of a giant square arena, with one or 2 types of tiles repeated over the entire arena. One course had item tiles covering the entire floor, making it almost a race to just get 3 red shells. Another I believe had a checkerboard pattern of item blocks and speed boosts, producing a similar match but much faster. Another has oil spills everywhere, etc.

Z-Net Special 3:

For the 3rd hack I spent more time designing well thought out courses. Sadly due to the limits of the track editor, I had to make compromises in their design, mostly due to not being able to move item tiles from there default locations. With the Water Park and Lava Castle levels, I designed the courses with areas that weren't meant to be accessed. But item tiles still existed in these areas, and if you use all the tiles on the rest of the course in a longer duel, you would be stuck as those tiles wouldn't re-spawn until all tiles were used. So with the Lava Castle, I had to add small pathways near jumps so you could reach these tiles.

I hated the compromises I made to my 3rd hack, and to this day I'm still tempted to retry the courses with a modern track editor and see if I could design them to the original vision. But its unlikely, as few people played and probably will ever play these. But still possible. I had other ideas for some super mario kart hacks, though my hacking skill wasn't up to the challenge. If it ever is some day, I just might revamp these hacks or possibly make a new one.

UPDATE:

Since I originally posted this, I have in fact revisited my 3rd hack using EpicEdit. It now has all 4 battle courses updated with more proper item block placements, and somewhat better AI after being placed back on the track after going out of bounds or in lava/water.

Downloads:

Z-Net Special 1
Z-Net Special 2
Z-Net Special 3

Screenshots and Images:

Z-Net Special 1

Z-Net Special 2

Z-Net Special 3

Z-Net Special 3 course 1 overview

Z-Net Special 3 course 2 overview

Z-Net Special 3 course 3 overview

Z-Net Special 3 course 4 overview

Details: Action Replay DOL Extracter (2005)

Tuesday, August 16, 2011

In my time away from the Z-Net project, I frequented channels and forums of the GameCube scene. It's at this time that I made this program. It's simple, but not overly useful.

Action Replays for GameCube came on a disc like game, yet the entire 1.4 gigabytes of the disc wasn't needed. The actual size of the Action Replay code was just a few megabytes. This program simply located that binary, extracted it and saved it as a .dol file to be use the one of sever method to run such a file on your GameCube.

Downloads:

Action Replay DOL Extracter

Introduction

Monday, August 15, 2011

Over the years I've developed various things that I've released on the internet. I decided to make this blog as a portal for those things, as every other free web server I've ever used ended up being unreliable.

At the moment I don't have anything I'm actively working on, but that could change at anytime. The closest project I have to being active is EQC Launchpad, but that's mostly finished, and any further development of that project is on hold until the EQC project itself has advanced more.

I'll post links and details about my past projects over time, but for now I'll sum up what I've done.

I started with mIRC scripting creating a promising, yet failing to grab much interest, netplay portal for use with the Super Nintendo emulator ZSNES. As well as probably a handful of other, much smaller/less useful scripts. During/after that project I made a few ROM hacks for Super Mario Kart, to help draw some users.

Several years later I decided to give it another shot learning much from my previous attempt. I finished up the script of a complete rewrite, creating a much more stable and versatile script. Sadly it seemed that such a script/program just had it's limits in terms of appeal, and that combined with a couple other similar "rival" projects being developed, I felt I should stop it's development before I got anymore involved.

Some time after that, I was following the EQClassic project, and due to my excitement I decided to work on a complete replacement for the patcher for that game. That project is currently privately released only.

There have been other, generally unreleased projects I've had over the course of those years, and I'll list those here in time as well, though probably only with details and screenshots.

For now check out these website's if your interested in any of these topics.

EQClassic
EQ Emulator
ProjectEQ
ZSNES
zbattle.net