Thursday, February 2, 2012

Change in Direction III

Since the middle of November, I have been dedicating seventy to eighty hours per week getting my company up off of the ground and I am now taking my foot off of the accelerator a bit. I am transitioning into a forty to fifty hour work week, which leaves twenty or so hours per week for EQClassic.

My work left off with pets, but my return will be focused around aiding Harakiri with a side project that does not yield source revisions. This side project requires anywhere between a four to eight week commitment, so it may be another month or two until the revision log heats up again.

Tuesday, January 10, 2012

Change in Direction II

My estimation of a six to eight week removal from personal projects was a bit too conservative. Today marks the eighth week from my announcement and I believe I have another four to six weeks to go until I may safely invest time into other projects.

Saturday, November 12, 2011

Change in Direction

Myself and a few others are in the process of starting a business and a couple of those participating are leaving their current jobs. It is imperative that we do not fail, thus, to ensure that we hit the ground running, I am removing myself from all other projects for the next six to eight weeks.

Monday, November 7, 2011

EQClassic - Source Organization

Shortly after making the appropriate changes for spawning our new pets, I have decided to dedicate some time (five to seven days) to clean up and reorganize our source. A majority of the source is poorly organized and I cannot stand to look at it anymore.

Tuesday, November 1, 2011

EQClassic - Spell System

Roughly three weeks ago, I resumed my work on the spell system. I got distracted for seven days or so when I noticed bards were not functioning correctly, but my recent efforts have been focused around refactoring and finalizing the spell system.

The spell system is massive and I am confident that it will beat the size of any other system in the source (including NPC AI) 2:1 or more. The time sink in this area is sickening, but I am optimistic that spells will see their completion before the middle of December. The refactoring of the existing system is pretty much done (I occasionally come across something else that needs to be rewritten), so I have been free to move onto finishing our preliminary implementations of spell effects.

I am currently working on summoned pets and this is an area that will require some serious time. Tazadar started the work for pets back in 2009, but the current implementation is far from complete. Pets have special combat rules, special abilities and special attributes; all of which need to be thoroughly researched. Fortunately, I have invested serious time into a necromancer in the past, so I already posses an intimate understanding of pets. Although I am concerned about implementing pets correctly, I am not concerned about balancing them at this time. Balancing will come much later when the entire spell and combat systems are complete, so that we can look at the damage, mitigation and avoidance tables of all the entities in the game.

After pets, we have a handful of unimplemented spell types, but they are pretty trivial to implement, such as silence, destroy and translocation anchor. The only other significant time sink with spell effects remaining are illusions. Illusions themselves are pretty strait forward, but my concerns lie in temporary faction adjustments and armor textures. In fact, my favorite bug was the way armor textures were saved between illusions and I will replicate it. Basically, one could put on armor that looked great but would not be worn due to its less than desirable stats, chalk up a monster illusion, put their real armor back on, remove the illusion and they would come out donning the nice looking gear but possessing the stats from their current equipment.

Anyway, once the spell system sees its completion, I will finally step back into the combat system and ultimately arrive back to where it all started for me--NPC AI. This work will probably keep me busy through February.

Friday, October 7, 2011

EQClassic - Client Synchronization III

I wrapped up client HP, mana, stamina (the yellow bar) and attribute (AC, ATK, STR - CHA, saves and weight) synchronization tonight. I am quite happy with the results and extremely satisfied with the low time impact (I thought this work was going to be a one hundred or more hour investment). I was able to breeze through this work quickly due to Harakiri's aid in formula discovery.

Just looking back on how things worked is hilarious. The previous approach was to simply force the server's levels of HP, mana and stamina onto the client with absolutely no regard for how the client natively functions. In fact, mana regeneration was roughly ten times faster than it should have been! The only EQEmu-based server I have ever played on is Shards of Dalaya, which also--at the time--forced server levels onto the client**, so it is probably safe to assume that current EQEmu protocol is to do the same.

This work emphasized the singlemost frustrating aspect of this project. It is difficult for the average player to distinguish a functional server (one that works, but is not accurate) from a great server, because all of the things they are concerned about are handled in the client and database. They do not care that they have too much mitigation AC, that their DoTs are generating too little hate, that their nukes are not resisted as often as they should be or that their client side penalties are not enforced on the server; all that they care about are the things they can see.

In any case, I will be resuming my work on finishing spell types and then I will transition into revamping my previous attempt at the combat system.

**How could I tell? Watch the HP regeneration in the inventory window. You will see the client fight the server for the correct amount of current HP, as the server is sending the client HP updates. The client should not be changing its current HP more than once every six seconds.

Friday, September 30, 2011

EQClassic - Client Synchronization II

The HP synchronization is just about finished and I am pretty satisfied with the results. I am also just about finished with synchronizing the client's mana with the server, but I am hoping to find a new client routine to update its mana by some given amount instead of sending the client updates such as, "Hey, your new amount of mana is XXXX." The client refuses to update its own mana when a spell is complete, so it unfortunately seems to rely on the server for hard number updates.

Beyond these two attributes, I will also be looking into synchronizing AC, ATK, STR through CHA, saves and weight. I am not at all excited about the latter because weight has numerous effects within the client, such as affecting AGI (when overweight) and a monk's AC. This project may end up taking quite some time, but I am hoping to return to finish the remaining spell types soon.