Matt's Ramblings
Matt's Ramblings
  • Видео 20
  • Просмотров 1 115 531
I added an AI to a classic Quake mod (and it's not an LLM)
Vintage Quake mod Quess never got a CPU opponent, so I brought together some open source projects to fix this.
Bot source is here: github.com/matthewearl/quess-stockfish/
Support my channel: www.buymeacoffee.com/mattsramblings
Follow me on Mastodon: mastodon.cloud/@mattsramblings/
Chess set models based on: www.turbosquid.com/3d-models/chess-set-low-poly-2052434
0:00 Introduction
1:36 Clients and servers
3:29 Dependencies
4:53 Putting it all together
Просмотров: 9 768

Видео

Shedding light on Quake I and II lightmapping
Просмотров 31 тыс.8 месяцев назад
An explanation of how lightmaps are constructed in the classic Quake I and Quake II games, along with a look at the latest techniques developed by the community. Massive thanks to Eric Wasylishen and Paril for their help with part 3, and also to the Quake Mapping discord for their support. Get ericw-tools here: ericwa.github.io/ericw-tools/ Support my channel: www.buymeacoffee.com/mattsrambling...
I added portals into software Quake
Просмотров 21 тыс.Год назад
How I added portals into Quake's software renderer. These are gameplay portals, a bit like the ones in the game Portal, as opposed to the type used for vis calculations. Support my channel: www.buymeacoffee.com/mattsramblings Follow me on Mastodon: mastodon.cloud/@mattsramblings/ Thanks again to bmFbr for the instant teleporter feature. Download the Alkaline mod here: alkalinequake.wordpress.co...
Shooting Through Walls: Unraveling the Code Behind Quake's Lightning Gun Bug
Просмотров 42 тыс.Год назад
A slightly speculative look at how Quake's lightning gun can be used to kill distant enemies. Check out Connor from @quakespeedrunsexplained's counterpart video here ruclips.net/video/zfY96tAqmdI/видео.html Snippet at the start taken from @Muty's 11:42 world record (current at the time of writing): ruclips.net/video/PU90hSIL6Fc/видео.html Thanks to the Quake Mapping and Quake Speedrunning disco...
How Quake's software renderer ELIMINATES overdraw [⚠️ flashing images]
Просмотров 49 тыс.Год назад
A description of the techniques used by Quake to render a fully 3D game on original Pentium hardware. Support: www.buymeacoffee.com/mattsramblings Mastodon: mastodon.cloud/@mattsramblings/ 00:00 Intro 00:35 Polygons in BSP trees 01:14 Frustum culling 02:05 PVS culling 02:55 Back-face culling 03:42 Spans 04:58 Active edge list 05:51 Active polygon list 07:09 Black book
Quake's PVS: A hidden gem of rendering optimization
Просмотров 166 тыс.Год назад
A look at how Quake uses portal graphs to pre-calculate visibility information. Support: www.buymeacoffee.com/mattsramblings Mastodon: mastodon.cloud/@mattsramblings/ 00:00 Intro 00:43 Portal graphs 01:57 Visibility in a linear graph 05:15 Recursive trace Music Credits: Heavy Interlude by Kevin MacLeod is licensed under a Creative Commons Attribution 4.0 licence. creativecommons.org/licenses/by...
BSP Trees: The Magic Behind Collision Detection in Quake
Просмотров 97 тыс.Год назад
An explanation of how Quake, and other games like it, use this revolutionary data structure to stop the player from walking through walls and falling through the ground. Music Credits: Guiton Sketch by Kevin MacLeod is licensed under a Creative Commons Attribution 4.0 licence. creativecommons.org/licenses/by/4.0/ Source: incompetech.com/music/royalty-free/index.html?isrc=USUAN1100473 Artist: in...
Minecraft-style logic in Quake
Просмотров 22 тыс.Год назад
An implementation of logic gates in (unmodified) Quake, allowing constructions similar to those seen in Minecraft. Chapters: 00:00 Introduction 00:17 Logic gates in Quake 01:59 Results Music credits: Fanfare for Space by Kevin MacLeod is licensed under a Creative Commons Attribution 4.0 licence. creativecommons.org/licenses/by/4.0/Source: incompetech.com/music/royalty-free/index.html?isrc=USUAN...
Speedrun Science: Beating Quake with code
Просмотров 21 тыс.2 года назад
A look into applying optimization methods (specifically differential evolution) to improving Quake's tool-assisted speed run record. Credit goes to Jukspa for creating TASQuake and for doing the run on which this project was based. See that run here: ruclips.net/video/ekdcUOW1geA/видео.html 0:00 Introduction 0:22 TASQuake 1:06 Plan 2:36 Implementation 3:15 Optimization 3:53 E1M1 best run 5:14 F...
Swapping faces with 100,000 lines of C and 90 lines of Python
Просмотров 7 тыс.2 года назад
Back in 2015 I wrote a short Python script to swap faces from two images. In this video I explain how. Outro image credits: Original images (left and right columns) by Gage Skidmore, licensed under CC-BY-SA 2.0. Modified images (middle column) are licensed CC-BY-SA 2.0. creativecommons.org/licenses/by-sa/2.0/ Bush and Obama images are public domain. 00:00 Introduction 00:20 Loading images 00:40...
Quake E1M1 but there are 4096 grunts [4k subscriber celebration]
Просмотров 7 тыс.2 года назад
To celebrate reaching 4096 subscribers (0x1000 in hexadecimal) I packed Quake's first level full of grunts and attempted a speedrun through the level.
The code behind Quake 3's overbounce bug
Просмотров 37 тыс.2 года назад
An exploration of the code that gives rise to overbouncing in Quake 3, including variations, and tools that can be used to assist the player in performing this trick. Chapters 00:00 Introduction 00:35 What is an overbounce? 01:01 Normal overbounces 05:22 Visualization tool 05:43 Sticky overbounces 06:45 Horizontal overbounces 07:33 Diagonal overbounces 09:25 Outro
In search of the perfect speed-drift in Trackmania
Просмотров 37 тыс.2 года назад
An investigation into speed-drifting in Trackmania 2020. I extract measurements from the game to determine the optimal way to perform this trick over four of the game's surfaces. Chapters 00:00 Introduction 00:38 How to speed drift 01:33 Building a model 03:24 Results 05:10 Speed drift trainer plugin 05:39 Future enhancements 06:26 Outro
Quake path traced in Blender
Просмотров 20 тыс.3 года назад
Produced with a set of scripts I wrote to import demo files, and associated game assets into Blender. See matthewearl.github.io/2021/06/20/quake-blender/ for more screenshots and a write-up on how this was made. The run is from jukebox's 11:47 minute world-record. See ruclips.net/video/KV5S521XjOo/видео.html for a version rendered in Joequake.
Perseverance rover landing footage projected onto map
Просмотров 62 тыс.3 года назад
This is footage from the downward facing camera on the Perseverance rover during its landing, which has been reprojected onto reference satellite imagery with an added scale. Read a description of how this video was made here: matthewearl.github.io/2021/03/06/mars2020-reproject/ Credit for the source video goes to NASA, watch it here: ruclips.net/video/4czjS9h4Fpg/видео.html Credit for the refe...
The code behind Quake's movement tricks explained (bunny-hopping, wall-running, and zig-zagging)
Просмотров 123 тыс.3 года назад
The code behind Quake's movement tricks explained (bunny-hopping, wall-running, and zig-zagging)
Better Quake strafe-jumping with genetic algorithms
Просмотров 60 тыс.3 года назад
Better Quake strafe-jumping with genetic algorithms
Teaching a computer to strafe jump in Quake with reinforcement learning
Просмотров 45 тыс.4 года назад
Teaching a computer to strafe jump in Quake with reinforcement learning
Quake 3's frame rate dependent physics
Просмотров 70 тыс.6 лет назад
Quake 3's frame rate dependent physics
Strafe-jumping physics explained
Просмотров 189 тыс.6 лет назад
Strafe-jumping physics explained

Комментарии

  • @vadiks20032
    @vadiks20032 День назад

    is there a shorter way to explain it after i watched this video, knowing about wishdir and vel way, knowing all the vector stuff?

  • @ChristianIce
    @ChristianIce День назад

    Outstanding job! Any news?

  • @isadmanyt
    @isadmanyt 2 дня назад

    I thought my headphones is dead

  • @tuti-fruti9983
    @tuti-fruti9983 4 дня назад

    i dont understand anything maybe im just too dumb for that

  • @demensdeum_live
    @demensdeum_live 7 дней назад

    LOL

  • @F1nalspace
    @F1nalspace 7 дней назад

    Great explanation. How about "Zero Weird Over Bounce" or short ZWOB? There are actually some defrag maps that require such bounces and i still haven't mastered such stages yet 😞 From my understanding, you need some bindings and a very low mouse movement to make that work - but i have no idea what exactly. Btw, that OB visualization mod looks awesome! Much clearer than the one from the defrag mod itself.

  • @mohamads9759
    @mohamads9759 7 дней назад

    Very Great.

  • @MatthewCenance
    @MatthewCenance 9 дней назад

    Why are the segments called leaves? Are they using a tree analogy here? If so, what is the branch term used for?

  • @YensR
    @YensR 10 дней назад

    excellent! Years (decades) ago, I watched the trick jumping movie "Tribulations" and had no idea what was going on. This is by far the best explanation I've seen and your animations and your mod are great!

  • @sulac4ever170
    @sulac4ever170 10 дней назад

    Connor mentioned, that you've developed a tool/mod, which visualizes when the invisible beams hit enemy's (He showed it in rhe end of his video ... the one with the purple sparkles). Where did you publish it? I would like to try it out myself very much as I am sure are others 😊

  • @oaooaoipip2238
    @oaooaoipip2238 11 дней назад

    Mazing

  • @guilhermecampos8313
    @guilhermecampos8313 24 дня назад

    This is one of the coolest things I've seen about Quake. Congratulations on the work!

  • @antmoundsock1122
    @antmoundsock1122 27 дней назад

    Just watched this for the 20th time and finally understood. SO SATISFYING!

  • @kleytman
    @kleytman Месяц назад

    What is life without Quake? that's the question!

  • @davymachinegun5130
    @davymachinegun5130 Месяц назад

    Source games still do this, as it is pretty much a glorified Quake engine fork :)

  • @TheRenalicious
    @TheRenalicious Месяц назад

    Sometimes I wonder if stuff like this can be threaded to make it faster. Not that it really matters anymore, but as an academic experiment for those old dual and quad Pentium Pro setups.

  • @wolfgangfrost8043
    @wolfgangfrost8043 Месяц назад

    Holy crap... I can see why Carmack & Romero mentioned that Doom was kind of the sweet spot where the average person can reasonably understand how the engine renderer works and how building out a custom level works, where Wolfenstein was too simple create anything all that interesting and Quake is just that smidge too complex for most people to wrap their heads around.

  • @dumptruckds
    @dumptruckds Месяц назад

    Absolutely amazing work both on the mod and the presentation.

  • @Meatballs_Spaghetti
    @Meatballs_Spaghetti Месяц назад

    But doesn't it work only for static objects? I think, that for dynamic objects you need to recalculate the tree each tick

  • @JoshWhelchel
    @JoshWhelchel Месяц назад

    how do the doors work ;O

  • @reddemunn
    @reddemunn Месяц назад

    I love seeing these old game dissected, particularly quake because it's the first fps I played.

  • @senser1o76
    @senser1o76 2 месяца назад

    Great job 👍

  • @I-OMusic
    @I-OMusic 2 месяца назад

    Thank you! Scaling the dot product, max accel and run speed gives you control over the optimal strafe speed

  • @jane5886
    @jane5886 2 месяца назад

    That graphic to 3d object jumps are at 4:10 was BEAUTIFUL

  • @Pyroteq
    @Pyroteq 2 месяца назад

    Production value for this video is insane. Great job.

  • @smokey3192
    @smokey3192 2 месяца назад

    Did you share your mode?

  • @r.g.thesecond
    @r.g.thesecond 2 месяца назад

    This may seem overcomplicated for Quake but this sort of thing is EXACTLY how Doom mappers implement more complex logic in their maps. Sometimes I wish you'd get into DOOM. There is a mountain of engine knowledge and trickery there. (Well, vanilla is comparatively cut and dry, BOOM on the other hand...)

  • @r.g.thesecond
    @r.g.thesecond 2 месяца назад

    Looking back at early 3D games, it baffles me that Quake has no out-of-bounds exploit unlike its contemporaries. Probably a sign of how solid the programming of it was.

  • @LinxOnlineGames
    @LinxOnlineGames 2 месяца назад

    Out of curiosity are the individual face lightmaps stitched together into an atlas? It seems like an expensive operation to bind a lightmap texture on a per-face draw call.

  • @derick.hilllll
    @derick.hilllll 2 месяца назад

    Awesome video, thank you for it.

  • @AmaroqStarwind
    @AmaroqStarwind 2 месяца назад

    This video gives me DmRadicus (DmRadikus?) vibes. It was a non-euclidean map from the first Unreal. (Not Unreal Tournament, regular Unreal.)

  • @kvdrr
    @kvdrr 2 месяца назад

    I wish you did something similiar with VQ3 movement

  • @kras_mazov
    @kras_mazov 2 месяца назад

    I think, it would be easier, if you'd replaced bot client's models to something easily recognizable.

  • @elecman748
    @elecman748 2 месяца назад

    Chess: Combat Evolved

  • @dutchdykefinger
    @dutchdykefinger 2 месяца назад

    that thumbnail is gold :')

  • @therealshug
    @therealshug 2 месяца назад

    lol. i love the warcraft 2 voice line there for the pawn at the end, 7:32

  • @AJMansfield1
    @AJMansfield1 2 месяца назад

    chess battle advanced

  • @starc0w
    @starc0w 2 месяца назад

    Awesome!

  • @yuler_
    @yuler_ 2 месяца назад

    would love to see a video diving deeper into bots with deathmatch bots

  • @NoobZGunSync
    @NoobZGunSync 2 месяца назад

    "(and it's not an LLM)" is kinda sad. I cannot search up some good AI for games nowaday

    • @mattc7420
      @mattc7420 2 месяца назад

      People these days go INSANE at just the letters A and I a little too close together.

  • @VEC7ORlt
    @VEC7ORlt 2 месяца назад

    So, where's the AI? Right, can't use normal titles, only dumbass clickbait is allowed.

    • @Friend-
      @Friend- 2 месяца назад

      "AI" has always been the term for things like the computer playing your opponent in a board game. It doesn't just apply to neural networks.

  • @JNJNRobin1337
    @JNJNRobin1337 2 месяца назад

    finally, ai that isnt a neuronet

    • @drdca8263
      @drdca8263 2 месяца назад

      I think later versions of stockfish have a neural net as part of the heuristics used to evaluate moves? It’s possible I’m getting mixed up with a different chess engine though.

  • @sisqobmx
    @sisqobmx 2 месяца назад

    so thats why i had differt jump heights and speeds when setting my com_maxfps in call of duty modern warfare lol. Decade old mystery cracked.

  • @inzyster
    @inzyster 2 месяца назад

    Cool! One of my favorite mods from back in the day.

  • @AnOriginalNickname
    @AnOriginalNickname 2 месяца назад

    Cool project. I had starting making a stand-alone extendable Quake client in C several years ago, and I was also thinking of using it to make a Quess bot. I never ended up finishing the client though.

  • @Fantasticanations
    @Fantasticanations 2 месяца назад

    Nice chatgpt intro.

  • @brucetungsten5714
    @brucetungsten5714 2 месяца назад

    Great work!

  • @MattProud
    @MattProud 2 месяца назад

    To the question of QuakeC and its source, did you try any of the various decompilers on the progs.dat file? I'm not suggesting that this would necessarily be a super-productive errand, but it could be interesting.

    • @MattsRamblings
      @MattsRamblings 2 месяца назад

      I only tried decompiling late in development, way too late to restart. The results are impressive though, and I used it to debug some issues with the bot that had been puzzling me. I'll definitely bear it in mind for future projects!

    • @MattProud
      @MattProud 2 месяца назад

      @@MattsRamblings Which decompiler suite did you use? I used the reacc/deacc ones back in the mid-90s. They worked reasonably well, but ISTR that they produced some non-standard output that wasn't even QuakeC.

  • @appidydafoo
    @appidydafoo 2 месяца назад

    Team Impact's output was amazing. Great to see this video, I remember being desperate for someone to play Quess against as a lonely child with a really poor dialup connection. Netquake at 300ms was a slideshow.

  • @skope2055
    @skope2055 2 месяца назад

    Beautiful stuff here!