Posts for Scribble

Scribble
He/Him
Experienced Forum User
Joined: 5/15/2022
Posts: 5
Location: Germany
While I haven't been an active TASer on tasvideos.org, for a while now, I have been trying to make the tools to make Minecraft viable as a game that can be accepted by tasvideos. And since we have non-viable tools already (only savestates and slowdown/frame advance), there has already been some development in the Minecraft TAS community, which I believe is one of the communities dwango talked about. Now imagine my surprise when I stumbled upon this topic saying that the amount of submissions is overwhelming the judges, because I think creating tools accepted by tasvideos for the most sold game of all time is not gonna help this situation. Our community would immensely benefit from a speedrun.com style community/category system, where we control the categories ourselves, hence why unknowing people asked me before, why we didn't put the runs up on speedrun.com in the first place... I would gladly check the submissions beforehand or, if the community system is not chosen for this site, at least apply for a judge (or reviewer) to handle Minecraft related submissions to take the load of the judges and I am positive that others in our community would do the same. I also held off from creating detailed tutorials and setup guides, as doing that for the current tools would outdate them. I have been hosting some of it on https://minecrafttas.com. Still not satisfied with this solution, so having our own wiki section on this site would also benefit us, before we are forced to host our own service and scatter our resources to different sites... Me and others in our community are hoping that the tools will be accepted by tasvideos, it would be a huge honor to see a Minecraft TAS on here, but I feel like this issue has to be resolved first before accepting our and frankly other games as well... I know I haven't been accustomed to this site, the rules and the processes, something that you probably learn when submitting, so hopefully this feedback is still useful in some way.
I add "._." to sentences out of habit... Writing TAS tools for Minecraft 1.12.2: https://github.com/MinecraftTAS/TASmod
Scribble
He/Him
Experienced Forum User
Joined: 5/15/2022
Posts: 5
Location: Germany
How would you TAS it then? Or do you mean sync compatibility with an untasable version of the game? So then again, how do you ensure sync?
I should have specified that it's only the bare minimum to make it functional... That was at least an idea that came up in a discussion with a fellow dev
Pleasant TASing experience is the most important thing, because it attracts more people and incentivizes better works.
I agree with that. Nobody wants to use tools that are too complicated
Accuracy and authenticity are nice to have, but not at the expense of devs and TASers.
But sometimes you want to know how far you can make it sync before it breaks...
Is it possible to change what system time the game reads whenever it decides to roll RNG? libTAS controls that and it's quite robust, unless games do non-deterministic crap in other threads.
Interesting... The client-server relationship is the most non-deterministic crap you can get, having networking packets communicating inbetween on another thread is even more crap... But maybe with some in game magic, I can try my hand on hacking the system time like libTAS... Maybe worth checking out
I add "._." to sentences out of habit... Writing TAS tools for Minecraft 1.12.2: https://github.com/MinecraftTAS/TASmod
Scribble
He/Him
Experienced Forum User
Joined: 5/15/2022
Posts: 5
Location: Germany
initial seeding itself was done in some non-deterministic manner e.g. it was just say done by querying system time
It's exactly that... The game also uses multiple rng variables:
  • Each entity has their own RNG that they call
  • A "World" RNG that is responsible for chunk generation as well as block RNG
The world RNG is somewhat tricky as you have to watch out to not disturb world generation, but make block RNG deterministic... But the main thing I am getting is that I should rethink my RNG patching, which I will gladly do... Besides that, does anyone feel negatively about in game tools vs. external tools?
I add "._." to sentences out of habit... Writing TAS tools for Minecraft 1.12.2: https://github.com/MinecraftTAS/TASmod
Scribble
He/Him
Experienced Forum User
Joined: 5/15/2022
Posts: 5
Location: Germany
InfoTeddy wrote:
What libTAS does is patch all calls to the system RNG function. I would imagine that Minecraft uses system RNG and thus an external tool could get away with fewer patches needed for RNG.
Minecraft uses Java.Random, it's not the system random
I add "._." to sentences out of habit... Writing TAS tools for Minecraft 1.12.2: https://github.com/MinecraftTAS/TASmod
Scribble
He/Him
Experienced Forum User
Joined: 5/15/2022
Posts: 5
Location: Germany
Greetings! I am the main developer for the Minecraft TAS Tool "TASmod", a mod that aims to bring input playback functionality and more tools to the game. I've been working on and off on this mod for roughly 5 years and my plan for this mod was a full set of tools, savestates, slowdown/frameadvance and RNG Manipulation. Due to Minecraft being a very actively modded game and Mojang being very open to modding, I decided to write a mod that hooks into the input logic from inside the game, without the need for external tools. Looking at the history of TASes on this site, this led me to question my decision on writing internal tools for the game at first, but I thought: If I keep modifications to a minimum and keep it open source, then I may be able to get away with it. But during my years of working on the mod I found more and more major issues with the game that require some major modification to make the tools not desync. The main point is RNG. If you have ever played Minecraft before, you know how RNG heavy can be. This leads me to believe, that it is impossible to run a TAS via an external tool, without Minecraft desyncing. You can get away with parkour game modes, where there is practically no RNG involved, but even taking fall damage runs the risk of desyncing. I have recently read through the Hollow Knight TASing experience with libTAS and I feel that this could be happening again with external tools. And so here is a small overview of the changes:
  • Syncing game-tickrate between client and server (Minecraft starts an integrated server in singleplayer on a seperate thread, usually runs distinct from each other creating desyncs)
  • Patching ~2000 instances of RNG (Some are not modified but still listed) to be replayable and manipulatable.
Optional features to make TASing easier:
  • Slowdown and frame advance or more like "tick advance"
  • In-Game Savestates
The advantages I see with this:
  • Easier installation: It is installed like any other mod and it's widely known how
  • Multiplayer support: Mod can be installed on servers
  • Modding support: Other mods can interact with the tools
As a result I was able to create a Minecraft TAS with reproducable results and manipulated RNG: https://youtu.be/VkSM779W3LY?si=YGh5iDNIhRj7V_wX Now I would love to hear your opinions on that matter. Go for an "as pure as possible" approach, removing savestating, slowdown and/or RNG pathcing or take the opportunity of being allowed to modify the game and make a pleasant TASing experience?
I add "._." to sentences out of habit... Writing TAS tools for Minecraft 1.12.2: https://github.com/MinecraftTAS/TASmod