Thursday, February 2, 2012
Change in Direction III
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
Saturday, November 12, 2011
Change in Direction
Monday, November 7, 2011
EQClassic - Source Organization
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
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
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.