I just upgraded to the 6.30 public beta (procrastination) and have found some problems. All are fixed but one. A serious one, waiting for answer to whether it is a bug or not. Once this last quirk is resolved I will go back and update everything to reflect the changes I made today. Some of these changes fix the problems that some of you were bringing to my attention earlier. I just didn't have the latest update, sorry. All should be running smooth after the transition is over.
I ran into another fine snag too, that took me quite a while to figure out. Since in the tutorial we were doing animation locally, the weapon would always move with the server's animation, which might slightly be off the client's local animation. So the weapon wouldn't always be exactly in hand on the clients. After some suffering, I finally got the code together where all the weapons are created locally too, so they attach to the local animation. Actually, another interesting addition to the tutorial I wasn't planning to actually do. I either made it work or scrapped the local animation example. It was a close call, I was having a heck of time figuring a simple effective way of doing it, and laziness due to insueing retirement plus A6.3 public beta stress, was causing me to day-dream about taking a nap and removing the local animation tommorrow. I totally tore up the code with 4 different ideas I had, all failed, before the moment of
Insight . Then, it all came together using a interesting (brilliant, heh) technique. Whew!
Chapter 12 should be out a soon, after the new quirk is figured out.
Temporary solutions to make the existing tutorials files run with 2 PLAYERS ONLY over LAN with host computer with A6.30 public beta release:
1) in declarations under Variables add:
Code:
var dplay_smooth = 0; // no movement prediction
With the A6.3 public beta release, the program began to overshoot movement alot on clients even on LAN. I need to look into my code and see if that is where the problem is. It could also have something to do with the beta., but this will make it run better for now.
2) In main() function change this:
Code:
if(connection == 2) // client?
{
while (temp_player_number == 0) // wait for server to assign client temp player number
{
wait(1);
}
}
to
Code:
if(connection == 2) // client?
{
//TODO: Temporary!
temp_player_number = 2; // temporary fix to let us test with 2 players until send_var()
// problem resolved
while (temp_player_number == 0) // wait for server to assign client temp player number
{
wait(1);
}
}
The send_var() command doesn't seem to work from on_server = function;'s function in A6.30 beta.
3) In action move change this:
Code:
force_turn.pan = my.force_y * speed_sidewards_factor * TIME;;
force_turn.tilt = 0;
force_turn.roll = 0;
ROTATE(my,force_turn,NULLVECTOR); // rotate the player
To:
Code:
// get new pan
my.pan = my.force_y * speed_sidewards_factor * TIME + my.pan;
Rotate() is now truely an obsolete 3DGS command. Rotate() has retired, just like me very soon. So, I suppose, I will be Obsolete here soon too.
If the tutorial chapter you are on does not have a line that I said to change above, that's fine, just don't change it or add it since it doesn't exist. But for now, go ahead and add the var dplay_smooth = 0; even if it wasn't there.
Since I upgraded to the A6.30 public beta and had to get weapons attached to local animation, I figure I am at the same place in the tutorial progress as yesterday, plus I have an 'Enigma' problem to solve too. Not to mention, all the documentation changes and the previous chapter level updates and uploads yet to come. Not bad for a days work, lol. (I had 'this feeling" that updating was a bad idea, but I couldn't resist). Actually I had to do it, since this tutorial is for A6.3, but I still regret doing it today. It was a real downer, I went from happy to sad real fast.
Loco Person