Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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.
- 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.)
- A more technical how am I going to do this? --
- Savestates:
- 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.
- Player Input:
- 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.
- RNG:
- 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).
- 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.
- If you have any questions/suggestions, you can say them in chat. The FAQ section below will be used for repeated questions.
- FAQ
- ------------
- Q: Can you cancel/1 frame?
- A: Yes! This is extremely important for TASing and definitely the main reason for why I'm even making this.
- Q: How will frame advancing/slowdown work?
- A: Frame advancing is being done through a while(frameAdvanceModeIsOn){//stuff} loop and slowdown is being done simply through room_speed.
- Q: Does this work for GM:S fangames?
- 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.
- Q: Will mouse input work?
- A: Yes. (This is an issue for games such as NANG or KTNG2 for those that are unaware.)
- Q: I thought you were putting this on the forums, why not anymore?
- 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