Inactive [MISC] TimeLapse v0.2 - Record in 3d, play back at any speed [953]

Discussion in 'Inactive/Unsupported Plugins' started by Nightgunner5, Jul 10, 2011.

  1. Offline

    Nightgunner5

    TimeLapse - Record in 3d, play back at any speed
    Version: v0.2

    This plugin is the response to the age-old problem of "Who will sit out to record the time-lapse video of our build operation?" The answer? Nobody! This plugin records block changes in a highly compressed format and lets anyone who knows the recording ID play it back to themselves. Nobody else sees the playback, so multiple people can be playing different recordings in the same place at the same time.

    Commands:
    • /record stop
    • /record start [chunk radius] [ticks per frame] [frames per keyframe]
    • /playback stop
    • /playback start <recording ID>
    • /playback speed <percent>
    The /record command is for OPs only. /playback can be used by any player.

    This plugin does not modify any blocks, so it's perfectly safe to play back multiple recordings near each other while an area is being built in.

    Download - Source Code

    Still don't get it?


    Changelog:
    Version 0.2
    • Added superperms code (disabled for now)
    • Fixed bug where keyframes would not store the correct data
    • Added workaround for recordings containing the keyframe bug
    • Fixed recording with a radius of 1 (the default)
    • Added a few more sanity checks to the commands
    • Fixed recording of data value changes when block type did not change
    • Added chunk refresh after playback finishes
    • Crossed out cryptic joke in 0.1 changelog
    • Added high volume explanation to 0.1 changelog
    Version 0.1 (5 downloads)
    • Added the ability to release this plugin in this topic IT'S A JOKE THERE WAS NO PREVIOUS VERSION HOW COULD I CHANGE ANYTHING
     
    kahlilnc and Lloyd like this.
  2. Offline

    Dec64

    wait...what does this do?
     
  3. Offline

    superbomb17

    im asking the same thing....

    EDIT: ah...found this in source code: Make 3d recordings of complicated build operations and play them back at any speed
     
  4. Offline

    Dec64

    yeah, i kinda get it, so you start to record, and place blocks...then it saves it and you can play it back to other people, cool idea, but i just got disconnected when i tried to playback, or it just read back the commands to me.
     
  5. Offline

    superbomb17

    //thanks for updating main post.
     
  6. Offline

    Sixael

    Brilliant idea, like it!
     
    Nightgunner5 likes this.
  7. Offline

    marinating

    Mind blowing. How do you make the block change client sided? Is it a BukkitContrib feature?
     
  8. Offline

    Sixael

    Afaik there's a method for this (changeBlockStateAt or something like that), but I've never used it, so I could be wrong.
     
  9. Offline

    croxis

    The stupidity of some of the posters in here is amazing. Shame I just found this plugin, I started a big project yesterday! x.x
     
    Nightgunner5 likes this.
  10. Offline

    superbomb17

    he didnt have the video and not much of a description fyi
     
  11. Offline

    Nightgunner5

    No, it's pure Bukkit except for one CraftBukkit function I use to make it faster. The block changing functions are Player.sendChunkChange and Player.sendBlockChange.
     
  12. Offline

    DrBowe

    This is absolutely brilliant.
    If you don't mind me asking, as I've never worked with .sendBlockChange, is the block only 'there' client side, as in it can't hurt the player? For example, if I turned the ground beneath the player to lava, would he then 'appear' to start burning, or be in danger (but in reality, not be in any danger at all?)
     
  13. Offline

    Nightgunner5

    That is correct. Lloyd_the_Humble and I tested a lot of things: Fake lava will set the player on fire but not harm the player. Interestingly, if you make a fake bridge, stairs, or ladder, the player can use it as if it was real. Just make sure you don't make real blocks look like air, because trying to move into them, especially if it's below the player, will cause stuttering on the client side.
     
  14. Offline

    DrBowe

    @Nightgunner5
    Wow, that's intriguing. Did you happen to test whether or not it would show players walking across invisible bridges/stairs for other players on the server? On a completely unrelated note, I wonder if the developer of the Amensia plugin is aware of this. This could be used in so many good ways...

    On topic: Again though, nice job with this. I havent seen too many developers dive into those methods (one of the reasons that I never really cared about them myself)
     
  15. Offline

    KoryuObihiro

    @Nightgunner5 You might be interested in a plugin idea (which I'm still deciding on the feasibility of) that involves sendBlockChange. I've currently dubbed it "Illusionist".
     
  16. Offline

    Dec64

    wow really? so a plugin with a description that just contains its commands, and you would instantly know exactly what it does? Idiot.

    On topic tho, plugin is amazing now i have fully checked it out, great work, ill definitely be watching this plugins progress.
     
  17. Offline

    croxis

    The title time lapse with commands for recording and playback were a dead giveaway to me.
     
  18. Offline

    Shamebot

    That doesn't work.
     
  19. Offline

    DrBowe

    If you could elaborate, I'd greatly appreciate it.
    He states you can use 'fake' objects, but if these are only client-side changes, how would those that player appear to others on the server (if they started scaling a wall, for example, due to 'fake' ladders being sent to that player's client)

    EDIT:
    For clarification, at what point would this throw a rubber-band effect back to the server reality (if ever)?
     
  20. Offline

    Shamebot

    Uh I somewhat misunderstood your question. You can't walk over only serverside blocks. But you asked how a player would look like walking over only clientside blocks. If I remember correctly the bounce up and down, falling on the client but getting reset by the server.
     
  21. Offline

    DrBowe

    This really is more complex than I thought. I'm shocked that so few developers have used it, to be honest. So what you're saying (if I'm understanding this correctly), is that players can be tricked into having their own separate world...within reason?

    How expensive is the operation? Because I can see this being used for plugin that allows players to choose what the actual world looks like for them. Example, if they want to play in the normal world, but feel like they're in a hellish-domain, couldn't you potentially use this method to change every block of grass and dirt to netherrack, and every water block to lava?

    I'm sorry if I'm getting a bit too 'curious' here, but would this operation be too expensive to change blocks at a rate like that?

    Additionally, do these block changes remain the same for the rest of the server-length (unless changed back), or do they reset whenever a user disconnects (thus breaking the server-client connection)?

    EDIT:
    Obviously, the World-Changer would have to keep some parameters for perfomance reasons, such as the max distance to change the blocks (or simply load one chunk at a time)
     
  22. Offline

    Shamebot

    @DrBoweNur
    • yeah when the client reconnects the blocks are reset
    • I think there's something like sendChunk for a higher number of blocks
     
  23. Offline

    DrBowe

    @Shamebot

    Incredible. If there's not already a plug-in like this, I think I'm going to go give it a shot.
    One last thing, and then I'm done hijacking this thread (sorry @Nightgunner5 )

    Are physics-events ignored with these changes? If I change grass to netherack, will the (potential) flower in it break off client-side, or will it remain 'planted' in the new material (even if its not compatable)
     
  24. Offline

    Shamebot

    I don't know
     
  25. Offline

    Nightgunner5

    That's the reverse. They studder-fall on the client when the client doesn't see the block the server does, but they appear to be standing on air when the client sees a block the server doesn't.
    You can send a whole chunk at once, but it's a bit confusing because you have to store it in Packet51 format. (The compression gets done for you, but you need to have 3 nibble arrays after the block data)

    Important to note is that any interaction with a block, even as simple as right clicking a block next to it with nothing in the player's hand will cause the blocks to be sent to the player, so you could have dirt in the middle of netherrack if the player interacts with anything after the packets are sent.
    Any block change will be used, even things like falling sand and torches popping off broken walls.
     
  26. Offline

    Shamebot

    If you watch a player standing on a block which is only on his client and not on yours, he's standing still on your client? For items lying on a block which is clientside air, seem to bounce up and down, because the client predicts the fall. I thought it would be the same for players, because there aren't blocks for the watching client, too. On the other hand players using flymod are standing still.
     
  27. Offline

    Jego

    this is an awesome plugin! /me is downloading :p
     
  28. Offline

    RustyDagger

    Feature request :D make it record a world edit selection the idea of working out how many chunks i need dose not seem like fun to me. just take the 2 points of the world edit selection and use it as top to bottom of the map or just work out what chunks are in that area and record them all.

    Should not be hard to make and sure would make using it a whole lot easier

    EDIT 1
    also being able to set the id or list them some how would be helpful as im not going to remember some date as easy as say a name of what i am building.

    EDIT 2

    This crashes my client every time i try to play some thing back what do you recomend for the frames and keyframes when i start it i was unsure so just guessed im sure most people are in the same clueless state that i am in. i can record a single chunk and play it back so clearly its my frames and keyfraqmes settings thats making me crash what are the defaults dang it.

    EDIT 3

    Also some message when the playback is finished would be nice letting the viewer know thats its finished.

    EDIT 4

    I seem to say also a lot sorry about that i just cleaned my post up this is a very cool project and i hope you expand it and make it totally epic there is so much more you could do with this :D

    EDIT 5

    after looking at the source code a bit i think it defaults to /recording start 1 5 240 how ever I'm am not 100% sure can some 1 confirm this? Iv barely touched java ever so i could be 100% wrong :/

    Edit 6

    Still crashing my client every time i try to playback a recording with a larger than 1 radius.
     
  29. Offline

    bubbibjQrnen

    When i type the playback command it says: starting playback.... But the playback never starts???? wtf..
     
  30. Offline

    Woolcity

    This thing lags like crazy. I mean it's to be expected, it IS a recording program, but still. Kinda lags it up for everyone else. Even with the lag though I'm sure it could be fixed by getting a better server. A great plugin, fantastic idea, I still uninstalled it though due to lag. >.<
    +2
     

Share This Page