Game Isn't Clearing Game Data on Exit
Oops. If you quit a game then rejoin, or host a new one, it'll load map data over on top of what's already there. This was because previously one execution of the game client == one map. Now that I'm functioning with multiple games per client session, I need to clean up after myself. This is now fixed, but resulting in interesting bugs like bad framerates, objects in strange places, and respawn points inside the walls. [smile]
Players Dropping Randomly
I'm still not 100% on the cause of this, but during another test I did today with 6 players, people seemed to be dropping every now and then somewhat randomly, even though their ping only went up around the ~350ms range. I think this was because I was relying on dropping players if they didn't get a ping update within every 9 seconds. Ping updates are issued every 4-5 seconds, so I figured I'd be safe. However, I think packetless was causing these false negatives, so I bumped it up to 20 seconds just to make sure. I'll test this next session.
Distortion on Some Graphics
If you look closely at some of the grates and bathroom tiles, you can see some distortion. Apparently the GraphicsEx library I found to load PNG files was botching it up. So I converted all of my graphics to the BMP format (GROAN; was mundane even though I had a script to do most of it :P) and had it use that data to build the final Graphics.OIL file that the game uses.
If You Exit the Game, You Cannot Rejoin
This was really weird, and quite annoying. If someone played in a game, left the game to return to the server listing for whatever reason (change player name, controls, etc) and then proceeded to join any game, he would always fail. WTF? So I spent a good 3-4 hours on that today. Then when I did a test and viewed debug data, it turned out that the client WAS receiving the confirmation data when he tried to join for the second time, but just wasn't acting on it. Odd.
So I checked some variables and concluded that I'm a moron. I had forgotten to reset the local player to NIL. So the game kept on insisting that it already had a local player assigned when the server was trying to hand it login data. Hehe.
Master Server Not Always Dropping Clients
For some reason or the other, every now and then the master server was sometimes keeping players logged in and active that had already quit. This was a big pain since it would require a master server reboot in order to fix for the players that were experiencing the bug. So now any attempt to log in while another player is on that account will boot them off and let the newly attempting player in. This solves the problem -- well, it's untested, but it SHOULD -- but I think I should restrict it to both attempt'ers having the same IP address, just in case someone with another person's account name/pass wants to boot the person out for kicks. :P
Two Types of Random Access Violations
I'm baffled here. Sometimes, rarely so, upon joining the player who is trying to join will receive anywhere between 1 and INF Access Violation pop-ups. Sometimes it occurs to the game host as well. I even got a report today of it occuring when someone tried to host a game themselves. I have zero clue about what is happening. I found a neat Delphi debugging utility that SHOULD be able to get a nice call stack with line numbers, but no go with it so far. I've posted on their forum and am hoping for a reply sometime soon. If this thing can work, than HopeDagger->DebugSpeed++. For sure. [grin] (For anyone curious, the util I refer is 'EurekaLog')
Object Collision are FUBARed
Ever since I added customizable rotation to game objects, collision detection has broken down. This is because of how I was checking for collisions before. I made a thread on it over here, so you can read up on it there if you're interested. This is non-critical, but still high-priority.
Draffurd had another great graphical spurt today. For those of you who actually made it this far down the post in reading my boring bug reports, you deserve to see the fury of: couches, pot plants, tables, sinks, and toilets. Joy!