EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=590)
-   -   Steam RoF Development Tracking (https://www.eqemulator.org/forums/showthread.php?t=36104)

Drajor 02-09-2013 11:04 AM

There is a new skill ID listed in skillcaps.txt. Skill 76.
Also 'BERSERKING' (72) is not listed.

liquest 02-10-2013 07:55 PM

Haha, so i was checking out the new armor graphics (heros Forge) And i went to /bow to a player. Meet Garorn the Super woodelf.

https://sphotos-a.xx.fbcdn.net/hphot...11978362_o.jpg

prickle 02-11-2013 12:38 AM

did the Guild Lobby ever get merged back into main?

I ask because my RoF clients are still unable to enter the Guild Lobby. I made sure it's not my client by logging into PEQ's server and verifying my ability to get into the Guild Lobby with my RoF client. I as able to.

On my server, I cannot enter with my RoF client, but I can with my UF client. So, I thought I'd ask if the necessary bits have been added back into main, before i start down my rabbit hole ...

sorvani 02-11-2013 01:27 AM

GL in RoF is a new zone actually. On PEQ it is a separate instance and cavedude has implemented a script to bounce you to the right version based on your client.

Derision 02-11-2013 03:50 PM

Quote:

Originally Posted by Drajor (Post 217878)
BUG:
Command - #unscribespells

Spells stay in RoF spell book, but can not be mem'd. After relogging the spell book is empty. On UF the spell book is wiped immediately. Looks like OP_DeleteSpell may have changed a little.

Quote:

Originally Posted by Zia (Post 217879)
2. There are no sounds while casting spells. There are sounds when they are landing though.

These two are fixed in the latest Rev. First was an incorrect opcode and the second was a changed struct. Thanks to both of you for the bug reports.

Drajor 02-11-2013 10:13 PM

Quote:

Originally Posted by Derision (Post 218006)
These two are fixed in the latest Rev. First was an incorrect opcode and the second was a changed struct. Thanks to both of you for the bug reports.

Winner! :D Cheers heh

trevius 02-13-2013 07:47 AM

As now noted at the top of the first post of this thread in big red letters, Steam has updated the RoF download to the Jan 16th patch from Live, so it is no longer compatible with EQEmu.

It was a known possibility that Steam might start doing semi-regular updates to the client downloads. Hopefully if they continue, it is at least automated on their end (which I suspect it is), which should mean the dates it gets updated would be predictable. The current interval was about 2 months (RoF was added to Steam on 12-13-2012, and the earliest report of it being updated was on 02-11-2013). If the updates are every 60 days (which lines up with what we know so far), that would put the next Steam download update at about 04-12-2013. If it happens then, that should confirm their schedule, which should make it easier to plan for and make people aware of pending updates.

The EQEmu Dev Team is already discussing our options to make a solution for regular updates. The good thing is they are less frequent and hopefully more predictable than Live patches. The bad thing is it will require regular upkeep from the Dev Team to keep EQEmu working with Steam. As far as I know, Steam is still our best option for an easily and legally attainable client so I think it is worth the effort if we can streamline it.

I can get opcodes updated from patches fairly quickly now. And the ShowEQ team normally figures out the position update struct changes pretty quickly (which happen every patch), so those are 2 pretty big parts of making a client compatible that can be done quickly and easily. There will still be struct changes required here and there and those are not predictable and will have to be worked as they are found. At least by keeping up with them regularly, we shouldn't run into too many major changes for most of the updates which should limit the amount of work required for getting a new client fully compatible. The difference in time between the UF client and the RoF client was pretty long (over 2 years), which is why it is taking so long to get the RoF client fully compatible. By keeping up with the clients regularly, it will mean just a little work is required at a time and the new client will be complete unless there was a major overhaul of some system that requires major changes on our end (which shouldn't be too frequent).

My main concern is how to deal with having multiple versions of the same expansion all compatible with EQEmu. We can easily enough just copy the patch files in the source and make adjustments to the copies. But, that leaves us with potentially dozens of different patches to deal with eventually. This isn't really a problem until we try to implement a new system that we want to give all clients support for. For example, if we eventually add in Shared Tasks or the Expedition system, we would not only have to add structs, opcodes, encodes and decodes to Titanium, SoF, SoD, UF and possibly RoF, but we might also have to add them to 15 (made up number) other version's patch files as well. It would mean the same thing for any packet related fixes that get put in. This is nearly impossible to manage, and would probably lead to new stuff and fixes only being implemented into the latest client, which certainly isn't ideal if it can be avoided.

Another problem is that in order to support all clients properly, the dev team has to actually have all clients and test each one if the change might break something with certain clients. This is bad enough now having 5 or more installs at ~10GBs each, but at 20 installs that is just insane to even consider.

