EZ Server

General Category => General Discussion => Topic started by: Camric on December 27, 2012, 08:51:01 am



Title: Instances Rollover
Post by: Camric on December 27, 2012, 08:51:01 am
I have notice lately that often times after creating a t6 instance or after sever reboot I lose the ability to access an instance by other guild players.   I am trying to avoid logging in 40 characters to ensure that when something drops that the appropriate character are in the instance to loot it. 

Is there anything that can be done to ensure instance persists longer?  I am more than happy with the 3 day guild instances, but rarely does the instance last longer than a few hours before losing access to it.

Any suggestions?



Title: Re: Instances Rollover
Post by: Chunka on December 27, 2012, 11:56:31 am
Happens in a lot of places.....have had the same issue in PoDrags, LDON (all levels) and a guildie had it with Qvic.


Title: Re: Instances Rollover
Post by: Fugitive on December 27, 2012, 11:59:22 am
Akka has new instance code, just need to get him and Hunter together


Title: Re: Instances Rollover
Post by: Fanon_Emarr on December 27, 2012, 12:21:57 pm
I don't know what it is about Tacvi, but it's one of the worst offenders.


Title: Re: Instances Rollover
Post by: Camric on December 27, 2012, 12:30:09 pm
Akka has new instance code, just need to get him and Hunter together

Fugi - do you have a link to the new code on the emu forums?  I'd like to read up on it.


Title: Re: Instances Rollover
Post by: Felony on December 27, 2012, 01:39:32 pm
Only thing new I see from Akkadius is giving Hate some reading material on Perl DBI but that is a possible solution. Unknown what sort of performance gain/hit can be seen until something is written and tested.


Title: Re: Instances Rollover
Post by: Fugitive on December 27, 2012, 04:47:24 pm
Just a quick update for everyone...

I started on this and have the core mechanics built but need to smooth out the edges in terms of
  • Invitation types (Group, Guild, Raid)
  • Breaking down instances
  • Purging old instances
... but other than that it is working far more flexibly and accurately than the current code set. There are two custom tables involved that are very small and will stay very small in comparison the the qglobals table that the instance script is pounding every day constantly.

Here is a little bit of a preview of it:

