Post subject: [Guide] Optimizing 3D Games TASes
THC98
He/Him
Experienced player (924)
Joined: 8/7/2012
Posts: 280
Location: Brazil
I was watching some N64/GC TASes of 3D games that were so unoptimized (I'm not saying that ALL the TASes are unoptimized, only SOME of them). So I decided to help those TASers to optimize them. Understand that I'm not saying that those TASes suck, just that they should be improved. Please don't think I don't enjoy watching them. By "3D games" I mean racing/action/adventure games, where you have a 3D move in a 3D world (not like SSB or Star Fox). Here's a guide to optimizing the TASes: -First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle, without losing speed. .In a simple adventure/action game (like Bomberman 64, Chameleon Twist, Billy Hatcher) where you always have the "same" speed, just make sure to don't touch the walls that might stop you. .In a more advanced adventure/action game (like Super Mario 64, Sonic Adventure, Metroid Prime), be careful to don't lose speed in those movements and try to get more speed as possible in every move. .In a racing game (like Mario Kart, Diddy Kong Racing, Need For Speed), do the curves in the most inside part possible (with the "limit" input in the TAS Input) without braking. If you can't do the curve without braking, use it for the least time possible. To understand it more, check out this picture I just made: Image -Make sure you're doing every action in its first frame possible. Test using the input that you need in the earliest frame you can do. If you have to wait for an animation to do an action, do it the frame after the animation end. For example, if you're TASing Sonic Adventure DX, in a part that you're jumping to a higher platform and you want to homing attack (a Sonic move that makes you go with a right speed to front, that kinda regains your speed) there. So you have to do it right when you are in front of the platform, doing it in the first frame possible. .If you have to use luck manipulation to get an item or some upgrade (or something else), make sure you do it in its first frame possible to get what you want. So, test EVERY frames to be sure that any frame before can give you the same result, but faster. Another thing that can help with the luck manipulation is changing some inputs before doing the luck manipulation (be careful to don't lose any speed) to change its results. I hope you can optimize your TASes better now! See ya!
Youtube Channel | Twitch Channel • Finished projects: GC Sonic Adventure DX - Sonic | GC Sonic Adventure DX - Tails | GC Sonic Adventure 2: Battle - Hero Story | GC Sonic Heroes - Team Sonic • Current projects: GC Sonic Adventure 2: Battle - Dark Story - 1st WIP • Paused projects: GC Sonic Adventure DX - Knuckles - 1st WIP • Individual levels records: Sonic Adventure DX | Sonic Adventure 2: Battle • My Discord: Tales98#0408
Joined: 1/3/2006
Posts: 334
I think this would be better in the newbie corner, sounds like a good advice for people who are complety new to TASing or speedrunning. Then again I think the guides on the main site tell you basically anything you need to know. But thanks for the input if I might say so! On a unrelated note: What TASes were you speaking of that suffered such a high level of unoptimization? Just wondering
THC98
He/Him
Experienced player (924)
Joined: 8/7/2012
Posts: 280
Location: Brazil
Phallosvogel wrote:
I think this would be better in the newbie corner, sounds like a good advice for people who are complety new to TASing or speedrunning. Then again I think the guides on the main site tell you basically anything you need to know. But thanks for the input if I might say so! On a unrelated note: What TASes were you speaking of that suffered such a high level of unoptimization? Just wondering
Well, I'm talking about most of Mario Kart Wii TASes and the new GC TASes appearing in the site. I didn't know if Newbie corner would be a good place to post a guide of optimization things. But if it's better, I can post it there.
Youtube Channel | Twitch Channel • Finished projects: GC Sonic Adventure DX - Sonic | GC Sonic Adventure DX - Tails | GC Sonic Adventure 2: Battle - Hero Story | GC Sonic Heroes - Team Sonic • Current projects: GC Sonic Adventure 2: Battle - Dark Story - 1st WIP • Paused projects: GC Sonic Adventure DX - Knuckles - 1st WIP • Individual levels records: Sonic Adventure DX | Sonic Adventure 2: Battle • My Discord: Tales98#0408
Joined: 1/3/2006
Posts: 334
I am not 100% sure either I just thought, since you are covering the basics of 3D TASing, your not unveiling seccret new techniques but more tips for beginners unfamiliar with the whole concept of making their own TASes
Active player (322)
Joined: 1/15/2012
Posts: 343
I met a problem with going straight in Billy Hatcher, it's a bit hard to explain so I made a video to show it : http://www.youtube.com/watch?v=OslohqpOjVA What should I do ?
Player (213)
Joined: 9/14/2011
Posts: 349
STBM wrote:
I met a problem with going straight in Billy Hatcher, it's a bit hard to explain so I made a video to show it : http://www.youtube.com/watch?v=OslohqpOjVA What should I do ?
How about changing the camera angle instead of player's direction? I think SM64 DS run used that trick.
Active player (322)
Joined: 1/15/2012
Posts: 343
You know what... I just realised I totally forgot the existance of the C Stick in TAS Input xD I'm going to try to move the camera, it should work :)
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
Odongdong wrote:
How about changing the camera angle instead of player's direction? I think SM64 DS run used that trick.
Hey, that's a great idea! Probably a lot easier than changing the character's direction and losing speed. I'm going to use that for SpongeBob BfBB sometime in the future. Thanks!
Skilled player (1743)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
CoolKirby wrote:
Odongdong wrote:
How about changing the camera angle instead of player's direction? I think SM64 DS run used that trick.
Hey, that's a great idea! Probably a lot easier than changing the character's direction and losing speed. I'm going to use that for SpongeBob BfBB sometime in the future. Thanks!
C stick is not really useful in a TAS where you have 360 degrees of control. Yes, moving the camra in games where you can only use the D-pad is great, but look at runs like SM64; sometimes, the TASer's play with the camera instead of using it to see better.
RachelB
She/Her
Player (130)
Joined: 12/3/2011
Posts: 1579
Odongdong wrote:
STBM wrote:
I met a problem with going straight in Billy Hatcher, it's a bit hard to explain so I made a video to show it : http://www.youtube.com/watch?v=OslohqpOjVA What should I do ?
How about changing the camera angle instead of player's direction? I think SM64 DS run used that trick.
This is pretty much how i always move when playing games. Just hold forward and adjust the camera to change my angle. It often allows much greater precision.
Editor, Skilled player (1537)
Joined: 7/9/2010
Posts: 1319
I had been asking myself if there is a RAM adress which represents the camera angle in most 3D games. This can be useful for games that auto adjust the camera or first person shooters when turning around.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
The newbie corner isn't such a great place for this thread; it's more a place for newbies to write in and experienced TASers to help them out, than for newbies to read. I personally think it's in the right forum already, although General is also a reasonable place.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
jlun2 wrote:
C stick is not really useful in a TAS where you have 360 degrees of control. Yes, moving the camra in games where you can only use the D-pad is great, but look at runs like SM64; sometimes, the TASer's play with the camera instead of using it to see better.
Well, in SM64, the camera turns a set angle every time C-left or C-right is tapped. I'm talking about lightly turning the camera by setting the C-stick to a left value of 20 (in Dolphin's TAS input window) and continuing to run forward. Unlike turning the character with the joystick, this should allow the character to keep running forward and not lose any speed.
THC98
He/Him
Experienced player (924)
Joined: 8/7/2012
Posts: 280
Location: Brazil
STBM wrote:
You know what... I just realised I totally forgot the existance of the C Stick in TAS Input xD I'm going to try to move the camera, it should work :)
Yeah, the camera is the best option in this case. Just turn the camera as fast as possible to get the most optimized angle. In Sonic Adventure DX, the main stick isn't very good neither, input goes from 80 to 110 (inputs before 80 are all the same, as well in between 110 and 147) and from 148 to 175. But in those gaps, the input is accurate enough.
TASeditor wrote:
I had been asking myself if there is a RAM adress which represents the camera angle in most 3D games. This can be useful for games that auto adjust the camera or first person shooters when turning around.
I usually use scenario as a reference to aim better to where you have to go, or use Free Look to move the camera and get a better angle to see what you're doing.
Youtube Channel | Twitch Channel • Finished projects: GC Sonic Adventure DX - Sonic | GC Sonic Adventure DX - Tails | GC Sonic Adventure 2: Battle - Hero Story | GC Sonic Heroes - Team Sonic • Current projects: GC Sonic Adventure 2: Battle - Dark Story - 1st WIP • Paused projects: GC Sonic Adventure DX - Knuckles - 1st WIP • Individual levels records: Sonic Adventure DX | Sonic Adventure 2: Battle • My Discord: Tales98#0408
Post subject: Re: [Guide] Optimizing 3D Games TASes
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
THC98 wrote:
-First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle
Actually that's not always the case. Quake is a very good example of this. Rapidly zig-zagging (ie. while moving towards your goal, alternatively press left and right) is faster than running straight. (AFAIK this is because of a small quirk in the game engine that makes you move slightly faster for a fraction of a second when you change direction, before your movement speed stabilizes to its intended maximum.) (Moreover, there's a way to move even faster by combining zig-zagging and bunny-hopping: Due to another quirk, if you jump immediately after landing from your previous jump, you don't lose any speed. This, in conjunction with zig-zagging, allows you to maintain speeds that are not possible by just running.)
Post subject: Re: [Guide] Optimizing 3D Games TASes
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
Warp wrote:
THC98 wrote:
-First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle
Actually that's not always the case. Quake is a very good example of this. Rapidly zig-zagging (ie. while moving towards your goal, alternatively press left and right) is faster than running straight. (AFAIK this is because of a small quirk in the game engine that makes you move slightly faster for a fraction of a second when you change direction, before your movement speed stabilizes to its intended maximum.) (Moreover, there's a way to move even faster by combining zig-zagging and bunny-hopping: Due to another quirk, if you jump immediately after landing from your previous jump, you don't lose any speed. This, in conjunction with zig-zagging, allows you to maintain speeds that are not possible by just running.)
There is another thing with moving diagonally sometimes in 3D games, must depend on the game... (and I don't know if it happens with Quake) Simply put, it is faster to run diagonally (still in a straight line) than just forward, or any "cardinal" direction on the controller/keyboard. Let's say you move forward and to the right at the same time. The game just combines the two movements, for example 1 (arbitrary) "unit of distance" forward + 1 unit to the right. Imagine a square: the diagonal is longer than the sides. But as I said, some games do it and others don't. It seems more frequent when you don't use an analog stick to move, but I think that it works for games like Metroid Prime for example (correct me if I'm wrong).
Post subject: Re: [Guide] Optimizing 3D Games TASes
Player (213)
Joined: 9/14/2011
Posts: 349
Warp wrote:
THC98 wrote:
-First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle
Actually that's not always the case. Quake is a very good example of this. Rapidly zig-zagging (ie. while moving towards your goal, alternatively press left and right) is faster than running straight. (AFAIK this is because of a small quirk in the game engine that makes you move slightly faster for a fraction of a second when you change direction, before your movement speed stabilizes to its intended maximum.) (Moreover, there's a way to move even faster by combining zig-zagging and bunny-hopping: Due to another quirk, if you jump immediately after landing from your previous jump, you don't lose any speed. This, in conjunction with zig-zagging, allows you to maintain speeds that are not possible by just running.)
I heard that bunny-hopping only happens in id Tech engine(or, Quake engine). Some FPS games like Half-life also has bunny-hopping but not as far distance as id Tech engine games.
Post subject: Re: [Guide] Optimizing 3D Games TASes
AnS
Emulator Coder, Experienced player (728)
Joined: 2/23/2006
Posts: 682
Warp wrote:
THC98 wrote:
-First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle
Actually that's not always the case.
I think the sentence is meant to be the most basic guideline which is as archetypal as "never release Right button even for a split second" in 2D games. I mean, the overly imperative tone of this statement inherently assumes there are game-specific exceptions and additional rules.
Post subject: Re: [Guide] Optimizing 3D Games TASes
THC98
He/Him
Experienced player (924)
Joined: 8/7/2012
Posts: 280
Location: Brazil
AnS wrote:
Warp wrote:
THC98 wrote:
-First thing you have to know about 3D optimizing is that you must hold the perfect angle in your TAS Input for EVERY move, making you go in the most straight line to the next curve or obstacle
Actually that's not always the case.
I think the sentence is meant to be the most basic guideline which is as archetypal as "never release Right button even for a split second" in 2D games. I mean, the overly imperative tone of this statement inherently assumes there are game-specific exceptions and additional rules.
Yeah, that part of the guide is for games where speed doesn't matter on your move. It's not useful for when you're using bounce glitch in Sonic Adventure 2 Battle or super swim in Zelda Wind Waker or Backwards Long Jump in Super Mario 64.
Youtube Channel | Twitch Channel • Finished projects: GC Sonic Adventure DX - Sonic | GC Sonic Adventure DX - Tails | GC Sonic Adventure 2: Battle - Hero Story | GC Sonic Heroes - Team Sonic • Current projects: GC Sonic Adventure 2: Battle - Dark Story - 1st WIP • Paused projects: GC Sonic Adventure DX - Knuckles - 1st WIP • Individual levels records: Sonic Adventure DX | Sonic Adventure 2: Battle • My Discord: Tales98#0408
Post subject: Re: [Guide] Optimizing 3D Games TASes
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Grincevent wrote:
There is another thing with moving diagonally sometimes in 3D games, must depend on the game... (and I don't know if it happens with Quake) Simply put, it is faster to run diagonally (still in a straight line) than just forward, or any "cardinal" direction on the controller/keyboard.
Yes. Especially in older 3D games they had a very simplistic manner of motion where if you pressed forward it would move forward at a certain speed, if you pressed eg. right it would move right at that same speed, and if you pressed both at the same time, those two movements would simply be summed up (meaning that your total speed diagonally would now be sqrt(2) times your normal forward speed, ie. about 41% faster.) IIRC this was the case in Doom, which is why all speedruns of it always run diagonally most of the time. They "fixed" this in Quake where diagonal movement has the same speed as forward movement. However, as said, due to some quirk, if you change from forward to diagonal, for a fraction of a second you move a bit faster.
Active player (322)
Joined: 1/15/2012
Posts: 343
Hi, I tried to make an optimized version of the first mission of Billy Hatcher, do you think it's enough optimized this time ? http://www.youtube.com/watch?v=cDbmhyrhonw
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
TASeditor wrote:
I had been asking myself if there is a RAM adress which represents the camera angle in most 3D games. This can be useful for games that auto adjust the camera or first person shooters when turning around.
Thing is, cameras in 3d space are more complicated than in 2d space. There are multiple possible representations, some aiming to avoid gimbal lock and some other variants just to make the math simpler. And then there are parameters like the field of view angle, as well as front and back culling planes. And of course, there is things related to the camera movement, like inertia and camera control.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
STBM wrote:
I tried to make an optimized version of the first mission of Billy Hatcher, do you think it's enough optimized this time ?
I haven't played or TASed the game, but it looks good to me. If you can't optimize it any more, that's when it should be (nearly) optimal.
THC98
He/Him
Experienced player (924)
Joined: 8/7/2012
Posts: 280
Location: Brazil
STBM wrote:
Hi, I tried to make an optimized version of the first mission of Billy Hatcher, do you think it's enough optimized this time ? http://www.youtube.com/watch?v=cDbmhyrhonw
Yeah, this seems much more optimized :D I just think you should test if you lose some speed jumping, if so you could save some frames at the start, dodging that guy/something you jumped.
Youtube Channel | Twitch Channel • Finished projects: GC Sonic Adventure DX - Sonic | GC Sonic Adventure DX - Tails | GC Sonic Adventure 2: Battle - Hero Story | GC Sonic Heroes - Team Sonic • Current projects: GC Sonic Adventure 2: Battle - Dark Story - 1st WIP • Paused projects: GC Sonic Adventure DX - Knuckles - 1st WIP • Individual levels records: Sonic Adventure DX | Sonic Adventure 2: Battle • My Discord: Tales98#0408
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
THC98 wrote:
STBM wrote:
Hi, I tried to make an optimized version of the first mission of Billy Hatcher, do you think it's enough optimized this time ? http://www.youtube.com/watch?v=cDbmhyrhonw
Yeah, this seems much more optimized :D I just think you should test if you lose some speed jumping, if so you could save some frames at the start, dodging that guy/something you jumped.
Oh, and while you're at it (STBM), I see that you seem to slide against walls just after jumping over the NPC in the beginning... It's very brief and I'm not certain that you touch the wall, but if it is the case, that's another thing to check. I mean, to see if you can gain time by avoiding sliding against walls.