Better Quake strafe-jumping with genetic algorithms

  Рет қаралды 59,894

Matt's Ramblings

Matt's Ramblings

Күн бұрын

Пікірлер: 102
@MattsRamblings
@MattsRamblings 3 жыл бұрын
As noted in the video, the 9.688 s demo I refer to as the world record actually got beaten a few days before I finished this video. It was too late to go back and re-do everything so I left it as-is. A couple of other notes and caveats for Quake experts: - I didn't mention cl_sidespeed / cl_forwardspeed for brevity / clarity reasons, however I actually recovered these values (or rather their ratio) from the demo too by including it as an optimization parameter. Similarly, I added it as a parameter for my strafebot optimization. The demo value is cl_sidespeed 1400, and the bot selected value is cl_sidespeed 1515 (both assuming a cl_forwardspeed of 800). If I fix cl_sidespeed to 1400 my bot gets 9.580s, about 0.04 seconds slower than it does with 1515, but still about 0.1 seconds faster than the old human WR. - I'm not sure if the 3-turn method is already known. I'd love to hear from any top speedrunners if they've tried this already, and what they found.
@kamolzaaliite
@kamolzaaliite 3 жыл бұрын
By the looks of file types that quake use and other small details, cs 1.6 runs on same code. Cs 1.6 had bhopping and long jumping, long jumping is similar but it takes sometimes seven strafes to jump, only difference that i see between cs and quake is that in cs once you start bhopping you let go of w key and just use a and d keys alongside mouse inputs
@StickThisUpYourAnus
@StickThisUpYourAnus Жыл бұрын
​@@kamolzaaliite 'runs on same code' is still too big of an assumption to make. Valve might definitely have altered certain physics constants which in turn could make strafes per hop more viable for humans compared to quake
@roboman2444
@roboman2444 Жыл бұрын
Not a speedrunner, but in DM, i sometimes use 3 turn instead of my usual 1 turn.
@andrewcady8827
@andrewcady8827 Жыл бұрын
Did you try 4 turns? How many turns are possible if you don't try to play like a human at all and where does it stop giving advantage?
@somnvm37
@somnvm37 3 ай бұрын
what does cl_forwardspeed 800 even mean? isn't there a sv_maxspeed that would just limit it all
@ben_yeates
@ben_yeates 3 жыл бұрын
im sure the speedrunning community would like it if you could use this data to write a demo player movement verification tool, to help weed out the cheaters
@UsernameXOXO
@UsernameXOXO 2 жыл бұрын
I'm sure skynet wants IFF technology
@DuringDark
@DuringDark Жыл бұрын
and DON'T think we don't know how to weeeeed 'em out!
@hoo2042
@hoo2042 Жыл бұрын
Of course the community can weed out cheaters, but automated tooling to reduce the burden on mods is always appreciated 😄
@MVS0N_
@MVS0N_ Жыл бұрын
@@hoo2042 i think bro was makin a reference to the spongebob movie or im just dumb asl
@whitewolfsounds2273
@whitewolfsounds2273 Ай бұрын
Defrag servers have a pretty good anti cheat. If you use scripts, you get banned on most servers. Edit: just remembered this video is about quake 1
@HueyTheDoctor
@HueyTheDoctor 3 жыл бұрын
These videos deserve a significantly larger audience. The work you've put into them shines through.
@marcopolo8584
@marcopolo8584 Жыл бұрын
Adding more strafes has long been known as a way to gain more air speed, it's just the risk of messing up the extra strafes is commonly accepted to be not worth the speed. There's actually an entire long-jump community in CSGO dedicated to seeing how much speed one can gain during a jump with successful strafes, measured by how large of a gap you can cross in one jump. The reason being, this skill actually has practical use on some maps
@Krunklehorn
@Krunklehorn 3 жыл бұрын
Floored, FLOORED that you one-upped your previous work. Loved the wiggle worm and fascinated by the part about reversing a quantize operation. SO cool!
@greg.skvortsov
@greg.skvortsov Жыл бұрын
You should also see HL/CS jumpers as their techniques are more complex - they turn multiple times
@Go_Coup
@Go_Coup 6 ай бұрын
CS jumping is so ugly compared to the Quake games.
@maxdevos3201
@maxdevos3201 3 жыл бұрын
I wouldn't bat an eye if this video had 7 million views instead of 7,000. This stuff matches the production quality of 3Blue1Brown. Absolutely fantastic. Keep up the good work.
@UsernameXOXO
@UsernameXOXO 2 жыл бұрын
Kind words but this was recorded with the same microphone he used when Quake was released.
@onlywangs69420
@onlywangs69420 3 жыл бұрын
I don't know anything about computer science or algorithms or anything...but I did play Quake 3 a lot when I was younger. Your videos have been a great source of education and entertainment. I hope to see more videos in the future. Going to enjoy this one now
@jcStanii
@jcStanii 3 жыл бұрын
I love your videos always so interesting
@sor715
@sor715 Ай бұрын
This has been the best description of Quake netcode i've ever seen, subscribing.
@jovanrnjak
@jovanrnjak 3 жыл бұрын
I understand that these videos must take a long time to make but just gonna say that I think that if the uploads were more regular your channel would explode for sure, you've got the quality of production nailed completely.
@prasinar1337
@prasinar1337 3 жыл бұрын
Very enjoyable video, as always. I would be surprised if people didn't try fitting in more strafes per jump to get a better trajectory, but the difficulty increase is massive. Just fitting in 2 strafes with proper power bunny hop technique took dozens of hours for me and my best time is still far from the record (9.98).
@defragsbin
@defragsbin 3 жыл бұрын
This is amazing, and the presentation is outstanding. Well done!
@BarneyCarroll
@BarneyCarroll 10 ай бұрын
Fascinating. I'm not into competitive play, and I wasn't aware of strafe jumping. But I was aware of airborne turn velocity, and I always do 'wiggle jumps' when attempting to cross large gaps.
@jaythomas3180
@jaythomas3180 3 жыл бұрын
Such a good quality breakdown of your process and paired with great video editing. Keep up the great work!
@SuperSkandale
@SuperSkandale Жыл бұрын
I don't play speed jump activities but I do enjoy watching them in not too lengthy batches every now and then :). I used to play quake 3 in 1999 and 2000
@asgard2054
@asgard2054 3 жыл бұрын
Engineering at it's finest!!
@Heymisterbadguy
@Heymisterbadguy 3 жыл бұрын
Amazing channel. Am looking forward to binging your videos this weekend.
@SirPozzuh
@SirPozzuh 3 жыл бұрын
Great video, thanks for doing this. I would be interested in seeing the complete code.
@fjalar6861
@fjalar6861 3 жыл бұрын
Would be interesting to see what happens when you go to 4 or more turns per jump. Wouldn't that using the same argument as going from 2 to 3 also improve time? You probably hit another barrier at some point, but when does that happen? Would probably be even harder for a human to execute too.
@MattsRamblings
@MattsRamblings 3 жыл бұрын
I did actually try this --- you get into diminishing returns quickly (maybe 0.01s saved, but for a big increase in difficulty)
@Architector_4
@Architector_4 Жыл бұрын
I think that's why tool assisted Quake speedruns jitter left/right all the time: performing many many turns per jump is technically speaking the most optimal strategy lmao
@andrewcady8827
@andrewcady8827 Жыл бұрын
@@MattsRamblings Oh that answers my question. Very cool programming here. I didn't realize this was 2 years old when I saw it. Amazing content, beautiful animations, loved seeing the 3 turner pull ahead.
@mangefox
@mangefox 3 жыл бұрын
Fantastic visualizations and impressive results :) I love all your videos I'd love to see in-eyes view of the 3-turn method
@raretapes8057
@raretapes8057 2 жыл бұрын
absolutely incredible video. I'm jealous of your analysis skills. Like seriously fucking blowing my mind. This is the sort of stuff I wish I could do at my computer.
@aldo.express
@aldo.express 3 жыл бұрын
Loving your videos man
@starc0w
@starc0w Жыл бұрын
Wow! Very fascinating!
@360Fov
@360Fov 3 жыл бұрын
This is fascinating....You should make a 3 minute version of this called "REVEALED! Who is faster: Quake Guy or Wild Cheetah?" and do a scale experiment of the 2 running in split screen...that's the viral video to pull in the audience, then add this video to the outro card, description etc.. so people get the quality behind the quantity, so to speak. You can do follow-ups like Quake Guy vs Doom Guy, Quake Guy vs a Chocobo, Quake Guy vs Corono Virus etc....(this is all tongue-in-cheek ofc)
@astro2693
@astro2693 2 жыл бұрын
absolute gem, shame this didn't take off.
@bennettjohnson5797
@bennettjohnson5797 Жыл бұрын
You should use the number of strafes as a parameter so that your genetic algorithm has the potential to optimize its airpath and gain
@FranzJx
@FranzJx 2 жыл бұрын
nice videos
@xom.
@xom. 2 жыл бұрын
stop blasting dubplates
@sinus4784
@sinus4784 3 жыл бұрын
i love your videos, please upload more
@gloverelaxis
@gloverelaxis 3 жыл бұрын
You're a genius.
@JeremyAdcock
@JeremyAdcock 3 жыл бұрын
Amazing work! Damn, I need to get back to CPMA.
@goldnutter412
@goldnutter412 Жыл бұрын
Is Carmack actually god though ? like.. he came here to make this game to show us that we're playing a game just like it Quantum phenomena are just data availability, why compute for noone etc.. Fucking legend keep it up :)
@WiseWeeabo
@WiseWeeabo Жыл бұрын
2021: it's time to improve on quake 1 speedrunning
@Satchel_Charge__
@Satchel_Charge__ 3 жыл бұрын
Great vid but I really wish you had shown the 3-turn from first person view
@LooseGripHandle
@LooseGripHandle Жыл бұрын
If you want a better explanation on the strafejump speed acceleration techniques, I recommend watching half life speed runs with the scripts they use to gain maximum speed.
@attractivegd9531
@attractivegd9531 3 жыл бұрын
Loved it, thanks.
@NZyoutube
@NZyoutube 3 жыл бұрын
Good. You've entertained me. Now make a video covering Slash's physics in Quake Champions :D
@jamesflames6987
@jamesflames6987 Жыл бұрын
Instead of genetic algorithms for reversing the inputs, how about a breadth first tree search starting from the first frame? I'm not familiar with the technical details, but I imagine after a few hundred frames all the previous inputs up to a certain point (or at least the high precision coordinates if they are truly ambiguous) would get "locked in". This would also solve the problem of monsters, switches etc. when applying the technique to more complex demos.
@sanderbos4243
@sanderbos4243 Жыл бұрын
I'm probably misunderstanding you, but isn't the problem that with a breadth first search you have an exponential explosion of permutations it has to try out to determine the next optimal input? If you just limit it to determine a very limited number of input like 100 then you risk it getting stuck in local optima, so on a path that only seems ideal because it isn't able to do long-term strategies, no? I guess most Quake levels are linear enough for BFS to work.
@jamesflames6987
@jamesflames6987 Жыл бұрын
@@sanderbos4243 We're talking here about the process of reconstructing the input key presses from the recorded position data. All positions are only dependant on previous key presses so if you can reconstruct the earlier ones first it makes it a lot easier. While it's true that BFS will expand exponentially, because of the sequential nature of the input sequence I believe you will be able to aggressively prune the tree very quickly, as the earlier inputs get "locked in".
@sanderbos4243
@sanderbos4243 Жыл бұрын
@@jamesflames6987 Gotcha, I somehow didn't see the "for reversing the inputs" in your original comment's first sentence. Very good idea!
@SleeperJohns
@SleeperJohns 3 жыл бұрын
Unless I have the biggest human brain, a 3-turn puts more moving parts on top of Power Bunnyhopping. I'm not saying it's impossible, for me I'm just getting started with Power Bunnyhopping. A 2-turn is already proven to have a lot of moving parts, but that may be the fact that I've burdened myself by learning the standard Bunnyhop with QuakeWorld Physics first. QuakeWorld Physics completely throws the forward key out the window when you land on the ground and makes movement as effective as your framerate is. I've had 8 seconds in 100m with QW-Physics, so, this might mean we've got a ways to go in Vanilla (maybe anyways).
@blank3065
@blank3065 Жыл бұрын
Hope the algorythm picks this one up
@zholud
@zholud 3 жыл бұрын
How does the three turn strafe jump look from the players viewpoint?
@kvdrr
@kvdrr 4 ай бұрын
I wish you did something similiar with VQ3 movement
@mwhudsondoyle
@mwhudsondoyle 3 жыл бұрын
Great stuff, I've wanted to see someone do something like this for at least 10 years :) e2m1 might be a good first non-trivial one to try?
@Survivalist_Redo
@Survivalist_Redo Жыл бұрын
Disappointing that it took youtube two years to show this to me
@CH0MP4
@CH0MP4 Жыл бұрын
ugh i'm too impatient to listen to the technicalness''''''... hahaha i remember learning bhop when it was brand new to cstrike... i'd be in the opponent's spawn before they were done buying weapons. i wish i had demos in order to share the sheer, ecstatic joy of the experience ♥
@Silikone
@Silikone 3 жыл бұрын
Is there a possibility of miniscule frame time variations tampering with the results? I know from experience that forcing higher frame rates significantly impacts the player's speed. Do WR entries always use fixed time steps?
@MattsRamblings
@MattsRamblings 3 жыл бұрын
Good question. The Quake speedrunning rules stipulate that cl_maxfps is between 10 and 72, which is enforced server side. This allows some scope for speedrun tricks, and in fact, the most recent WR (9.633s) uses a trick where they set cl_maxfps to 10 right before touching the level exit trigger. There's normally a 100ms delay between hitting the trigger and the intermission being triggered (which is what counts as the finish time), however, as I understand it, limiting the framerate in this way means the delay is completed within the same frame, and so you can save around 0.1 seconds with this trick. Comparing the two demos shortly before the finish shows that in fact the current WR is slightly behind the old WR at the point of crossing the line.
@ifroad33
@ifroad33 Жыл бұрын
I don't know how the movement works in this game, but in Valve games the velocity is constant when in the air. This makes me think that it could be possible to get a faster time by just letting go of the controls, and just travel straight forwards once you've reached a high enough velocity where it would otherwise be hard to gain any more speed. Could be worth trying :)
@MattsRamblings
@MattsRamblings Жыл бұрын
Yeah, there has to be a point where you're going fast enough, and you're close enough to the end, that the extra distance gained by travelling in a straight line outweighs the speed gained from curving. I'll add it to my list of things to try out, thanks!
@Anon.G
@Anon.G Жыл бұрын
Velocity is not constant in the air for valve games
@ifroad33
@ifroad33 Жыл бұрын
@@Anon.G Perhaps not all Valve games, but at least Counter-Strike and Half-Life. With sv_cheats set to 1, you can write cl_showpos 1. This brings up some information about position and velocity. You can see that the velocity stays constant if you're in the air while not pressing anything. This is also what makes b-hopping possible because the constant velocity is transferred into the next jump if you jump quick enough after landing.
@Anon.G
@Anon.G Жыл бұрын
@@ifroad33 showpos used to not need cheats for cs, and won't need cheats for half life games. Also you've changed one massive point, you said not pressing anything. Your velocity absolutely is not constant if you are air strafing. And that is not what makes b hopping possible
@ifroad33
@ifroad33 Жыл бұрын
@@Anon.G I don't know if you got understood what I meant by my comment. I was talking about a strategy of reaching the finish line quicker by letting go of the controls somewhere close to the end, because then you could travel in a more direct line while maintaining constant speed. My explanation might have been terrible lol, but I think MattsRamblings understood what I meant in his response. Sorry if I was not clear enough in my explanation.
@Go_Coup
@Go_Coup 6 ай бұрын
Do you have any videos of your/a 'humanized' bot completing a Defrag map? I've seen a non-humanized one during a Defrag tournament, but I have wanted to see one performing something that could potentially be done by a human (not cyborg.)
@felipek.4276
@felipek.4276 3 жыл бұрын
This is so cool, amazing work. Are you planning to open source the code?
@Toothnumber-vd1nw
@Toothnumber-vd1nw 3 жыл бұрын
Nice
@Rowan2560
@Rowan2560 3 жыл бұрын
this is some harry potter shit
@conzmoleman
@conzmoleman 3 жыл бұрын
read a new book. ANY other book. just something else. for the love of god
@arminunruh452
@arminunruh452 Ай бұрын
wow
@acrobatmapping
@acrobatmapping Жыл бұрын
why is quake 3 strafing so much diff than this?
@datwolfe3512
@datwolfe3512 6 ай бұрын
I'm sorry but what does quantizing mean
@TheInevitableHulk
@TheInevitableHulk Жыл бұрын
Is the client's camera roll value ever not 0 in quake?
@bunny.bunbob
@bunny.bunbob 3 жыл бұрын
if you could do something like that for my 100m world record in quake3 (map name is un-dead!021), that would be great.
@xdxdhehe
@xdxdhehe 3 жыл бұрын
how do you make these videos :O
@ZdrytchX
@ZdrytchX 3 жыл бұрын
isnt quake 1 10fps in netcode and demos by default??
@Samopal.VanoZz
@Samopal.VanoZz 2 жыл бұрын
10 fps was an animation framerate in q1, before people was able to modify source code and increase it using interpolation. 72 or 77 server frames per second are a standart now. Mvd demos contained 19 fps somehow...
@ujin981
@ujin981 Жыл бұрын
Nobody! I said, NOBODY will ever tell me that Python is slow...
@bxlxrteeworlds8782
@bxlxrteeworlds8782 3 жыл бұрын
its 4 27 am for me and my last 2 woke braincells try to process what is going on. but you are insane.
@schiaccius1clay
@schiaccius1clay 3 жыл бұрын
ezPotat
@FURIAfdx
@FURIAfdx Жыл бұрын
this is the peek of nerd stuff
@orangehatmusic225
@orangehatmusic225 Жыл бұрын
Watching an AI figure out what people figured out in the 90's is pretty hilarious.
@the_seg_faulter
@the_seg_faulter Жыл бұрын
I'm sorry but Genetic algorithm is absolute garbage. Not sure why you would choose it over a variety of alternatives.
@YexprilesteR
@YexprilesteR Жыл бұрын
Cuz it works and it worked here?
@manuillo94
@manuillo94 Жыл бұрын
Your mouth sounds are unbearable.
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 5 МЛН
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 37 МЛН
Random Emoji Beatbox Challenge #beatbox #tiktok
00:47
BeatboxJCOP
Рет қаралды 49 МЛН
Teaching a computer to strafe jump in Quake with reinforcement learning
10:49
The Absolutely Bizarre World of Slopes in Quake
13:39
Quake Speedruns Explained
Рет қаралды 82 М.
REVEALED: Quake III's SECRET Algorithm!
17:10
Dave's Garage
Рет қаралды 509 М.
How we fit an NES game into 40 Kilobytes
12:04
Morphcat Games
Рет қаралды 3,5 МЛН
Non-Euclidean Worlds Engine
5:15
CodeParade
Рет қаралды 11 МЛН
The Making of Worms (1995) | Documentary
1:00:59
onaretrotip
Рет қаралды 34 М.
What Is The Speed of Dark?
13:32
Vsauce
Рет қаралды 23 МЛН
Strafe-jumping physics explained
4:21
Matt's Ramblings
Рет қаралды 190 М.
In search of the perfect speed-drift in Trackmania
6:52
Matt's Ramblings
Рет қаралды 37 М.
ChessNetwork vs Stockfish levels 1 through 8
44:51
ChessNetwork
Рет қаралды 391 М.
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 37 МЛН