I failed to solve the synchronization issue, I didn't finish implementing the periodic refresh algorithm I came up with, and I haven't even started the prediction/estimation part. But the sad fact is that I am out of time. I've pulled an all-nighter and now I must prepare for a long road trip. I hope I'm safe on the road after this!
On the bright side, my video clearly shows what's working and what isn't, and my documentation is honest and straightforward. So even though I'm deeply disappointed that I didn't finish the project to my satisfaction, I can take comfort in the fact that I did my best in the time I had, and accomplished some decent things in spite of the numerous factors against me.
Most importantly, I learned a lot of very useful things for my own future projects. And that's my whole reason for being here at DePaul. Thank you, Professor Keenan, for another practical and challenging class.
Henson's SE558 Blog
A blog dedicated to my coursework in SE558: Architecture and Design for Multiplayer Games at DePaul University.
Friday, June 10, 2011
Thursday, June 9, 2011
What to do: Panic or Surrender?
The project was going so well yesterday! I got all the player commands working and was able to go to bed and sleep well knowing that only the collision synchronization remained for today. Assuming today was going to be as productive as yesterday, I felt confident in my ability to work out those remaining issues one by one and have the project completely finished by bedtime.
As has been the case on every single part of this project, the reality didn't support my optimism. The network went down over and over again today. Also, most of today's builds just crashed on the other test machine, with no noticeable pattern.
I'm going to try to finish my efforts to get the two machines in sync, but if I am not successful in the next few hours, I have no choice but to throw in the towel. I'm heading out of town in the morning and there will be no more time to work on the project.
Here goes a "Hail Mary"...
As has been the case on every single part of this project, the reality didn't support my optimism. The network went down over and over again today. Also, most of today's builds just crashed on the other test machine, with no noticeable pattern.
I'm going to try to finish my efforts to get the two machines in sync, but if I am not successful in the next few hours, I have no choice but to throw in the towel. I'm heading out of town in the morning and there will be no more time to work on the project.
Here goes a "Hail Mary"...
Wednesday, June 8, 2011
Thrust! Woohoo!
The ships thrust! Finally! My code was just in the wrong place. It wasn't executing for the other player, only for the local one.
Another problem solved. Now to figure out a way to synchronize the two machines. My personal laptop is so many times faster than my work machine, the actions of the players don't sync up at all!
On to the next challenge...
Another problem solved. Now to figure out a way to synchronize the two machines. My personal laptop is so many times faster than my work machine, the actions of the players don't sync up at all!
On to the next challenge...
Turn! Fire! Asteroids?
I'm a-turnin' and a-shootin'! Yeehaw!
Trouble is, I didn't change anything. Why did it work this time when it didn't work before?
More trouble -- my asteroids weren't there this time, but the last test had them all there correctly.
Hmm... There seem to be some reliability issues here. Time for more troubleshooting.
Trouble is, I didn't change anything. Why did it work this time when it didn't work before?
More trouble -- my asteroids weren't there this time, but the last test had them all there correctly.
Hmm... There seem to be some reliability issues here. Time for more troubleshooting.
PacketReader Problem Solved
The problem with my packets was that I had accidentally removed the call to NetworkSession.Update. I fixed that, and suddenly I have asteroids on both machines! Yay! Unfortunately, my ships still don't move, turn, or shoot. One step at a time.
So there's one problem solved. On to the next...
So there's one problem solved. On to the next...
Tuesday, June 7, 2011
Where, oh where have my packets all gone?
OK, here's the situation at the end of my work day today: The lobby works, the players connect, the game begins, packets are written...but no data is ever received. The players can move around on their respective machines, but their representations on the remote machines remain motionless.
The problem: IsDataAvailable always returns false no matter how much data is actually sent. Countless examples and online references show the same sequence of steps that my code is performing, but for some reason, there is never any data to be read by the PacketReader.
Where, oh where have my packets all gone? Oh where, oh where could they be?
I guess I have my work cut out for me tomorrow.
The problem: IsDataAvailable always returns false no matter how much data is actually sent. Countless examples and online references show the same sequence of steps that my code is performing, but for some reason, there is never any data to be read by the PacketReader.
Where, oh where have my packets all gone? Oh where, oh where could they be?
I guess I have my work cut out for me tomorrow.
Visible Signs of Progress
Look! My lobby is 100% working. My code was slightly flawed, but not bad. As I suspected, all I needed was a working network. I'm suddenly very grateful for my employer and my freedom to use its equipment. :)
![]() |
Upon launch, the user presses the Home key to log in with a local profile. |
![]() |
The user then presses A to host a game or B to join one. |
![]() |
When the other player joins, his/her gamer tag is listed on the main screen. |
Subscribe to:
Posts (Atom)