Jump to content


Photo
- - - - -

Replay Engine


  • Please log in to reply
23 replies to this topic

#1 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 18 July 2009 - 07:10 AM

  • Title: HD Playback Engine
  • Description: Allows you to record playback to a file super small in size. (Similar to Halo 3's Theater Mode)
  • GM Version: Game Maker 7
  • Registered: Yes, I think
  • File Type: .gmk inside a .zip
  • File Size: 16.0 KB
  • File Link: http://www.mediafire.com/?mmt4n5zj2yd
Additional Info
Well, maybe not literally HD, but if your game is in the right format it would be. I got this idea for when I make trailers for future games. My future games will be in High Definition formats (old-school but yet so new), and screen recorders barely record 640x480 on my crappy computer. So I thought of a way to save it and replay it a couple times slower so my screen recorder can take 10 frames/second and output 100 (edit it in movie editing software so it's 30) instead of RAW 100. This way, the video I record will be in full HD and won't cost me much memory! Also, I can monitor how beta testers play the game so I can make it easier or harder for the next update.

Later I will make a system to save audio to a timeline. You'll see what I mean.

How to record it when slowed down:

NOTE: When I tell you 100 fps, that's just what MY format is. Your fps has to be your games room speed.

If you are replaying your game at 10 fps it won't be very smart to record and output the same fps. What you need to do is record 10 fps and output 100 fps. That way, it will record it slow, but playback fast. If you're using Hypercam 2, it should look something like this.

Posted Image

Edited by JordanMaster22, 23 July 2009 - 09:04 AM.

  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#2 FullDeamon

FullDeamon

    GMC Member

  • New Member
  • 54 posts

Posted 18 July 2009 - 05:46 PM

cool
  • 0

#3 GameRock

GameRock

    Teh Metal

  • New Member
  • 595 posts

Posted 18 July 2009 - 07:09 PM

Very nice example. A lot of people can use this if they want to show a demo video on the title screen or even use it like the Halo 3 theater mode. It also runs super-fast, even on my computer. I see that you use timelines on a file to do playback (which is almost exactly what the Halo 3 theater mode does). I don't see any problems with it. I am awaiting for your audio saving system. Very nice!

EDIT: You might want to change the title so some people won't be mislead.

Edited by GameRock, 18 July 2009 - 07:12 PM.

  • 0

#4 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 18 July 2009 - 07:19 PM

Very nice example. A lot of people can use this if they want to show a demo video on the title screen or even use it like the Halo 3 theater mode. It also runs super-fast, even on my computer. I see that you use timelines on a file to do playback (which is almost exactly what the Halo 3 theater mode does). I don't see any problems with it. I am awaiting for your audio saving system. Very nice!

EDIT: You might want to change the title so some people won't be mislead.

Thank you. The audio version might have a con to it. It won't literally save it to a .mp3 or .wav file. It will save it to a timeline file, like this example does, and if you want to record it to an audio file, you will need Audacity.

Unless I find a dll that can record to audio.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#5 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 22 July 2009 - 07:41 AM

Very nice example. A lot of people can use this if they want to show a demo video on the title screen or even use it like the Halo 3 theater mode. It also runs super-fast, even on my computer. I see that you use timelines on a file to do playback (which is almost exactly what the Halo 3 theater mode does). I don't see any problems with it. I am awaiting for your audio saving system. Very nice!

EDIT: You might want to change the title so some people won't be mislead.

Okay, I renamed it to Replay Engine.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#6 nicholasandjim

nicholasandjim

    GMC Member

  • New Member
  • 266 posts

Posted 23 July 2009 - 10:16 PM

I found this error while replaying


___________________________________________
Trying to set the room speed to a value <= 0.

___________________________________________
ERROR in
action number 1
of  Step Event
for object oYou:

Error in code at line 14:
   if keyboard_check_pressed(vk_down) { room_speed-=10 }

at position 39: Cannot assign to the variable

Other than that, it is really good!

Edited by nicholasandjim, 23 July 2009 - 10:17 PM.

  • 0


#7 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 24 July 2009 - 11:30 PM

I found this error while replaying


___________________________________________
Trying to set the room speed to a value <= 0.

___________________________________________
ERROR in
action number 1
of  Step Event
for object oYou:

Error in code at line 14:
   if keyboard_check_pressed(vk_down) { room_speed-=10 }

at position 39: Cannot assign to the variable

Other than that, it is really good!

That's not a bug. The room speed just can't be below 1.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#8 theshadowmoose

theshadowmoose

    GMC Member

  • New Member
  • 57 posts

Posted 28 July 2009 - 05:14 AM

The audio version might have a con to it. It won't literally save it to a .mp3 or .wav file. It will save it to a timeline file, like this example does, and if you want to record it to an audio file, you will need Audacity.

Unless I find a dll that can record to audio.


erm... I'm not sure you need a dll for that. At least, I know I have some microphone/soundcard scripts somebody posted once floating around my computer. edit:
here's a link to them...but they still may not be what you want, because they might also record from your microphone too. I take no credit for them.
direct link
hope they help you!
Anyways, this is a pretty cool playback method, keep up the good work!
-TheShadowMoose (TSM)

Edited by theshadowmoose, 28 July 2009 - 01:52 PM.

  • 0
"Perhaps intelligence should not be looked at as a single gauge, like a speedometer, but as a full array of tachometers, odometers, altimeters, and the rest."

#9 forkaspoon

forkaspoon

    GMC Member

  • New Member
  • 55 posts

Posted 28 July 2009 - 06:58 PM

Awesome!
  • 0
I am gonna fork yer spoon till it dies.

#10 edmunn

edmunn

    GMC Member

  • New Member
  • 1298 posts

Posted 28 July 2009 - 08:09 PM

SuperSoundSystem.DLL can record audio files, I do believe.
  • 0

Posted Image
Please PM / Email your suggestions!

15.4" Apple MacBook Pro Late 08', 2.8 GHz Intel Core 2 Duo, 4GB RAM, SSD
Mac OS X Lion


:)

#11 jobro

jobro

    GMC Member

  • GMC Member
  • 1300 posts
  • Version:GM:Studio

Posted 29 July 2009 - 10:30 AM

For my needs sound is not relevant. A quick system that plays back a silent animation of the gameplay is good enough.
  • 0

Marketplace.png


#12 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 29 July 2009 - 07:33 PM

You guys can just record sound from the playback engine. When it replays it's not silent. Just keep it at normal speed and record in Audacity. The only reason I might make the sound system is if you're having a tough time recording sound while the replay engine is also processing keystrokes and game stuff. But I can tell you that unfortunately, I may not be able to make the sound version.

-My GM computer isn't working
-The sound engine lags while I record it in Audacity (all sounds are the same pitch and speed, but are out of sync (too far apart))
-You have to add what pan and volume and any dll supported effects will be recorded in a text file

But maybe if there was a dll that can lower the speed of the sound (making high pitch 'hello' sound like low pitch 'HHHEEELLLOOO'), then I can just put it in the playback engine.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#13 mr glasses

mr glasses

    GMC Member

  • New Member
  • 425 posts

Posted 03 August 2009 - 07:50 PM

seeing as I have problems with slow recording times, I think I will give this a try.
  • 0
Eternal World Online
Click here to see if the server is online. If you want more details, click here to see the latest server/glitch/release information.

#14 blackmoon

blackmoon

    "Execute order 66."

  • New Member
  • 421 posts

Posted 03 August 2009 - 09:43 PM

This looks just like "Hypercam"...
  • 0
Jesus loves me. And you. And that guy. points

#15 GameRock

GameRock

    Teh Metal

  • New Member
  • 595 posts

Posted 03 August 2009 - 10:10 PM

This looks just like "Hypercam"...

I believe it is. The screenshot isn't the example. XD
  • 0

#16 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 05 August 2009 - 07:40 PM

The image is just a short tutorial if you record it at a low fps. Many people use Hypercam but I don't know any others that support the feature.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#17 Hello-World

Hello-World

    GMC Member

  • New Member
  • 105 posts

Posted 11 August 2009 - 10:38 PM

Hmm...so basically, it writes down the keys that are pressed into a .play file correct? What about the position of the mouse? Is there a way to record that?
  • 0

#18 JordanMaster22

JordanMaster22

    GMC Member

  • New Member
  • 496 posts

Posted 13 August 2009 - 01:39 AM

Hmm...so basically, it writes down the keys that are pressed into a .play file correct? What about the position of the mouse? Is there a way to record that?

Yeah, just keep recording the mouse_x and mouse_y. My PC isn't working so I can't update it.
  • 0
Oh no! Is Hypercam and Camstudio too laggy and crappy to record your games? All you want is to get some HQ or HD footage of your Game Maker game, but you don't have a state of the ark computer. There's a solution! This engine records hours of HQ or HD footage of your game, saves it to a KB-sized file, and doesn't require a lot of memory! Also, you can customize the frame-rate while playing back a file, so Hypercam can record a low frame rate and output a high one!

HD PLAYBACK ENGINE

#19 8-BitTonberry

8-BitTonberry

    GMC Member

  • GMC Member
  • 677 posts
  • Version:GM:Studio

Posted 13 August 2009 - 03:27 AM

Wow, very nice example. It's a great idea. The only problem is that it's a little difficult to implement. It might work better if you made the game from scratch implementing this engine.

Nice one though.
  • 0
8-BitTonberry.png

#20 Elijah Lucian

Elijah Lucian

    GMC Member

  • GMC Member
  • 545 posts

Posted 31 October 2009 - 04:06 PM

hey i dont know if you guys are familiar with how the halo engine records... all it actualyl records is the movements of the people and replays those. thats why the filesizes are so small.

i dont know if thats possilbe in gm. but good idea anyways
  • 0

#21 Tarik

Tarik

    GMC Member

  • GMC Member
  • 2731 posts
  • Version:GM:Studio

Posted 31 October 2009 - 05:08 PM

Not a real bad example, but not good either. It does what it's supposed to do, but I wouldn't call it an engine, which is a word that has lost all meaning on the GMC. An engine really provides the user with extra functionality, usually in a user friendly way that can be implemented and plugged into existing game concepts almost universally.

This is not an engine, it's an example of the concept of saving and loading player actions, and an extremely basic and inefficient one that fails to take many things into account. If you named it like that, I'd say, great example that does what it says.

Anyway, the concept is pretty solid, but the execution fails. Quite a few games do it like this, but they're not using slow writing features every step. Quite frankly, in a large game where there's a hundred objects that need updating every step, you're probably better off using a low-level written fast application like Fraps to save an image of the screen instead of using a high level slow application like GM to save thousands of values every second.

Your example works cause there's a player that can write at most 4 values at any one step. If you have a hundred NPCs, inventories that change, bullets that fly around etc, you're writing lots of information every step using very slow file writing functions. In addition, as you're writing a whole line for a single value, you're creating megabytes of data for a few minutes of playing in larger games. Sending just action indexes would reduce your playback size by maybe 20 times.

A proper engine does not use execute_file (which is extremely dangerous as you can simply execute GML as the player). A proper engine does not write a line of GML for every value, but rather only writes binary data of the index numbers you use for specific events using binary writing and reading DLLs that are much faster, it saves seeds for random functions, and offers the option to not write data every step but rather buffers it into say a datastructure to be written at intervals or game end.

It's absolutely recommended to NOT use the code you wrote for any serious playback feature. The underlying concept works, but your execution does not. It's not an engine and putting HD infront of it makes no sense as you're not recording graphical data. It's also not a super small filesize, recording for 5 minutes in a larger game would be huge. It's like me saying "save images using just 1 kilobyte!' and make an example that saves a 1-pixel image. It's not realistic for larger projects.

It's a misleadingly named inefficient example that uses slow features to write and read 20x as much data (GML) as needed every step and then uses the dangerous execute_file to replay a fraction of what you'd see in a regular game situation.

Which is fine, cause it shows a concept, just don't make it out to be anything but that and warn people that it's NOT an engine, does NOT save 'super small files', has NOTHING to do with HD and that it must be heavily optimized and rewritten and that this just shows a small quick example of a replay technique. Hope I didn't discourage you or insult you, replay engines are really interesting, I hope you'll continue to improve this.
  • 0

#22 8-BitTonberry

8-BitTonberry

    GMC Member

  • GMC Member
  • 677 posts
  • Version:GM:Studio

Posted 10 November 2009 - 04:18 PM

Could you not do it the way Halo does it?

You could just make it just like any online game would. Send X and Y coordinates, image angle or sprite indexes, bullets, etc. Just make the playback system like an online game.
  • 0
8-BitTonberry.png

#23 computergeek

computergeek

    GMC Member

  • New Member
  • 146 posts

Posted 11 November 2009 - 01:15 AM

But honestly think how big the file would be after even a minute of recording. x/y coordinates for every step, even if you just did it while the players moved, it would still be extremely big.
  • 0

#24 WesIvey

WesIvey

    GMToychest Admin

  • GMC Member
  • 306 posts
  • Version:GM:Studio

Posted 11 November 2009 - 02:24 AM

Sick!
This is great. Perfect for shooter games, and like boxing style stuff.
  • 0