JoeCoup
JoeCoup
  • 15
  • 68 375
I Made An Unbeatable Game Pigeon AI
A video all about Filler (Game Pigeon game) and using a minimax alpha beta pruning algorithm to make an engine for it.
My code on GitHub:
github.com/swoyer2/Filler-AI
The website featured is here: itsasshrimpleasthat.github.io/FillerSolver/
Special thanks to the Manim community for helping me make the visuals for the algorithm portion, without them it would have taken me a lot longer to figure out.
Twitter: x.com/Swoyer2
zhlédnutí: 14 849

Video

I had one hour to make a game in Godot
zhlédnutí 1,8KPřed 14 dny
A short challenge video on trying to make a game in godot. The related video I mentioned can be found here: czcams.com/video/Xz59sguDmMM/video.html I am making a bigger video project right now so if you are interested subscribe :)
I Tried 3D Modeling. It Took a While...
zhlédnutí 191Před 21 dnem
A different video then my other ones let me know if you liked it. The program I use can be found here. BlockBench: www.blockbench.net/
Who makes the best Godot Tutorial
zhlédnutí 10KPřed měsícem
Tutorials mentioned in the video Brackeys: czcams.com/video/LOhfqjmasi0/video.html GDQuest: czcams.com/video/GwCiGixlqiU/video.html Bramwell: czcams.com/video/sVsn9NqpVhg/video.html This video is just going over some tutorials I did while learning godot and giving my opinion on them. It is not that serious, all of the videos mentioned were great. :)
How Video Games Do Movement
zhlédnutí 2,3KPřed měsícem
A video about game movement and the math behind it. This also helps show how to implement game movement using vectors. Godot Docs On Vectors: docs.godotengine.org/en/stable/tutorials/math/vector_math.html
Make a Color Palette in 3 Minutes
zhlédnutí 3,4KPřed měsícem
This is a video about choosing colors for a color palette in pixel art. I used aseprite in the video. I also explain HSV, hue shifting and some saturation stuff.
Few People Know These Hidden Aseprite Features
zhlédnutí 14KPřed měsícem
Five features in Aseprite that are not immediately obvious. The outline tool, shading tool, convolution matrix, color picker outside of aseprite, and importing a gif. Lmk if you like the video!
Pygame In 3 Minutes
zhlédnutí 478Před 2 měsíci
The basics of pygame in 3 minutes. Github repo for this project: github.com/swoyer2/tutorialVideo
Evolution of Hello World!
zhlédnutí 93Před 2 měsíci
Hello World in a bunch of programming languages. I know I missed FORTRAN, COBOL, B, SQL, MATLAB, Objective-C, Perl, VisualBasic, Lua, R, Ruby, Scratch, PowerShell, Go, Dart, Kotlin, TypeScript, Swift, etc.
Is it possible to have all traits in TFT
zhlédnutí 92Před 4 měsíci
A video using some math to find if it’s possible to get every trait activated in TFT. The ending audio is misplaced :( This took me a while to make so I'd appreciate any support :)

Komentáře

  • @DanDart
    @DanDart Před 3 dny

    I have played several single player versions of this, haven't had anyone to play the multiplayer ones. I wonder who invented the concept?

    • @JoeCoup1
      @JoeCoup1 Před 3 dny

      Idk! The first I’d ever seen it was on game pigeon

  • @antihenti1476
    @antihenti1476 Před 4 dny

    noice

  • @timbobjones7096
    @timbobjones7096 Před 4 dny

    Good work! My only qualm with the video is that it doesn’t last longer. You have a sensual voice! I repeated this video many times last night for the sake of the algorithm and also my pleasure.

    • @JoeCoup1
      @JoeCoup1 Před 4 dny

      I was wondering why I kept getting views from the same IP

  • @DB_RR
    @DB_RR Před 4 dny

    this guy seems like someone i would've been best friends with when i was five seriously this guy is awesome

  • @Starwort
    @Starwort Před 4 dny

    This shouldn't have been ended at this step; green doesn't quite have half the board yet. I'd guess you're counting all pieces of the active colour rather than only those in the filled group, which could affect strategy

    • @JoeCoup1
      @JoeCoup1 Před 4 dny

      If I remember correctly it’s because it detected a win 12 moves ahead

    • @Starwort
      @Starwort Před 4 dny

      @@JoeCoup1 fair enough; IMO for a proper AI it should still take the game to a guaranteed win (i.e. no combination of moves prevent a win; this is automatically the case when you control 1 square more than 50% of the board; so branches can end there rather than at the conclusion of the game), but this explanation makes sense (and the correct follow up, yellow, is trivially obvious)

  • @Philyshark7
    @Philyshark7 Před 4 dny

    I made this for filler too but my computer couldn't run it 😭

  • @sekgetto
    @sekgetto Před 5 dny

    Thats not AI, just an algorithm. Stop slapping that fucking buzzword on every fucking thing.

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      AI is just algorithms sekgetto

  • @thecoweggs
    @thecoweggs Před 5 dny

    cool

  • @DavidThomas005
    @DavidThomas005 Před 5 dny

    Beautiful concept. With some better editing and video structure you can pop off man.

    • @DavidThomas005
      @DavidThomas005 Před 5 dny

      Right now it feels like there are large chunks of highly edited and large chunks of completely unedited parts of the video. The ending was extremely abrupt and felt like you rushed to finishing the video. With just some practice on creating a winning formula your content is bound to succeed. Absolutely loved the video but I think there is a ton of Enhancement that can still be made. Wishing you the best man

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Thanks man! I agree, I just need more practice but I’m getting better :)

  • @aze4308
    @aze4308 Před 5 dny

    nice

  • @cocoacocoabeansbeans

    Hello! I am ItsAsShrimpleAsThat, the person who created the engine you tested yours against. I was originally going to make a video about mine, but now that this video exists (with an engine that works nearly identical to mine), so I probably won't anymore. I would love to see the code open sourced so I can compare the differences to see exactly what is making it take 3 hours to search to a depth of 18. Great video though! Hope to see more great work in the future!

  • @user-ws7kp1yh9l
    @user-ws7kp1yh9l Před 5 dny

    Have you tried transposition tables/iterative deepening? It should speed up search quite a bit if you don’t have that

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I have not! Maybe in a future video

  • @fungi1
    @fungi1 Před 5 dny

    i love your banner and profile picture

  • @TheLinkr
    @TheLinkr Před 5 dny

    Its "mar-key" not "mar-ket"

  • @JoeCoup1
    @JoeCoup1 Před 5 dny

    What game should I do next?

    • @alek002
      @alek002 Před 5 dny

      Do 8 ball

    • @potatojuiceultra
      @potatojuiceultra Před 5 dny

      i think knockout would be super interesting, it is the main game i think of as a "gamepigeon original" although it would definitely be more complicated to implement since there are wayyy more than 4 possible moves

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      that is my second favorite game on there (Not including chess)

    • @roazim
      @roazim Před 5 dny

      do word hunt. seems pretty easy to code. you'll probably have to use a dictionary api tho

    • @user-ws7kp1yh9l
      @user-ws7kp1yh9l Před 5 dny

      Chess, Ataxx, Go

  • @brazilian-butt-lift-drizzy

    Wouldn't an mcts do a better job?

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Did not know about it at the time!

    • @user-ws7kp1yh9l
      @user-ws7kp1yh9l Před 5 dny

      why would it? this game seems rather simple for mcts

    • @brazilian-butt-lift-drizzy
      @brazilian-butt-lift-drizzy Před 4 dny

      @@user-ws7kp1yh9l A. no heuristic B. Filler has many moves but low number of possible actions

  • @sneakpanda91895
    @sneakpanda91895 Před 5 dny

    maybe add some music? idk

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      thought about that, I kind of agree

  • @maker0824
    @maker0824 Před 5 dny

    This feels like you don’t even need to use minimax for this

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Are you saying just do the color with the most squares each turn? If that was the case then it’s pretty easy to beat, you can just go section off a big portion of the board and you will win

  • @Gyro3630
    @Gyro3630 Před 5 dny

    make it public plz

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I will soon! Just gotta clean it up. :)

  • @tracer8115
    @tracer8115 Před 5 dny

    Great video, the editing was super clean and easy to follow. I’d love to read your implementation!

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      thank you! I gotta get working on cleaning it up lol

  • @denatle
    @denatle Před 5 dny

    alpha-beta pruning is simple, you should've implemented it

    • @denatle
      @denatle Před 5 dny

      nvm, you did. i guess it is python slowness than

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Maybe, I thought that. I tried doing Cython but I couldn’t get it to compile and decided it wasn’t worth it

    • @denatle
      @denatle Před 5 dny

      @@JoeCoup1 i think i will try remaking this project in go or zig some time. just to see how fast can it be

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Lmk if you do! :)

    • @denatle
      @denatle Před 5 dny

      @@JoeCoup1 thank you for inspiration :3

  • @nonik_9265
    @nonik_9265 Před 5 dny

    It looks awesome man, good job. I use blockbench too, its pretty good, but I hate animating cuz theres no deformations and it look kinda weird lol

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      thanks! I liked using blockbench but don't know how much more I will use it tbh. 3d games aren't really my thing for game dev

    • @nonik_9265
      @nonik_9265 Před 5 dny

      @@JoeCoup1 I get it, I have made a lot of 2d games too, didn't publish any but we don't talk about that lol, idk its easier and fun. But recently I found 3d to be pretty good and a fun challenge, I used gamemaker and now am using godot

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I have an idea for a 3D game just don’t know when I will get around to it. How are you liking godot? I find it’s really easy to do things

    • @nonik_9265
      @nonik_9265 Před 5 dny

      @@JoeCoup1 Its pretty good, haven't finished any games on it though, it makes everything pretty easy, I did some networking without any line of code its great, I do like hard coding some aspects tho, and thats a big turn off for me in 3d in general

  • @itsnottylor4011
    @itsnottylor4011 Před 5 dny

    Did you implement alpha beta pruning in your bot? There is no need to continue down the worst options for more than a couple moves. This would drastically minimize the computing time, because you're not checking exponentially many cases anymore.

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I did! I started editing/explaining alpha beta pruning in the video and it just was too much for what I wanted the video to be. I didn’t want to lose people from seeing the end result by explaining a topic that could be a bit confusing

  • @qwertyfreak0
    @qwertyfreak0 Před 5 dny

    Great video! Although youtube algo scaring me, i literally just did this like last month. Give a shot into move ordering and transposition tables to speed things up :) theres a LOT that can be done!

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Hmm I don’t know about those! Gonna look into it

  • @mankifg
    @mankifg Před 5 dny

    great video :)

  • @noobyplayz2840
    @noobyplayz2840 Před 5 dny

    i didnt know this puzzle game had a 2 player verison

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      What is the one player version called?

  • @tamirco_
    @tamirco_ Před 5 dny

    Great video but I had no idea what "Game Pigeon" was, so the title and beginning was pretty confusing.

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Hmm, I figured that might happen. Do you use android? Game pigeon is an IOS exclusive, but it’s very popular among IOS users

    • @tamirco_
      @tamirco_ Před 5 dny

      @@JoeCoup1 I use Android, and iMessage is also not as popular where I live (and frankly I think it's not very popular outside of the States at all).

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      yeah pretty sure that is true, thanks for watching the video regardless!

    • @NolanHOfficial
      @NolanHOfficial Před 5 dny

      ​@@JoeCoup1why not androd

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      wdym? Why don't I have android? My phone was a gift that's why. As to why game pigeon is not on android, it probably has to do with how imessage is different than a standard text

  • @k4kadu
    @k4kadu Před 5 dny

    that's fun

  • @umikaliprivate
    @umikaliprivate Před 5 dny

    I think you can just calculate which color is the most common next to your color border, and switch to that color.

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      But sometimes the color that is less common will lead to a better board later on, like sometimes choosing a “worse” move will make your opponents move bad therefore making it a good move

    • @Philyshark7
      @Philyshark7 Před 4 dny

      This is like saying in chess you can just take the highest value piece you can with no consideration for anything else

    • @umikaliprivate
      @umikaliprivate Před 4 dny

      @@Philyshark7 I would argue this is not really the same, because chess is a very complex game, where very importantly the opponents interact a lot with each other.

    • @Philyshark7
      @Philyshark7 Před 4 dny

      @@umikaliprivate In filler the opponents also interact for example choosing a color blocks the opponent from choosing the color; and where you expand also changes where you should expand. Its the difference in being shortsided with attacks vs looking ahead

  • @angelfire9622
    @angelfire9622 Před 5 dny

    Really nice, I never heard about this game but it's cool seeing minimax used for other things than a chess engine or tic tac toe

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Yup! Mini max is fun to see in games. I want to use it more/use other game solver algorithms

  • @Mr.MaccaMan
    @Mr.MaccaMan Před 5 dny

    Underrated asl but I got a feeling this will blow up

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Thanks man, I’m hoping it will too :)

  • @Judbutnotspud
    @Judbutnotspud Před 5 dny

    I’m not gonna lie I think Monte Carlo tree search would play significantly better, but cool video nonetheless!

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I have never heard of that, gonna spend 30 minutes at work reading about it lmao Edit: I just read up on how it works and that’s super interesting. Never thought about that before. Thank you!

    • @computerKwastaken
      @computerKwastaken Před 5 dny

      @@JoeCoup1 Any plans to implement it in an updated video? This video seems pretty cool

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      Either that or I implement it in a different game. Do you have any ideas for a game?

    • @ianmoore5502
      @ianmoore5502 Před 5 dny

      ​@JoeCoup1 it would be legendary

    • @bartekoo2197
      @bartekoo2197 Před 5 dny

      @@JoeCoup1connect four?

  • @darqed
    @darqed Před 6 dny

    really cool video for only 500 views

  • @matts.1352
    @matts.1352 Před 6 dny

    There's a strategy to these type of games that min-max doesn't notice at lower depths. The key is that "score" doesn't matter at all, control of the board does. You want to grow towards the middle as quickly as possible. From there, you want to grow to the corners as quickly as possible (not the starting corners, but the other two). This cuts the opponent off from most of the board making it impossible for them to gain a majority of squares. You can do this in three stages: first use A* to travel towards the middle as quickly as possible. Second use min-max to travel towards the corners while maximizing "control" of the board (i.e. squares that are closer to you than to your opponent). Third, once you've expanded as far as possible towards the corners, use min-max to optimize control of squares that aren't totally blocked-off by you or the opponent. Not strictly the most optimal strategy, but it runs faster on larger boards or when more colors are involved. Genetic algorithms may be able to converge on a better strategy given enough training.

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      Interesting! I thought about a similar idea but I wanted to try and solve the game, so if I solved it then it didn’t matter. However my code was just too slow to solve it and maybe something like this would have been useful

    • @Pystro
      @Pystro Před 5 dny

      You could probably modify this AI very easily by weighing the squares by how strategically valuable they are. I.e. score for player A is the sum of [distance from A corner] for all squares controlled by A. Similar for B; And then as usual the advantage is the difference of the scores. My initial thought would have been to use the distance from the starting square as the weight, specifically Manhattan distance. But that would weigh something along the edge the same as something in the center (and Euclidian distance is even worse). You could also use [distance from one of the edges adjacent to your start] times [distance from the other edge], or for short X*Y, but that would place basically zero weight on the edge positions, unless you do (A+7)*(B+7)-7² or something like that, where you can tweak the exact value you add. If you simplify this, you see that it's actually A*B +(7A +7B), or a small amount of the multiplied weight with a larger amount of the Manhattan distance weight.

    • @JoeCoup1
      @JoeCoup1 Před 5 dny

      I saw something similar for chess where they used like a hashmap to store where each piece had a value associated with a square, center tending to be the best. Would be interesting and probably work

    • @tomtravis858
      @tomtravis858 Před 5 dny

      In this case I would be very surprised if it mattered, board control is already being considered because of how deep it is searching, if the ai searching a branch where it fails to properly handle board control then it will score less and be less favored.

    • @Pystro
      @Pystro Před 4 dny

      @@tomtravis858 Yes, board control doesn't _really_ matter, *if* you just look far enough ahead. But you can say the same about the score; *if* you look far enough ahead then you only need to know who holds more area, not _how much_ more. The differences between score functions _theoretically_ don't matter, but they come into effect if you can't look enough moves ahead to cover the whole game, or if you do A-B pruning. If the score more accurately reflects who is going to win, then you can get away with looking less moves ahead, and you can prune more aggressively, speeding up the AI. Then again, the score functions should agree at the point where the game is finished. Which the score function that I proposed doesn't. If there's a single center square and 2 or more edge squares available, my AI would _ALWAYS_ prefer the center square, even in the end game. You probably need to interpolate between a position- and control-quantifying function and the pure score based on how many squares are still up for grabs.

  • @mathematicalmachinery7934

    Do you think you could optimize it by measuring the area within the border instead of the area currently claimed? For example, at 5:00 or 5:01 (after claiming cyan then green), there is an area of 7 blocks in the lower right that you don't have to worry about your opponent claiming

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      Yes! I thought about this but I was trying to get my code to see far enough out that it wouldn’t matter. I wanted it to realize it was suboptimal by just scanning the entire game possibilities. However it was too slow, so something like what you suggest probably would improve its strength a bit

  • @qu765
    @qu765 Před 6 dny

    "3d vectors are pretty similar" bro hasn't heard about of quaterions lol i appreciate your explanations of entry level stuff tho, i really could have used this ten years ago

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      I’ve heard of them lmao. Never used them in game dev though. I only make 2d games lol :)

  • @qu765
    @qu765 Před 6 dny

    how more advanced game solver programs work is instead of using an arbitrary heuristic like your pieces vs their pieces they do this: First the make it with min max with an arbitrary heuristic and simulate a ton of games and moves do every game to completion but they store every move very carefully then they use that as training data to train a machine learning model to be able to predict which side will win then they use min max algorithm again but instead of an arbitrary heuristic, they use the ai model. With a better heuristic, a better game solver, sooo they do a lot more simulating and genereating more new better training data they then make a new ML model to predict the winner from that then use that to make more training data to make anouther model and on and on and on then eventually you have something really really good

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      That’s very interesting! Thank you

  • @AydensWorkshop
    @AydensWorkshop Před 6 dny

    Saw your video on my CZcams homepage. Great video!

  • @kimnasayao5549
    @kimnasayao5549 Před 6 dny

    great video!!! you got yourself a new subscriber

  • @jackob1720
    @jackob1720 Před 6 dny

    bro made a better game in an hour than I did in a lifetime. Sub and like!

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      The game I made sucks! I bet you can do better :)

    • @jackob1720
      @jackob1720 Před 6 dny

      @@JoeCoup1 :)

  • @error-my9ut
    @error-my9ut Před 6 dny

    dude games have not become easy u made an easy game+ it doest take tht long to write 3 lines and adding the collider to the coin so it gets destryoed and then add a random function for x and y which will give random values and u can instantiate the coin prefab to make the new coin spawn in ,good work tho

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      My statement was more so that games have become easier to make. A lot of people seem annoyed at me saying “easy to make”, I really just meant easier

  • @electraheart5749
    @electraheart5749 Před 7 dny

    Never heard of that game before

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      Game pigeon or Filler?

    • @electraheart5749
      @electraheart5749 Před 6 dny

      @@JoeCoup1 Filler, though I haven't heard of either. I am just here to watch you grow, came because of TFT

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      I haven’t played TFT since I started that video on it lmao. I really like the game but it’s hard for me to just play casually and not devote 6 hours a day to it

  • @viceversaanimates7398

    Bro this video did waaaay too bad for what it is. Geez.

    • @JoeCoup1
      @JoeCoup1 Před 7 dny

      Wdym?

    • @Malikx
      @Malikx Před 6 dny

      @@JoeCoup1 hes talking about the views he saying it got way to little views for how good it is

    • @JoeCoup1
      @JoeCoup1 Před 6 dny

      Oooo, I think this is my best video but it’s really niche so idk how it will do

  • @faithmiller9876
    @faithmiller9876 Před 7 dny

    :p

  • @electraheart5749
    @electraheart5749 Před 13 dny

    That sounds pretty ineffective though

    • @JoeCoup1
      @JoeCoup1 Před 13 dny

      Yeah I’m not sure if it really worked lol

  • @martinithechobit
    @martinithechobit Před 13 dny

    Ty for the comparisons. Asking the real questions.

    • @JoeCoup1
      @JoeCoup1 Před 13 dny

      Thank you for watching :)

  • @nekoashidashi
    @nekoashidashi Před 13 dny

    Yeah, I mean it is a lot easier and more accessible these days, but not exactly "Insanely Easy" without a programming language or prior coding experience.

    • @JoeCoup1
      @JoeCoup1 Před 13 dny

      What I meant was easier than most people think :)

  • @obitron7
    @obitron7 Před 13 dny

    im a roblox studio dev wrong side of development

    • @JoeCoup1
      @JoeCoup1 Před 13 dny

      I am kind of interested in roblox dev, never played the game though