Leader Perspective:
(http://i.imgur.com/EjrxG.jpg)

Member being invited perpsective:
(http://i.imgur.com/OdssL.png)

Keep in mind this is just core mechanics being constructed, I will iron out any things in between here shortly.

Let me know if you have questions.

Thanks,
~Akkadius


I only have Saturdays to really work on anything for free time. I've already made most of the engine as I had posted.

The thing about this engine is that it is not reliant on binding against a guild, group, or raid. The operation is completely separate from that of what was made before. You could have a Raid sized instance and invite guildies as well as other friends outside of the guild. Guild size instances you could have another person outside of the group enter but you will only be able to allow 6 people total in your expedition if that is the limit.

Hunter I wanted to discuss some details with you, but even when you were online last Saturday I could not get a response from you in /ooc


Title: Re: Instances Rollover
Post by: hateborne on December 27, 2012, 05:42:10 pm
Spent most of the day writing up a new instance setup. Thanks to the info from Akkadius, I've got a lot of the framing work done. My knowledge of cross client communication via quest script is a bit weak. When I hopefully finish this up, I may harass the poor guy for a bit more info or reading material.

Trying to base the bulk of it on a database table over qglobals. I have also limited the calls as much as humanly possible and followed proper prepare/do usage.

Finally, I think it would be safe to say that solo instances should probably go. While I understand that this is a big deal for those just starting, there are plenty of guilds, the newbie guild, groups, and (hopefully) raid instances.


-Hate


Title: Re: Instances Rollover
Post by: Fugitive on December 27, 2012, 06:37:29 pm
Agree with ya Hate on the solo instances. It just eats up to many resources. ( and a group instance isn't much more so /meh )


Title: Re: Instances Rollover
Post by: Fliker on December 27, 2012, 06:59:26 pm
groups for HOH and lower,  Raids for Sky on up, and GI's for all.

just my 2 cp


Title: Re: Instances Rollover
Post by: Hunter on December 27, 2012, 07:18:06 pm
Just a note that recently npcs are having a problem seeing qglobals. For example, when I make a new key, sometimes players have to enter an instance for the npc to refresh what it sees in the qglobals table. Might be safer to use 100% custom tables?



Title: Re: Instances Rollover
Post by: Felony on December 27, 2012, 10:05:25 pm
Dont remove solo instances from the low end crap because it does effect the player that spends the entire double loot farming SLS to sell to us ubers to be able to buy a waypoint.


Title: Re: Instances Rollover
Post by: Griz on December 27, 2012, 10:30:15 pm
Group instances are 5k, they can just buy one of those. If they can't afford 5k, they can go kill 4 mobs in velks.


Title: Re: Instances Rollover
Post by: Natedog on December 27, 2012, 11:10:20 pm
Just a note that recently npcs are having a problem seeing qglobals. For example, when I make a new key, sometimes players have to enter an instance for the npc to refresh what it sees in the qglobals table. Might be safer to use 100% custom tables?




I was using DBI to force find instances   -- not sure how laggy this is though .. lol


Title: Re: Instances Rollover
Post by: Hunter on December 28, 2012, 04:17:26 am
DBI seems to be more reliable than qglobals, for example our Trivia Bot runs off DBI.


Title: Re: Instances Rollover
Post by: Natedog on December 28, 2012, 05:07:51 am
DBI seems to be more reliable than qglobals, for example our Trivia Bot runs off DBI.


I've been using quest gobals to create the instances ... then when I want to find the instance to send a player there I use DBI ... so far seems pretty reliable .. just gotta lag test it with a bunch of boxes loaded lol


Title: Re: Instances Rollover
Post by: Hunter on December 28, 2012, 05:12:39 am
ahh you set the global the normal way, but reading the global via DBI? So we're sort of using both?



Title: Re: Instances Rollover
Post by: Camric on December 28, 2012, 05:28:16 am
Looking at what Akkadius shared, I see a delete function, but is there a clean up procedure or service to remove expired instances from the table?   Keeping the tables clean will ensure the queries are efficient and lessen the need to create indexes.


Title: Re: Instances Rollover
Post by: hateborne on December 28, 2012, 12:32:00 pm
Looking at what Akkadius shared, I see a delete function, but is there a clean up procedure or service to remove expired instances from the table?   Keeping the tables clean will ensure the queries are efficient and lessen the need to create indexes.

I'm working on trying to do just that. I am having issues with the logging on my server stopping for no apparent reason, which is making it harder to test. When I get home, I will continue my faceroll.


-Hate


Title: Re: Instances Rollover
Post by: Hunter on December 28, 2012, 12:52:16 pm
try #logs quest

Can see which line number has errors or warnings while doing a #reloadquest or hailing npc.


Title: Re: Instances Rollover
Post by: hateborne on December 28, 2012, 12:54:33 pm
try #logs quest

Can see which line number has errors or warnings while doing a #reloadquest or hailing npc.

Sexy. I will try that when I get home (~6-7pm EST) and see what I can do.


-Hate


Title: Re: Instances Rollover
Post by: Camric on December 28, 2012, 01:33:10 pm
If you don't mind sharing the code Hate, I'd like to have a look at what you have.



Title: Re: Instances Rollover
Post by: hateborne on December 31, 2012, 11:35:30 am
Probably Camric.

First day in a bit that I have been able to work on it again. Thanks to Hunter's post, making headway on it again.

Not going to promise or "present" anything yet, as it's a bit soon. That being said, looking at group/guild/raid instances. Group instances are essentially the "throwaway" instance. Guild instances last the longest. Raid instance is likely going to be the most commonly used. I'm trying to set the raid instance up to allow the raid in and then (hopefully) allow invites.

Anywho, back to work.


-Hate


Title: Re: Instances Rollover
Post by: Fliker on December 31, 2012, 12:10:54 pm
What's repop on t6?

Raid instance should be close to that imho.


Title: Re: Instances Rollover
Post by: Mattnaik on December 31, 2012, 12:12:09 pm
Group instances are 5k, they can just buy one of those. If they can't afford 5k, they can go kill 4 mobs in velks.

Except you can't create a group instance unless you are in a group. It yells at you when you attempt to create one. A minor inconvenience to log on an alt and invite them to group just to spawn the instance but removing the check if you were in a group would be better IMO.


Title: Re: Instances Rollover
Post by: hateborne on December 31, 2012, 12:42:20 pm
What's repop on t6?

Raid instance should be close to that imho.

Repop time: 3 days.

I was looking at setting 5 days for guild, 24h for raid, and 6-12 for group. Obvious subject to change, but I cannot see anyone outside of a guild actually waiting the 3 days to redo instance. Leaving it up and active I could see for those slowly clearing through, but the two biggest things that I am trying to tackle are instance reliability (a.k.a existing 5 minutes from now...) and efficient instance transitions (invites without reforming).

If there is a maximum number of instances that can be created in the server code, we need to minimize the number created. Having a ton of orphaned raid instances won't help this at all. I am trying to find creative ways to tie these to players over play sessions, but it's slow going. I am trying to avoid having a giant array loop run each time to update/remove members from raid/guild instances as it's going to get sluggish across 30+ waypoint npcs.

Will update more as I have time.


-Hate


Title: Re: Instances Rollover
Post by: Hunter on December 31, 2012, 12:56:20 pm
did this poll work?


yes
no



edit: i swear i clicked cancel on this thread, thus the no poll.


Title: Re: Instances Rollover
Post by: Hunter on December 31, 2012, 07:15:51 pm
fail?


Title: Re: Instances Rollover
Post by: Fugitive on December 31, 2012, 07:34:58 pm
did this poll work?


yes
no



edit: i swear i clicked cancel on this thread, thus the no poll.

no clue what this was..


Title: Re: Instances Rollover
Post by: hateborne on February 05, 2013, 06:27:49 pm
Due to pretty hellish time constraints for the next month or so, I will be unable to continue any form of serious testing. I can still write up things, but I will be unable to test in any form until like March(ish).

As such, I am dumping the little bit that I had from the new instance system that I was trying to work on. Maybe Akkadius, lerxst2112, Paldail, and/or Felony can finish and test this out.



THE FOLLOWING IS INCOMPLETE!
http://hateborne.com/ezserver/debug/Incomplete%20Instances.zip

There are three files in the archive: waypoint.pl, waypoint_assistant.pl, and instance_table.sql

The waypoint.pl contains the actual waypoint quest script. This handles all the heavy lifting.

The waypoint_assistant.pl contains a "sweeper" script to be attached to some static npc in a static zone (cannot be instanced). It runs through every so often and cleans the instance table. It needs to also delete the instances from the builtin instance store using the quest::DestroyInstance (if applicable).

The instances_table.sql is the SQL file to build the table in the database. This is where the new system would be storing the instance records. I am trying to use DB over QGlobals as there is no refresh period or funky rain dance associated with DB calls. The data either exists or doesn't.


I'm sorry to go and be a spoilsport, but I simply don't have the time. I don't even really play games at the moment. :-\


-Hate