BETA 1 - Demo Recording - Crash - RESOLVED
by elvince · in Torque 3D Professional · 06/30/2010 (11:39 pm) · 9 replies
Dear all,
I tried the recorddemo function and when I play it back my game crashed.
Does this function should work or is it a old function for previous engine that's not supported anymore?
Thanks,
I tried the recorddemo function and when I play it back my game crashed.
Does this function should work or is it a old function for previous engine that's not supported anymore?
Thanks,
About the author
Recent Threads
#2
08/19/2010 (10:41 pm)
Is this still broken for you?
#3
I can making failed with the following:
1/ Launch the game (full template)
2/ Go in a mission - default one
3/ Start Recording (F3)
4/ move...
5/ Stop Recording (F4)
Now you have the rec file.
Close the game, and relaunch your exe.
press F10 to open the recordingsdlg gui.
You should see your rec file. You press play and everything should play back.
When you are back in the main screen you can see some errors in the log (like function that do not exist).
F10 again, select your recording gui again and press play
CRASH!
I hope this will help :D
Rec is a nice feature to apply non regression testing in my game. I don't know if it was the intended feature, but I think it nice to have that in place.
08/26/2010 (6:35 pm)
Hi,I can making failed with the following:
1/ Launch the game (full template)
2/ Go in a mission - default one
3/ Start Recording (F3)
4/ move...
5/ Stop Recording (F4)
Now you have the rec file.
Close the game, and relaunch your exe.
press F10 to open the recordingsdlg gui.
You should see your rec file. You press play and everything should play back.
When you are back in the main screen you can see some errors in the log (like function that do not exist).
F10 again, select your recording gui again and press play
CRASH!
I hope this will help :D
Rec is a nice feature to apply non regression testing in my game. I don't know if it was the intended feature, but I think it nice to have that in place.
#4
Thanks for the more detailed reproduction steps! It is unlikely that we will be able to get this fixed for Torque 3D 1.1 Beta 3 but we are tracking it and will fix it as soon as we clear some higher priority bugs.
08/26/2010 (6:47 pm)
Hey elvince,Thanks for the more detailed reproduction steps! It is unlikely that we will be able to get this fixed for Torque 3D 1.1 Beta 3 but we are tracking it and will fix it as soon as we clear some higher priority bugs.
#6
08/26/2010 (9:44 pm)
Thanks again elvince, those steps did the trick. We were having some trouble reproducing this one before. It looks like this is specific to new projects as it doesn't occur the FPS Example for some reason.
#8
I believe I have this issue fixed for 1.1 Final. Make the following changes in game/core/scripts/client/recordings.cs.
1. Add clientStartMission() to StartSelectedDemo():
2. Add clientEndMission() to demoPlaybackComplete():
And that should be it. The main issue is that this form of recording only uses the current network stream and does not record any previous commands that may have been sent. Which means that the recording may not exactly match what you saw while playing the game. i.e. you won't see any previous messages in the chat box, but new messages should display.
Great for quick recordings on the fly, and could be quite useful for an end user to record a play session as proof that they did get that kill. You'd just want to make sure you explicitly record game specific information within the recording, and restore it upon playback. You'd also want to add some version header to the recording so you could gracefully handle changes.
If you want to have a true picture of what exactly happened, -jSave records everything from the beginning, and -jPlay plays it back.
- Dave
02/04/2011 (8:21 am)
Greetings!I believe I have this issue fixed for 1.1 Final. Make the following changes in game/core/scripts/client/recordings.cs.
1. Add clientStartMission() to StartSelectedDemo():
function StartSelectedDemo()
{
// first unit is filename
%sel = RecordingsDlgList.getSelectedId();
%rowText = RecordingsDlgList.getRowTextById(%sel);
%file = $currentMod @ "/recordings/" @ getField(%rowText, 0) @ ".rec";
new GameConnection(ServerConnection);
RootGroup.add(ServerConnection);
// Start up important client-side stuff, such as the group
// for particle emitters. This doesn't get launched during a demo
// as we short circuit the whole mission loading sequence.
clientStartMission();
if(ServerConnection.playDemo(%file))
{
Canvas.setContent(PlayGui);
Canvas.popDialog(RecordingsDlg);
ServerConnection.prepDemoPlayback();
}
else
{
MessageBoxOK("Playback Failed", "Demo playback failed for file '" @ %file @ "'.");
if (isObject(ServerConnection)) {
ServerConnection.delete();
}
}
}2. Add clientEndMission() to demoPlaybackComplete():
function demoPlaybackComplete()
{
disconnect();
// Clean up important client-side stuff, such as the group
// for particle emitters and the decal manager. This doesn't get
// launched during a demo as we short circuit the whole mission
// handling functionality.
clientEndMission();
if ( $UseUnifiedShell )
{
if (isObject( UnifiedMainMenuGui ))
Canvas.setContent( UnifiedMainMenuGui );
else if (isObject( MainMenuGui ))
Canvas.setContent( MainMenuGui );
}
else if (isObject( MainMenuGui ))
Canvas.setContent( MainMenuGui );
Canvas.pushDialog(RecordingsDlg);
}And that should be it. The main issue is that this form of recording only uses the current network stream and does not record any previous commands that may have been sent. Which means that the recording may not exactly match what you saw while playing the game. i.e. you won't see any previous messages in the chat box, but new messages should display.
Great for quick recordings on the fly, and could be quite useful for an end user to record a play session as proof that they did get that kill. You'd just want to make sure you explicitly record game specific information within the recording, and restore it upon playback. You'd also want to add some version header to the recording so you could gracefully handle changes.
If you want to have a true picture of what exactly happened, -jSave records everything from the beginning, and -jPlay plays it back.
- Dave
#9
04/13/2011 (5:08 pm)
Fixed in 1.1 Final and Preview.
Full Sail QA&U Lab Intern