Can THIS win Sebastian Lague's Chess challenge?

Поділитися
Вставка
  • Опубліковано 10 січ 2025

КОМЕНТАРІ •

  • @legendgames128
    @legendgames128 Рік тому +1951

    Lol, the challenge wanted to promote readable small chess bots, but you managed to make it infeasibly readable lmao.

    • @gametechexplained
      @gametechexplained  Рік тому +335

      Well, I focused on small ;) There's a more readable version of the code on my GitHub, but it's not the prettiest code ever written either

    • @legendgames128
      @legendgames128 Рік тому +96

      @@gametechexplained Lol. Lmao. At least you have a translation for what that pawn of source code means out there somewhere.
      The important thing is that it works, such code is how Terraria runs. It ain't pretty, but it's practical.

    • @user-dh8oi2mk4f
      @user-dh8oi2mk4f Рік тому +75

      The challenge doesn’t promote readable code, it promotes readable names. There are plenty of other bs tricks to save tokens

    • @yanikb.1312
      @yanikb.1312 Рік тому +19

      When you don't want fast or efficient code, but space-efficient xd
      I hope someone makes code so optimised that it could get mistaken for obfuscated code.

    • @saihajmann6622
      @saihajmann6622 Рік тому +9

      You think I made readable code for the challenge? I barely remember what half of it does.

  • @pcoridan
    @pcoridan Рік тому +630

    That code needs to be printed onto a shirt! Awesome looking

  • @Luca_5425
    @Luca_5425 Рік тому +567

    Really cool video! Well edited, nice commentary, overall a great piece of youtube content!! Commenting for the algorithm!

    • @gametechexplained
      @gametechexplained  Рік тому +28

      Much appreciated!

    • @snk-js
      @snk-js Рік тому +6

      yes, I hope more extremely experienced people start to make content

  • @Geosquare8128
    @Geosquare8128 Рік тому +21

    funny to see how optimizing token count distorts code into the least readable garbage possible (respectfully) lmao, great video

    • @gametechexplained
      @gametechexplained  Рік тому +5

      Thank you, I take that as a compliment

    • @heavyfeather2533
      @heavyfeather2533 Рік тому +2

      Yooo, it's a pleasant surprise to see you here. I hope you're enjoying life!

    • @DarkPlaysThings
      @DarkPlaysThings Місяць тому

      You can have readable code and you can have short code. There isn't a big intersection between the two

  • @noroy-afk
    @noroy-afk Рік тому +159

    nice video man.
    good commentary / narrating, video length pretty nice and good little flow for the edit.
    keep this up, you will grow in no time
    👍

  • @OneOverPi
    @OneOverPi Рік тому +186

    You should upload a video of your bot playing itself, stockfish, or other bots.
    Really cool video, can't wait to see how well your bot scores in the end! :)

    • @gametechexplained
      @gametechexplained  Рік тому +24

      Thank you! I'll think about a video like that. I had it play stockfish and Sebastian's bot from his videos, and it lost pretty decisively to both. Can't wait either!

  • @JottHa
    @JottHa Рік тому +86

    As Luke from LMG just said on the WAN show, if you make a good video the algorithm will pick it up and show it to people. You made a fantastic video and it showed up for me!

    • @gametechexplained
      @gametechexplained  Рік тому +10

      Thank you! I am a bit overwhelmed tbh, I expected much less viewers

  • @imgajeed
    @imgajeed Рік тому +263

    How did you do the animations at 6:20 with the 3D boards? They are really awesome!

    • @gametechexplained
      @gametechexplained  Рік тому +142

      Those are made in Blender (Cycles Renderer). Most of the action happens in Blender's node-based procedural tool, Geometry Nodes (changing color, moving up and down, adding the text for both the score and the little a1, a2, etc.) Each of the boards has an invisible "empty" object, and whose Y-coordinate controls how much the board is in the "points" state (moved up/down, with color and text showing). So I only have to animate that single invisible object for the transition.

    • @imgajeed
      @imgajeed Рік тому +15

      @@gametechexplained Damn, I think I should start learning Blender's Geometry Nodes XD. (Actually I wanted to do it but haven't found a good time since…)

    • @pumpkin7976
      @pumpkin7976 Рік тому +5

      @@gametechexplained u should've done more with them, makes ur videos seem way more polished. I thought it was stock footage after u went back to a screen with a default font and badly drawn arrows.

    • @gametechexplained
      @gametechexplained  Рік тому +7

      ​@@pumpkin7976 yes, you're probably right. Making these takes me a lot of time, hopefully I'll be able to include more footage like this as I get better as this whole thing

    • @wazawoo
      @wazawoo Рік тому +5

      @@gametechexplaineddon’t listen to this foul pumpkin who is very much not in the Halloween spirit. This whole video was excellent. Animations were next level though.

  • @maxniederman9411
    @maxniederman9411 Рік тому +63

    Nice video, will definitely look forward to future ones.

  • @fdb-js5uh
    @fdb-js5uh Рік тому +17

    In modern versions of C# you can remove explicit variable type in stackalloc by wrapping it in (), like var smth = (stackalloc Type[10]); will be of type Span instead of default Type* pointer type.

    • @gametechexplained
      @gametechexplained  Рік тому +2

      Nice! I did not know this! Always great to learn new things

  • @JonasWindey
    @JonasWindey Рік тому +19

    this is insane, how can you only have 17 subs???

    • @gametechexplained
      @gametechexplained  Рік тому +6

      Thank you! I just started making videos this summer. This is only my third video ever. Really awesome to see people enjoy it. Honestly happy about every single view at this point

    • @snowfloofcathug
      @snowfloofcathug Рік тому

      Good news!

  • @Dr-Zed
    @Dr-Zed Рік тому +83

    I'm always so impressed by source code formatted to be ASCII art

    • @gametechexplained
      @gametechexplained  Рік тому +13

      Thank you. You have probably seen that donut-shaped code, which was a huge inspiration

    • @yajusgakhar6969
      @yajusgakhar6969 Рік тому +2

      @@gametechexplainedI was thinking that must be the reference/idea behind it 😂

    • @RoboticusMusic
      @RoboticusMusic Рік тому +1

      Which language(s) are best suited (most flexible) for this style of ASCII art as code? @@gametechexplained

    • @EventsKiosk
      @EventsKiosk 8 місяців тому

      Is it ASCII if it’s just a silhouette?

  • @donaldklopper
    @donaldklopper Рік тому +2

    Brilliant. Can't wait to hear from Sebastian.

    • @gametechexplained
      @gametechexplained  Рік тому +1

      Same hear! I think it'll take a bit of time. Just running those matches must take forever, unless he gets a bunch of PCs from somewhere

  • @liutaurasgaidamavicius1379
    @liutaurasgaidamavicius1379 Рік тому +45

    Great video! With this quality you will be able to go full-time in no-time 😈

  • @Greathelloboy
    @Greathelloboy Рік тому +11

    i predict that this video will blow up
    its very well made

  • @eddielally2045
    @eddielally2045 Рік тому +3

    great video, hope it gains you some recognition. The graphics were incredible

  • @dot.4069
    @dot.4069 Рік тому +2

    Amazing video, looking forwarding to seeing more videos from you!

  • @Eljay_Kay
    @Eljay_Kay Рік тому +1

    Excellent video! Looking forward to seeing your bot in competition

  • @Gunbudder
    @Gunbudder Рік тому +33

    if all your floats have similar magnitudes, its likely that scaled integers can get you much more accurate values. you can do a little analysis and see how many bits are "wasted" in your floats using some math or even just doing bitwise comparisons on the IEE 754 singles.

    • @gametechexplained
      @gametechexplained  Рік тому +3

      Yes, that is a good idea, too. Not sure about the network weights' range, but there are techniques to ensure weights stay reasonably small in absolute value (which I did not use for my network). They are halfs, by the way, not singles, so they only use 2 byte, compared to a 4 byte single. But yes, it is possible that scaled integers would have allowed me to go smaller / or better use the bits I have

  • @Rkcuddles
    @Rkcuddles 11 місяців тому

    This was great! Thanks for taking the time to edit and share your experience. Fascinating challenge!

  • @robproductionsgames
    @robproductionsgames Рік тому +8

    Nice work! I definitely struggled with this challenge and my bot used some… “unique” heuristics as opposed to your approach lol but I’m curious to see the results! Thanks for the explanations!

  • @Vanawy
    @Vanawy Рік тому +2

    Awesome content! Good luck with competition :)

  • @Meodoc
    @Meodoc Рік тому +1

    Great video! Definitely will stay around for more awesome stuff!

  • @partlysunny7214
    @partlysunny7214 Рік тому +2

    Hugely underrated channel! I love the way you explain your process quickly but simply. Keep it up!

  • @DjVortex-w
    @DjVortex-w Рік тому +47

    Limiting the program to a number of source code "tokens" is perilous if you don't also limit the length of such a token. Ostensibly a string literal is one single token, so you could have a 10-megabyte string literal containing whatever you want, and as long as you can somehow use it to execute an algorithm you can do whatever you want.

    • @simonelungarella9000
      @simonelungarella9000 Рік тому +6

      If you check the rules you'll see that this possibility has been denied by limiting namespaces and methods that are allowed to use

    • @DjVortex-w
      @DjVortex-w Рік тому +1

      @@simonelungarella9000
      Do the rules limit the length of string literals?

    • @simonelungarella9000
      @simonelungarella9000 Рік тому

      @@DjVortex-w I don't think so but you can read the following: "You may not store data inside the name of a variable/function/class etc (to be extracted with nameof(), GetType().ToString(), Environment.StackTrace and so on)".

    • @thesfreader3068
      @thesfreader3068 Рік тому

      @@DjVortex-w yes

    • @user-zz6fk8bc8u
      @user-zz6fk8bc8u Рік тому +3

      @@DjVortex-w no but in strings every character counts as a token, so no free lunch there.

  • @123gostly
    @123gostly Рік тому +1

    Loved it! Thanks for sharing in this nice video format.

  • @theforeskinsnatcher373
    @theforeskinsnatcher373 Рік тому +1

    definitely keep us updated!

  • @cleo__cleo9227
    @cleo__cleo9227 Рік тому +2

    very cool video. good luck!

  • @ccoodduu
    @ccoodduu Рік тому +1

    Interesting to see your thought process, great video!

  • @hazzabro3226
    @hazzabro3226 Рік тому +1

    Great video man!

  • @theophilewallet7795
    @theophilewallet7795 Рік тому +7

    Very good vidéo 👍, hope your channel grows, you already have one international subscriber (French). 😉

    • @gametechexplained
      @gametechexplained  Рік тому

      Thank you! Awesome to hear that people from around enjoyed my video! Hoping to see you around!

  • @BittermanAndy
    @BittermanAndy Рік тому +3

    Excellent! While I never got around to completing (or even doing very much work on) my bot for the competition, I agreed that trying to make a "good bot" is a dead end... nobody's going to make anything that will beat Stockfish, so what's the point? But making something clever / creative / visually interesting / code that's shaped like a chess piece (!) is much more interesting. Well done, and good luck in the competition!

  • @312ingsscripts7
    @312ingsscripts7 Рік тому +1

    im so glad i stumbled upon this channel

  • @TeamDman
    @TeamDman Рік тому +1

    Damn nice video, I love the rendered shots

  • @ch4rlie855
    @ch4rlie855 Рік тому +1

    8:47 absolutely killed me bro. you earned a sub, great vid!

  • @qoobes
    @qoobes Рік тому +1

    Amazing, need more people like you on youtube! Keep it up! 😁

  • @minuskelvin3619
    @minuskelvin3619 Рік тому +16

    I'm curious as to what the neural network architecture for your first attempt was? With your 4-weights-per-token packing strategy, that's an upper bound of 4096 weights, so it'd have to be pretty small. With that kind of constraint, a standard network architecture would have capped out around 5 hidden layer neurons, which wouldn't have been enough to be any good.

    • @gametechexplained
      @gametechexplained  Рік тому +7

      I use 40 features as input, and 3 hidden layers of 12 neurons each. In my experiments, I tried various sizes up to 8 hidden layers and 32 neurons each with 54 features as input, and the loss was not much lower than the 3x12 setup. I think the main issue is using features as input rather than the full chess board, because we already loose a lot of information there. However, using one 8 by 8 set of inputs per each of the 12 piece types the way many papers seem to do it would mean max out our tokens with a single layer network already.

    • @minuskelvin3619
      @minuskelvin3619 Рік тому +1

      @@gametechexplained What were the 40 features?

    • @user-dh8oi2mk4f
      @user-dh8oi2mk4f Рік тому

      Hey, it's the guy who chesses boys

  • @rainestorme4057
    @rainestorme4057 Рік тому +1

    Nice video, doing all of the things for the algorithm for you

  • @squdioodellover2589
    @squdioodellover2589 Рік тому +1

    Loved the piece weight visualisation :)

  • @sanderclaes4560
    @sanderclaes4560 Рік тому

    Really interesting video! I've been searching for content like this on youtube for a while .

  • @Bigzthegreat
    @Bigzthegreat Рік тому +1

    UA-cam is suggesting smaller creators that are high quality, and i love it

    • @gametechexplained
      @gametechexplained  Рік тому

      Thank you! Honestly, I am a bit overwhelmed with how many people watch this! I had ~200 views for my entire channel prior to this

  • @nebulaeedoto
    @nebulaeedoto Рік тому +1

    wow, i'm impressed with video quality

  • @cacaboss227
    @cacaboss227 Рік тому +1

    I thoroughly enjoyed your video!

  • @varus4827
    @varus4827 Рік тому +1

    incredible video! amazing animations aswell

  • @Pantheos
    @Pantheos Рік тому +3

    Really cool ideas, your bot is better than mine for sure :D Good luck!

    • @gametechexplained
      @gametechexplained  Рік тому +1

      Thank you, and good luck, too. Looking forward to seeing how our bots will do

  • @lusiaa_
    @lusiaa_ Рік тому

    Such a nicely made video, I'm so glad it got recommended to me. Subscribed!

  • @thenotbaldguy4263
    @thenotbaldguy4263 Рік тому +1

    actually underrated channel, the algo needs to know

  • @kvktus38
    @kvktus38 Рік тому +1

    Amazing Video man keep up the good work 🎉

  • @lluiscerda2027
    @lluiscerda2027 Рік тому

    Amazing video! Nice work!

  • @shlaps9161
    @shlaps9161 Рік тому +1

    subbed, amazing work!!!

  • @lythd
    @lythd Рік тому +1

    wow i absolutely love the aesthetic code in a pawn at the end! very good video! now im a bit nervous about my entry if u r just trying to be in the top half lmao

  • @trueberryless
    @trueberryless Рік тому +3

    Dude, I'm so hyped how insane other people went with this challenge? I didn't have that much time and brain sells as you, so I hope my bot is top 0.001% of submissions... xD

  • @petrblue
    @petrblue Рік тому +2

    Great job!

  • @harriehausenman8623
    @harriehausenman8623 Рік тому +1

    Awesome stuff! 🤗

  • @TheOriginalJohnDoe
    @TheOriginalJohnDoe Рік тому +3

    1:27 I am studying AI myself in university and I love the idea of using half-precision with hex into a combined result, that's one of those things you get taught when studying AI by asking the question: "how can we make this faster?", lovely idea!

  • @octosaurinvasion
    @octosaurinvasion Рік тому +1

    Nice work!!

  • @Julzaa
    @Julzaa Рік тому +1

    You earned a subscriber!

  • @cyb3ristic
    @cyb3ristic Рік тому +1

    great video man :)

  • @FlyGamingChannel
    @FlyGamingChannel Рік тому

    Great video. Subbed and looking forward to your next upload.

  • @senorpizza
    @senorpizza Рік тому

    For only 300 subs, the quality and amount of effort put in is amazing. Here before 1k 🎉

    • @gametechexplained
      @gametechexplained  Рік тому

      Thank you! Tbh it is still hard to believe it went past 1k now. I had 17 subs when posting this

  • @dricimourad3544
    @dricimourad3544 Рік тому +1

    Amazing video , keep going

  • @sabitastisch9228
    @sabitastisch9228 Рік тому +2

    I absolutely love it! :D

  • @antonsimkin
    @antonsimkin Рік тому +1

    Great videos, subscribed

  • @wChris_
    @wChris_ Рік тому +1

    this just goes to show, that writing small code is not the same as writing good code. (as in readable, understandable and clean)

  • @vyldim3401
    @vyldim3401 Рік тому +2

    I sooooo wanted to join this man why did I have to be busy and sick

  • @RRPLD_Ambassador
    @RRPLD_Ambassador Рік тому +2

    Where can I read about training a chess neural network?

  • @yodazen6319
    @yodazen6319 Рік тому +1

    Very entertaining !!

  • @shadowskullG
    @shadowskullG Рік тому

    I liked this video, well made and good documentary. Hope you win!

  • @Pope_Protein
    @Pope_Protein Рік тому

    Great video definitely earnt my subscription and all those to come

    • @gametechexplained
      @gametechexplained  Рік тому +1

      Thank you, and welcome on board

    • @Pope_Protein
      @Pope_Protein Рік тому

      @@gametechexplained I'll definitely be watching in future, remember me before you become famous 🤣

  • @mr_waffles_the_dog
    @mr_waffles_the_dog Рік тому +1

    My thought is whether you can save more tokens by have the initializers expand out the compressed boards. The initializers would become a bit bigger, but you'd save tokens on access

    • @gametechexplained
      @gametechexplained  Рік тому +1

      I am not sure I fully understand... What do you mean by expanding out the compressed boards?

  • @gotMylky
    @gotMylky Рік тому +1

    Excellent work, earned a sub :)

  • @moxiwolf
    @moxiwolf Рік тому +1

    I'm going to quote my TA after showing her a code I made while on double the recommended daily does of NyQuil:
    "what have you done?"

  • @justinshin6867
    @justinshin6867 Рік тому

    Loved this video!

  • @maxfarouk3407
    @maxfarouk3407 Рік тому +2

    Very cool man. When i saw sebastions video i got quite peaked. I havent followed that series though as i mostly followed his unity stuff and i feel more comfortable in python. Youre video is great and its really cool what more experienced programers are capable of. Its onspiring to know that im not so far from stuff lole this.

    • @gametechexplained
      @gametechexplained  Рік тому +2

      Great to hear! I did not know anything about Chess AI before watching his videos either. One thing I really love about his channel is that he can make you feel like you truly understand the all the basics of an entirely new thing in about 45 minutes

    • @maxfarouk3407
      @maxfarouk3407 Рік тому

      Agreed@@gametechexplained

  • @sumongus
    @sumongus Рік тому +2

    I was totally not expecting that reformat at 9:17, but it looks awesome nonetheless! (readability has left the chat)

  • @U_Geek
    @U_Geek Рік тому +3

    Meanwhile I submitted Bob,a simple minded bot who only follows checks, captures and attacks and can run away if in danger. But you know what I had fun building Bob.

    • @gametechexplained
      @gametechexplained  Рік тому

      That is the most important part! Looking forward to seeing how your bot does

    • @user-dh8oi2mk4f
      @user-dh8oi2mk4f Рік тому

      I can definitely see this creating a completely hilarious game where Bob takes a bunch of pieces then starts running it's king to the other side of the board

  • @JirkaKlimes_
    @JirkaKlimes_ Рік тому +2

    This video was awesome! Thanks. (+sub)

  • @Blackfire123creation
    @Blackfire123creation Рік тому

    Very engaging Video! I'm curious to see how you bot does in the competition.

  • @pseudo_goose
    @pseudo_goose Рік тому +1

    I dont know much about C#, but if it has "bytestring" literals, you could use those to compess any table into just one token (or even combine all tables into one long string). Trade-off is that element access is more complex, not 100% sure that it's worth it

    • @gametechexplained
      @gametechexplained  Рік тому

      I should've probably mentioned this, but string literals cost one token per character

    • @pseudo_goose
      @pseudo_goose Рік тому

      @@gametechexplained Dang, Sebastian thought of everything.

    • @user-dh8oi2mk4f
      @user-dh8oi2mk4f Рік тому

      @@pseudo_goose Not really, there were a lot of people who submitted issues to github outlining these flaws in the initial challenge.

  • @domasinkujur258
    @domasinkujur258 Рік тому

    you know he is great at coding when his code indentation looks like the project thumbnail itself

  • @vigigamehacker123
    @vigigamehacker123 Рік тому +1

    Would love to see a video focused solely on building that first neural network

    • @gametechexplained
      @gametechexplained  Рік тому

      I thought about how much detail to add about that bot. But tbh making videos takes a lot of time for me, so I could not really go into detail about both. I might make a video about a different neural network project in the future

  • @norude
    @norude Рік тому +1

    I really think that for you to leave the beeping in would be awesome.

  • @pegrat
    @pegrat Рік тому +1

    this is AWESOME!

  • @speedg
    @speedg Рік тому +1

    cool video, nice throwback to the donut shaped donut code

    • @gametechexplained
      @gametechexplained  Рік тому

      Yes, that was definitely the main inspiration in terms of formatting

  • @Koutsie
    @Koutsie Рік тому

    nice video, well edited too and about a interesting topic!
    subscribed!🎉

  • @General12th
    @General12th Рік тому

    This is amazing!

  • @duckyyaboi3129
    @duckyyaboi3129 Рік тому +2

    Just wanted to say the quality on this video was outstanding for how low views it has!

  • @artemon121
    @artemon121 Рік тому

    Awesome video!

  • @Aidiakapi
    @Aidiakapi Рік тому +3

    If tokens are counted, why not just have one really big string literal containing all the data? It's one token, no matter how large it gets (unless it's an interpolated string).

    • @rutabega306
      @rutabega306 Рік тому

      I wondered about this too, seems like one could serialize a massive NN this way

    • @gametechexplained
      @gametechexplained  Рік тому +3

      It's a good idea, but a string literal actually counts as one token per character in this competition. I probably should have mentioned that

  • @ReinkeDK
    @ReinkeDK Рік тому

    Amazing work :)

  • @ConBomb
    @ConBomb Рік тому +1

    Wow this was a great video. I also made a bot for the challenge but it was nowhere as good as yours.

  • @DreadKyller
    @DreadKyller Рік тому

    One thing I don't see anyone saying is that you could have removed the static and readonly modifiers, not good practice but they are tokens and don't need to be static to make the code work.
    Also it may be a bit on the more iffy side but the tables could have been stored as strings that are then converted to bytes to possible save more as well, I don't know where the border of the spirit of the competition ends compared to the absolute limit of what can be done, because there are optimizations that likely wouldn't be within the spirit of the competition even if it's not against the rules of it, I don't know whether encoding data like that in a string would have crossed a line, unlike WarpRulez I'm not referring to encoding data and instructions in a string, just the table data, but still same debatability.

  • @SuperGamersgames
    @SuperGamersgames Рік тому +1

    Heh, that last touch was amazing. :P

  • @wingdinggaster6737
    @wingdinggaster6737 Рік тому +1

    You should independently rebuild this with a slightly higher token limit. Perhaps shape it like a knight/bishop

  • @febejo404
    @febejo404 Рік тому +6

    Great video!
    Did you format you code into an image by hand or is that an extension?

    • @gametechexplained
      @gametechexplained  Рік тому +9

      I did it by hand. I used a small black and white picture as guidance. However, the footage in the video is actually not me hand-formatting, but it's a small script I wrote that does the changes more optimally and quickly, to generate a smoother video. The script got the hand-created final result as input and calculated the changes needed

    • @ersinbasaran
      @ersinbasaran Рік тому

      @@gametechexplained that's even more impressive ❤

  • @OmateYayami
    @OmateYayami Рік тому +1

    Is this new gen of programmers rediscovering demo scene in high level language? Reminds me of those music/graphic pack into tiny binaries. Younger folk who used cracks might recognize the music lol.

  • @Socsob
    @Socsob Рік тому +1

    You know a tech video is good when you start getting imposter syndrome

    • @gametechexplained
      @gametechexplained  Рік тому +1

      Thank you! Well, it's a 10 minute version of a monthlong project, so it's mostly the highlights. Conveniently leaving out the part where I spent an evening figuring out why it returns invalid moves every now and then

  • @worldadmin9811
    @worldadmin9811 Рік тому +1

    excellent work

  • @triplebog
    @triplebog Рік тому +1

    Fantastic video!! I wonder if anyone used any tricks from the demoscene community. Like I think it's not uncommon for them to store their entire script in a zipped format, and then to have a little piece of code that runs at the start to unpack the rest of the code and then run it.
    Obviously things are a bit different since they are optimizing for raw script size and you are optimizing for tokens. But that could potentially be an interesting avenue. (If it's even possible in c# I have no idea if it would be)

    • @gametechexplained
      @gametechexplained  Рік тому

      I think it would be possible. There's an interesting trade-off between efficient packing and code needed to unpack, but this would definitely be interesting to try

  • @thephoenixsystem6765
    @thephoenixsystem6765 Рік тому +1

    I don't know what art is, but I know this is art.