i don't know any kind of coding or programming,therefore i find it hard to understand the memory reading stuff.Are most TASers coders or programmers,professional or not?
It would have helped both my accepted and rejected runs to be able to find RNG values.Should i learn to program,if i have more interest in TASing in the future?Where do I start?
I don't feel like I can TAS without that skillset and have a decent result.
TAS i'm interested:
Megaman series, specially the RPGs! Where is the mmbn1 all chips TAS we deserve? Where is the Command Mission TAS?
i'm slowly moving away from TASing fighting games for speed, maybe it's time to start finding some entertainment value in TASing.
Joined: 11/13/2006
Posts: 2821
Location: Northern California
You don't need programming skills. I don't have any. I've never been interested in programming/coding and I don't think I ever really will be. Then again, my runs aren't that great so maybe I'm not the best person to talk about it.
I can say that RAM search and RAM watch are simple to pick up even if you don't know anything about them. You can figure out a lot of useful values just through trial and error. It doesn't take more than a tutorial or two to learn how to do it, and you only need basic RAM search knowledge to learn most of the values you want for a game.
As for RNG... You really just need patience to manipulate it. For the most part, RNG changes every frame, so you can just test every frame to see the earliest point where you get your desired result. If that's not working, you might have to try changing a lot of other things: Taking damage, different forms of movement to create dust, killing or avoiding enemies... It's time-consuming without knowing the RNG address, but definitely possible.
Barring that, if everything's too hard to understand, you can just ask politely for help in the game's thread. Some nice person will eventually show up and give you the information you're looking for, and possibly far more than that.
just stay the hell out of the Metroid Prime thread if you want nice people
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family.
Now infrequently posting on Bluesky
Memory reading, you mean the RAM watch, doesn't really do much with programming, it's more like simple logic.
Finding RNG values isn't necessarily helpful if you don't know what to do with them. You need to find a formula and the type of the RNG to understand it how it works, how you are able to manipulate it and to convert the random values into a meaningful value. But still after that you would do the same as you would do without the knowlegde, just testing different things.
It's a common misconception people believe that a plain RNG address helps them with their TASes, knowing about how to manipulate the RNG helps.
Learning lua scripting is definitely not a waste. You start by displaying "Hello World" in the emulator window.
If you want to be a good TASer, most definitely programming is required. Just look at the likes of Mr.Wint… that’s a good TASer. Still, you can be very decent without much programming knowledge, RAM Search can be learnt by someone who knows nothing about programming I guess, I’ve never known a lot about programming but I can still understand a lot of what people talk about when discussing memory and the likes. But programming and maths knowledge definitely make you a better TASer.
I think this site has guides to learn how to use RAM Search, so you should start there if you don’t know how to use it yet. For RNG like TASeditor says, its RAM address won’t help you much most of the time; to make use of it you need the aforementioned programming and/or maths knowledge. Luck manipulation is probably the hardest part of TASing.
Knowing a bit about programming in general and about the systems you're TASing for certainly never hurts, but it's not gonna just make you into an amazing TASer. More important in my eyes is having a good sense of observation and being able to draw the right conclusions from that. Things like finding RAM addresses or determining a game's RNG just become more of a learnt thing than something that relies on programming knowledge.
Joined: 4/17/2010
Posts: 11473
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
http://tasvideos.org/ReverseEngineering.html
Knowing programming languages doesn't help you in figuring out RNG, because games are in ASM (unless you really want to learn that good luck MWAHAHAHAHAHAHAHAHA). It only helps you write good lua scripts, but writing good lua scripts can be very much learned from reading good lua scripts written by others (and editing them). That was my path: TASing => Lua => Debugging => C.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
What makes you think the theoretical best TASer wouldn’t be anything other than a bot coder? You wouldn’t call Mr.Wint a TASer? He creates bots that make TASes, that’s TASing at the highest level.
Knowing programming languages doesn't help you in figuring out RNG
This is just wrong, though. Disassembling requires programming knowledge.
The art of TAS has surpassed merely playing a game. TASing is the game itself, and sometimes even that is eclipsed by making things play that game for you too. Metagaming of sorts.
The best players of this game know how to break all the rules, and do so as a matter of course; this necessitates understanding the architecture and peculiarities of the target, and of the tools used to work said target.
Generally, this means understanding how to write computer code. This is because it often means knowing how to tear these platforms and code apart (see the post by feos), as much as it does writing your own.
For the motivated, learning to program isn't hard. Learning to do it well can be :)
edit: slightly updated "quote"
Joined: 4/17/2010
Posts: 11473
Location: Lake Chargoggagoggmanchauggagoggchaubunagungamaugg
ALAKTORN wrote:
Knowing programming languages doesn't help you in figuring out RNG
This is just wrong, though. Disassembling requires programming knowledge.
Disassembling requires looking up opcode mnemonics. And ASM has little to do with what most people understand by the term "programming languages". Also, you can't really learn ASM (only basics of how it works), since it varies so much, especially on consoles. Disassembling requires knowing what to do with debugger.
True wrote:
The art of TAS has surpassed merely playing a game. TASing is the game itself, and sometimes even that is eclipsed by making things play that game for you too. Metagaming of sorts.
The best players of this game know how to break all the rules, and this necessitates understanding the architecture and peculiarities of the target, and of the tools used to work said target.
Amazing quote! Added to the page.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Disassembling requires looking up opcode mnemonics. And ASM has little to do with what most people understand by the term "programming languages". Also, you can't really learn ASM (only basics of how it works), since it varies so much, especially on consoles. Disassembling requires knowing what to do with debugger.
Which is all stuff that becomes much easier to learn if you’re already a programmer. I guess I shouldn’t have said “requires”, but you were also wrong in saying that “it doesn’t help”.
Programming knowledge is not required. Math knowledge is not required. RAM addresses is not required. But all this things can boost a lot!
First is RAM addresses: very easy to understand how to find them. When you have RAM values, you can easily compare positions/speeds (if you found them). It's much easier to deal with exact values of position/speed instead of trying to find out it from actual image (screenshot). You always have to compare values, because there is no other way to find out which input is better.
Second: a little of math... It helps, for example, if you understand how velocity affects position in time. I don't know how to describe... For example, in platformer, if some door opens after some timeout, you may accelerate before door, and enter in it right at that moment when it opens, instead of holding arrows in direction of door. Most of games in this case will clear your speed, and when door will opened, you'll start to gain speed, instead of running at top speed already.
May be math - no so cool boost, but for me - it helps.
Programming knowledge: for me, programming is developing of architecture for some program. Writing code for me is: coding :D. You may easily find out how to write Lua scripts looking in existed ones, and changing them. (as feos mentioned)
Reverse Engeneering: it will help you find out algorithms how game works, in any sophisticated cases, such as AI decisions, RNG manipulations and so on. Here you need to know particular assembler, and programming skills.
With using all mentioned before things, you can make very high quality TAS.
But, even if you have great Lua scripts, and whole RAM map, but lack of attempts to improve that you already reach, then you'll end up with mid quality TAS.
Also, if some kid will find better route, he can beat your TAS easily even without such skills and tools. But if he beat your TAS, and he did't make it on your level, then you may "easily" beat his TAS.
Last thing: algorithms. In some cases, you may optimize some actions in total perfect way, for example subpixel positioning while jumping in some platformer. I wrote program to achieve that during one jump for game Donald In Maui Mallard.
ALAKTORN wrote:
He creates bots that make TASes, that’s TASing at the highest level.
If you rely on bot, your bot can't check all possibilities, so you have to watch after your bot, how he is doing things, and for all sub-optimal decisions, alter your bot to take into account that certain cases. So all that cases alteration looks like you was editing input by your hands. For some games it's possible to make bots without such tweaks: puzzles for example. And yes, for puzzles - best way is solving program (bot).
thanks for the input guys,i want to redo the justice league task force run again and will test for the basic stuff much more thoroughly
TAS i'm interested:
Megaman series, specially the RPGs! Where is the mmbn1 all chips TAS we deserve? Where is the Command Mission TAS?
i'm slowly moving away from TASing fighting games for speed, maybe it's time to start finding some entertainment value in TASing.