ID:110521
 
So, working with Phoenix hasn’t been easy. I do my best to prevent a wipe from happening, but when you’re redoing a core system, implementing it with an already running server gets trickier then you’d expect (or well, I had expected anyway). I’m hosting one of the main servers and I have access to the other, so downloading a copy of the entire server to see what happens when I update it is an easy task. It’s the unexplainable behavior that happens afterwards that gets frustrating.

I’ve had players being reverted to their previous positions each time a player logged in, along with a full rollback of their stats and inventory. I’ve seen servers run fine for hours only to crash on the second day for no apparent reason. And of course, there’s the unmistakable ‘erasing of items’ that will ALWAYS happen.

I think I prefer actual error messages to a DreamDaemon that freezes up. I’m sure the ability to output a profile to a file without having to refresh the thing would be a great boon.

There have been a few (loudmouthed) players that have not shied away from letting me know that they consider me to screw shit up. I’ll admit I’ve broken things that have worked fine in the past, it’s a flaw of mine. Once I get the ball rolling and things run smooth, I start checking less and less if everything is in place.

On the Brightside, there have been plenty of players willing to assist me with finding the flaws in my latest update, along with reporting old bugs that needed fixing. They’ve all been very helpful, be it by testing specific systems, or ‘blowing shit up’ soon as I gave them the ability to teleport and create and edit objects at will. (Nukes with explosion radiuses in the millions anyone?) It’s shown me the things that need to be accounted for, the behavior of players and admins alike have given many insights to design flaws.

All the hard work has paid off however and I’m proud of the latest release. Update 14 has had a great deal of remodeling ‘under the hood’. Perhaps to most of the players not much has changed (THERE ARE NO NEW SKILLS?! WUT IS DIS?!) but I know that some are aware of the effects of these changes. Having gutted strange loops and implementing Stephen001’s EventModule even further, a main server was able to hit a playerbase of 110 with (only) 60% CPU usage and no lag.

It’s still a lot, I wish it was less and I certainly intend to tweak it a bit more, but it looks like actually pressing that CPU usage down to below 30% with the same amount of players will not be possible. (And if it is, then it requires more work then I’m willing to put into it at the moment)

But as all good news related to Phoenix, it goes accompanied with some bad news. In this case ‘lag spikes’ and the most recent one, DreamDaemon using 99.9% CPU and freezing up.
(Again, outputting a profile to a file would be most helpful in this case)
The thing that really frustrates me is that I’m unable to discover a pattern or a way to trigger the cause.

But perhaps a break from programming is in order. If I can’t enjoy the game, then why am I working on it?!

Edit: Learned something new. (Though in hindsight, it seems like something that would've fallen under 'common sense') Turns out there was a loop in one of the items that wasn't properly implemented, the thing had no delay and never ended. Guess I know what to look for if anything like this happens next time.
What game is this? DB Phoenix?
Yes it is.