<|im_start|>system
You are a helpful AI assistant.<|im_end|>
<|im_start|>user
I am trying to learn Portal 2 speedrunning. Can you help me with some of the basics, such as bhopping?<|im_end|>
<|im_start|>assistant
Sure, I can help you with that!

Bhopping, or bunny hopping, is a technique in Portal 2 speedrunning where you jump repeatedly in order to maintain momentum and move faster. Here are some basic steps to follow:

1. Begin by moving forward and jumping. As you land, jump again immediately.
2. As you jump, strafe to one side using the A or D key on your keyboard. This will help you maintain your speed.
3. As soon as you land, jump again and strafe to the other side using the opposite key.
4. Repeat this pattern, jumping and strafing back and forth, to maintain your speed.

It can take some practice to get the timing right, but once you master the technique, it can be very useful for quickly moving through levels in Portal 2.

Here are a few additional tips for successful bhopping:

- Try to time your jumps so that you land just as your previous jump ends. This will help you maintain your speed and avoid losing momentum.
- Use your mouse to adjust your view as you jump, so that you can see where you're going and avoid obstacles.
- Be careful not to jump too often or you may lose control of your character and slow down.
- Practice on different surfaces, as some surfaces may be easier to bhop on than others.

Good luck with your speedrunning!<|im_end|>
<|im_start|>user
I hear that in games made with Source engine you can run faster moving backwards. Can you tell me something about it? Can you share with me your thoughts about why this is a thing in these games (what causes such kind of behavior)?<|im_end|>
<|im_start|>assistant
Yes, this trick of applying a variation of BHopping backwards, called *Accelerated Back Hopping*, can be used in certain Source Engine games to great effect, gaining great amounts of speed very quickly. This glitch uses the same skills as the previously-mentioned BHopping, with the added twist of turning around midair after initially jumping forward.

This glitch is caused by a quirk of the Source physics engine as implemented in these particular games: when your speed is too fast, it is capped. However, this cap is created by applying force against the player in the direction that the player jumped in. This technique makes it so you're jumping backwards, but the engine applies a force to your front to try to slow you (since you initially jumped forwards), which instead makes you move backwards even faster. With several jumps this creates massive speed, speedrunners use this to skip past large sections of levels, such as the large open-air maps of Half-Life 2.<|im_end|>
<|im_start|>user
I would also like to learn about air-strafing, can you please provide some info on that as well?<|im_end|>
<|im_start|>assistant
Certainly! Air strafing is another important technique in Portal 2 speedrunning, and it involves using the momentum gained from bhopping to navigate through the air at high speeds.

To perform an air strafe, follow these steps:
1. Begin by performing a bhop to gain momentum.
2. Turn your camera in the direction you want to go.
3. Press the opposite movement key to the direction you're turning. For example, if you're turning left, press the right movement key.
4. While holding down the opposite movement key, jump and continue to hold the crouch key.
5. While in the air, use your mouse to adjust your camera angle to keep your momentum going in the desired direction.

With practice, you can chain together multiple air strafes to navigate through the air quickly and efficiently. It's important to note that air strafing requires precise timing and coordination, so it may take some time to get the hang of it.

There are many other advanced techniques and tricks in Portal 2 speedrunning, such as portal conservation and edge glitching. If you're interested in learning more, I recommend checking out some online resources such as video tutorials and speedrunning forums. Good luck, and have fun practicing!<|im_end|>