Since each client potentially has packet struct changes for packets that aren't already encoded/decoded, the patch files are just going to keep getting bigger and bigger even if there are only minor differences between the current client and the version just before it. One idea I have had so far (but not really sure how to implement) would be to have mini-patch files that only include the structs and encodes/decodes that differ from the client directly previous to it. So, if only the position updates and spawn struct gets changed, then those are the only structs and encodes/decodes we would need to put in there. If this is possible, it might resolve the issue with having to update multiple patch files anytime we implement a new system or put in a packet-related fix. We would just add the update to the main patch files for the expansion and the mini-patch files would inherit the update without needing to be touched.

Another possible (but less ideal) solution would be to only support something like 2 new client versions at a time. So, every 60 days (assuming that is the schedule for Steam updates), we would delete the client from 2 updates ago and add the latest one in its place. This way, people who already have the current client will not run into issues at all until the next update, and the latest/new version will be added and compatible ASAP so people getting the new download will be able to use it soon after the update happens. This solution would work, but is extra headache for players. It would mean players would have to download a new client at least every 60 days, and copy over their character files, maps, update their UI, etc. each time.

We could also possibly consider coding the packets that get sent out to be sent in the format used by the latest clients and then adding encodes to the older clients and removing them from the newer ones. This might make it easier to feed through the newer patch files, and would allow us to send all of the correct data from the server instead of having to fake it or put in hacks on the encodes and decodes for newer clients. It would be a pretty good amount of work and testing through. It would be good to do, but I am not sure that it would really help with the issue of having multiple patch versions to deal with.

No matter what the solution is; if we decide to start keeping up with the Steam updates, it would also mean all servers that want to allow the newer clients would have to update after each new client is added. Otherwise players running the latest client won't be able to play there, which would cause problems for all people new to EQEmu at that time.

Some of the goals for a solution are:
1. Minimal time investment required for devs to make new clients fully compatible.
2. Minimal work required to add new systems and packet-related fixes to previous clients.
3. Ability to continue supporting previous clients within reason.
4. Least amount of impact on Players.
5. Simplifying/automating the dev update process where possible.

Anyone that has ideas and is knowledgeable of the workings of the EQEmu patch files, feel free to chime in!

trevius 02-13-2013 07:58 AM

BTW, I updated my RoF Test Server with the opcodes from EQExtractor2 for for the Jan 16th client and updated the position updates in the structs to match what ShowEQ has for the that client as well. I did not create it as new patch files yet (I just edited the RoF ones), so the Dec 10 2012 doesn't currently work on the server, but the Jan 16 2013 one does.

The good news is that I got in first try. The bad news is there are probably some opcode and struct issues as many things aren't functioning properly. Though, I imagine it won't be hard at all to get the client up to speed with our Dec 10 2012 RoF client.

lerxst2112 02-13-2013 07:03 PM

There was another live patch today. I suppose we can see how long it will take to get to Steam.

[Wed Feb 13 14:46:16 2013]00000:Starting EverQuest (Built Feb 11 2013 19:17:05)

wolfwalkereci 02-13-2013 08:24 PM

Whatever you guys need to do to stay sane. No one can argue with that.
Myself I look forward to the day eqemu removes all support for titanium.
I hate that client with a passion.

blackdragonsdg 02-13-2013 10:56 PM

Quote:

Originally Posted by lerxst2112 (Post 218162)
There was another live patch today. I suppose we can see how long it will take to get to Steam.

[Wed Feb 13 14:46:16 2013]00000:Starting EverQuest (Built Feb 11 2013 19:17:05)

Well your wait is over. I just downloaded Everquest F2P off Steam and it matches current live again.

lerxst2112 02-14-2013 02:20 AM

There's another emergency patch tomorrow. If it changes the exe we can see if that shows up immediately as well.

trevius 02-14-2013 07:19 AM

This is a bit depressing :P

I am not really sure what to do about this. At this point, we might as well be chasing Live if they keep this up, which is a headache for multiple reasons. Hopefully we can come up with a good solution for this. The best way may be to see if we can simplify the update process as much as possible. Otherwise, we will have to consider what alternatives there are or if it is even worth working on new clients. I still think it is worthwhile to get the RoF client completed, but we will need to figure out what to do about these update issues first.

rhyotte 02-14-2013 05:15 PM

We can hope this is the initial "patch up" sequence for a new client where SoE is bringing it up to a certain stability level.

liquest 02-14-2013 05:41 PM

Quote:

Originally Posted by trevius (Post 218192)
This is a bit depressing :P

I am not really sure what to do about this. At this point, we might as well be chasing Live if they keep this up, which is a headache for multiple reasons. Hopefully we can come up with a good solution for this. The best way may be to see if we can simplify the update process as much as possible. Otherwise, we will have to consider what alternatives there are or if it is even worth working on new clients. I still think it is worthwhile to get the RoF client completed, but we will need to figure out what to do about these update issues first.

Do you think it would be best for people to grab the RoF FTP client while they still can?


All times are GMT -4. The time now is 11:18 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.