Advertisement
Sandsky0

The future of fangame TAS (?)

Jul 23rd, 2015
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. I am creating a new way of TASing fangames because hourglass is obviously very underdeveloped and it will be quite awhile before the hourglass resurrection project (https://github.com/Hourglass-Resurrection) begins to make any huge progress.
  2.  
  3. How am I going to do this? Well it will all be done in Gamemaker. I plan to create a collection of objects/scripts that will control savestates, record player input, and seed RNG. This will require the to-be-TAS'd fangame to be decompilable so the objects/scripts can be imported (but this is no big deal! It just means that games with anti-decompiler will have to wait until hourglass resurrection is finished.)
  4.  
  5. A more technical how am I going to do this? --
  6.  
  7. Savestates:
  8. Gamemaker has two built in functions, game_load() and game_save() that essentially save the state of the game. game_save() lacks the ability to save data structures though, which is what I will be using to save all of the information for the TAS (player input, rerecords, frame number). To bypass this I will save the data structure information to a text file and load it upon loading a savestate. These savestates will be able to remember RNG by simply seeding the RNG at the startup of the game.
  9.  
  10. Player Input:
  11. Using Gamemaker maps, I can record the inputs in a similar way to how RMJ records the player input. These maps will be saved to a text file and loaded in combination with the savestates.
  12.  
  13. RNG:
  14. At the very start of the game I will do random_set_seed(1) to have fixed RNG (this IS still RNG! even though it will be the same every time for the sake of keeping it consistent for savestates, there is no pattern).
  15.  
  16. At the very end of all of this and after a significant amount of testing, I will be allowing trusted people to have the source to make TASes of their own. As a celebration, I personally will be making an optimized TAS for I wanna be the Crimson Needle entirely on stream as sort of an example of what can be done after all of this finished.
  17.  
  18. If you have any questions/suggestions, you can say them in chat. The FAQ section below will be used for repeated questions.
  19.  
  20. FAQ
  21. ------------
  22. Q: Can you cancel/1 frame?
  23. A: Yes! This is extremely important for TASing and definitely the main reason for why I'm even making this.
  24.  
  25. Q: How will frame advancing/slowdown work?
  26. A: Frame advancing is being done through a while(frameAdvanceModeIsOn){//stuff} loop and slowdown is being done simply through room_speed.
  27.  
  28. Q: Does this work for GM:S fangames?
  29. A: Sadly not, I am not fond of GM:S and I personally believe GM8.0/8.1 is far better so I will not be supporting GM:S.
  30.  
  31. Q: Will mouse input work?
  32. A: Yes. (This is an issue for games such as NANG or KTNG2 for those that are unaware.)
  33.  
  34. Q: I thought you were putting this on the forums, why not anymore?
  35. A: After the first stream of development, it became clear to me at how easy it would be to fake a clear using this. I do not want to kill the fangame community and add a ton of drama because someone claimed something was legit when it clearly wasn't, therefore I will now only send this to people who are trusted in the community.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement