Learning pygame by creating Snake [python tutorial]

A tutorial to teach you the fundamentals of pygame by creating the classic snake game. It is designed for absolute beginners, so you don't need to know any pygame; but you would need knowledge of basic python. But besides that, the project should be useful to understand a slightly more complex project, how to use python classes and how to create a basic game in general.
Hope you enjoy :)
The project file is available here: github.com/clear-code-projects/Snake
Timestamps:
0:00:00 - Intro
0:00:40 - How games work
0:02:52 - A basic intro to pygame
0:12:26 - Drawing in pygame
0:29:25 - The logic of snake
0:30:29 - Setting up the board
0:43:42 - Creating the snake
0:49:00 - Moving the snake
0:57:19 - Make sneck munch!
1:06:45 - Game over states
1:16:17 - Creating the fruit graphic
1:18:27 - Creating the snake graphics
1:38:45 - Grass pattern
1:44:25 - Adding the score
1:56:50 - Adding the sound
2:00:32 - Final tweaks

Пікірлер: 602

  • @ClearCode
    @ClearCode3 жыл бұрын

    Slight correction at 0:03:12 the text at the bottom is supposed to say python 3.9 not pygame 3.9

  • @hariharanthegreat5576

    @hariharanthegreat5576

    3 жыл бұрын

    Can you give link to assets you used here

  • @ClearCode

    @ClearCode

    3 жыл бұрын

    @@hariharanthegreat5576 check the video description, there is a link to all the files :)

  • @aarushpal3736

    @aarushpal3736

    3 жыл бұрын

    you are so sensitive to your mistake love it xD :->

  • @jakelanghel8917

    @jakelanghel8917

    3 жыл бұрын

    do you hav a link to all the graphics you used??

  • @jakelanghel8917

    @jakelanghel8917

    3 жыл бұрын

    nvm I didn't notice the github link lol thank you.. I've been trying to teach myself how to program and this is by far one of the best tutorials I have found for free!!! super detailed and you explain everything!! alot of other tutorial I felt like I was just copying what they were doing but not rly understanding why im doing it!! thanks again

  • @marnierogers3931
    @marnierogers39312 жыл бұрын

    If anyone is new here and gets stuck around the 40min mark returning an attribute error. Try adding a double underscore before and after __init__. I just learnt a looooong lesson that I'll now never forget! haha

  • @kafactz7710

    @kafactz7710

    Жыл бұрын

    Thanks bro

  • @BonkySonky

    @BonkySonky

    Ай бұрын

    this does nothing

  • @mixlaproduction
    @mixlaproduction3 жыл бұрын

    I just found out your stuff. I was blown away by the amount of detail and effort you put into your videos! Your channel seems golden! Can’t wait to watch all your python game-developing related videos. Keep up with those awesome simple projects! 😎

  • @apopodo
    @apopodo2 жыл бұрын

    yor channel is INSANELY underrated. I've seen many pygame tutorials yet I only understood 100% of what I was told is in your video, you explain everything so in depth and stop at every line of code to explain. You give examples and even show little animations to show us what you're trying to say. 10/10 keep it up man

  • @zagrajzguru

    @zagrajzguru

    2 жыл бұрын

    This

  • @UniquelyMadeIAm

    @UniquelyMadeIAm

    Жыл бұрын

    This is so true!!! Keep making these please

  • @flippingflipbooks565
    @flippingflipbooks5653 жыл бұрын

    I am currently learning Python, but I don't know ANYTHING about pygame! I really wanted to learn it: My main motive for learning programming was to make games! You are the best person for me to help me learn. You add in litte bits of humor, so your vids aren't just plain coding. I really think that you are the best!

  • @uskumru3106

    @uskumru3106

    2 жыл бұрын

    Python is realy bad choice if you want making game

  • @user-hx1lp6fc9r

    @user-hx1lp6fc9r

    Жыл бұрын

    Hey friend! How did it go for you?

  • @No3inator

    @No3inator

    Жыл бұрын

    yeah after learning python you can easily start using Godot using gd script which is 90% similar to python because python just has many bad things in game development which you cant avoid

  • @Bluemoon_wav

    @Bluemoon_wav

    Жыл бұрын

    @@No3inator could you tell me in a broad way what those "bad things" are?

  • @jeremyhubaker1199

    @jeremyhubaker1199

    10 ай бұрын

    IF YOU REALLY WANT TO MAKE GAMES THEN YOU NEED TO LEARN C++ ,C#, JAVA YOU WILL BE LIMITED WITH PYTHON AS IT IS BETTER SUITED FOR DATA MANIPULATION AND BACK ND STUFF. ALTHOUGH PYTHON IS A GOOD START BECAUSE IT IS SIMPLE

  • @e.e.schonborn9344
    @e.e.schonborn9344 Жыл бұрын

    This was by far the most helpful python tutorial I have ever watched! Every single detail was explained super precisely and yet so easily at the same time! Thank you so so much!

  • @OettingerPirat
    @OettingerPirat2 жыл бұрын

    I can't imagine how I've could have invested the last 2-ish hours better than following your video and code along. Thank you so much for your fantastic work! :)

  • @roiho5405
    @roiho54053 жыл бұрын

    I love your Pygame videos. I'm having so much fun with this module, I hope to see more from you :)

  • @samtheserious19
    @samtheserious192 жыл бұрын

    Man, your channel is amazing, your tutorials and explanations are clear and we'll explained. You have teacher material and the fact that all this is for free makes me appreciate and respect your work even more. Thanks mate

  • @RandomJeevanYT
    @RandomJeevanYT2 жыл бұрын

    1:06:39 "Well takes no time at all to create it" More like 2 days for me cuz im doing this sort of stuff for first time 😥 But i understood everything clearly cuz u explain so well so thanks for that🤗

  • @RohanKumar-zd3pc
    @RohanKumar-zd3pc3 жыл бұрын

    Amazing, It is explained in a very detailed way Of all the logic from the setup to finishing

  • @chikaosita662
    @chikaosita6622 жыл бұрын

    This channel is truly amazing ive recently got into pygame and I will definetly be using this channel for all my needs. Thank you so much !!!!!

  • @iamailasama
    @iamailasama3 жыл бұрын

    thanks man! you are one of the best teachers out there, and you brought back my interest in python and programming!

  • @TheDrumtracks
    @TheDrumtracks3 жыл бұрын

    This is the best tutorial I found so far to this topic. (and the prettiest one. :D) Every line is explained in more detail than all others tutorial I watched. You Sir, did a great Job! I felt like I was able to understand everything!

  • @MouseCodes
    @MouseCodes3 жыл бұрын

    I was happy getting the notification of this video. Keep it up, bro.

  • @christophercoronaios4732
    @christophercoronaios47323 жыл бұрын

    Wow, you are extremely helpful. I love how you explain each and every single line of code and just how you have put this tutorial together in general. This has been a great experience for me. Keep it up man!

  • @cup624
    @cup6243 жыл бұрын

    i believe this tutorial is the most underrated one of other pyhton tutorials. thanks for your efforts.

  • @thelogbob281
    @thelogbob28110 ай бұрын

    Incredible incredible video! Very descriptive and thorough with every little detail! You are an amazing youtuber, and I love the effort!

  • @Xnothen
    @Xnothen3 жыл бұрын

    Just started but I'm already loving the detail description of everything we are doing which is far better than some other tutorial which goes blazingly fast yet neglects to explain what is it that we are doing.

  • @shareefaridha8082

    @shareefaridha8082

    2 жыл бұрын

    Same!!

  • @yussefhallak981
    @yussefhallak9813 жыл бұрын

    I got so happy when I saw the notification. This tutorial is gonna help a lot. Thank you!

  • @imherovirat
    @imherovirat3 жыл бұрын

    Perfectly Explained, You are genius. Keep making videos on pygame, I'm proud to find your channel.

  • @klausbrier6307
    @klausbrier63072 жыл бұрын

    I found a lot of snake-game-tutorials, but I think, this is really the best one .

  • @rxphi5382
    @rxphi53822 жыл бұрын

    Hi, this is a great video, I learned a lot! The draw_grass() function at 1:38:45 seemed a little bit overkill to me tbh, so here is how I did it if anyone is interested in it: def draw_grass(self): for i in range(cell_number): for j in range(cell_number): if (i+j)%2==0: grass_rect = pygame.Rect(j*cell_size, i*cell_size, cell_size, cell_size) pygame.draw.rect(screen, grass_color, grass_rect)

  • @arkamukhopadhyay2177

    @arkamukhopadhyay2177

    2 жыл бұрын

    BG_COLORS = [(125, 215, 70), (100, 200, 50)] for x in range(cell_number): for y in range(cell_number): rect = pygame.Rect(x * CELL_SIZE, y * CELL_SIZE, CELL_SIZE, CELL_SIZE) pygame.draw.rect(screen, BG_COLORS[(x + y) % 2], rect) this does the job as well :)

  • @arkamukhopadhyay2177

    @arkamukhopadhyay2177

    2 жыл бұрын

    @@vihasharma804 works for me though

  • @Codingforkids
    @Codingforkids3 жыл бұрын

    Thank you for the detailed and precise tutorial! Keep up the great work!

  • @Omer-or8pg
    @Omer-or8pg Жыл бұрын

    Your videos are so informative and well-put. I love your channel SO much. I am so grateful for the effort you put into making your videos, and that you explain concepts beyond the code in an easily comprehensible way. Your pacing is great too. I eeply appreciate your content.

  • @tayyabsajid7552
    @tayyabsajid75523 жыл бұрын

    How do you not already have a huge fan base, you're epic!

  • @bobbyreily3018
    @bobbyreily30183 жыл бұрын

    You definitely deserve more subscribers! Keep the videos coming and they will flock in.

  • @JayeshSarvaiya
    @JayeshSarvaiya3 жыл бұрын

    I am just blown away by such an effort taken for smooth explanation, planning and gaming skills, you really came up with beautiful channel, All the Best for upcoming videos. Great Stuff !!! Thanks a tonnnnn... for everything. 😃

  • @sarankumar9370
    @sarankumar93702 жыл бұрын

    Ohh my God!! This is the best tutorial I had ever seen till today... The way you are explaining every tiny bit details is just amazing... Keep doing more video's..

  • @sebzanardo
    @sebzanardo3 жыл бұрын

    AWESOME VIDEO! Super clear explanations of how pygame works and breaking down the program into manageable sections. subscribed and can't wait to see more pygame and coding videos in the future : D

  • @soumenmondal7638
    @soumenmondal76383 жыл бұрын

    THANK YOU SOO MUCH FOR CLEARING EACH AND EVERY PORTION SOO WELL ❤

  • @momanirful
    @momanirful5 ай бұрын

    Fantastic tutorial, explains concepts clearly and then applies knowledge to write code. Love your delivery style, perfect for young children to learn coding.

  • @shivamkantprasad
    @shivamkantprasad3 жыл бұрын

    Keep making these tutorials they are fun and easy to understand

  • @nullifier_
    @nullifier_2 жыл бұрын

    Thank you so much! You helped me create my first game ever. I even added things like out-of-bound wrapping check for when the snake goes outside of the grid and tail cut for when the head intercepts the body

  • @clairehua7545
    @clairehua75453 жыл бұрын

    Wow! This vid is awesome! I didn't even get stuck once! This is probably one of my better python projects. I currently code: block code, text code, java, javascript, C, C+, C++, html, and python. Would love to see more awesome tutorials on those coding languages. Keep up the AMAZING work!

  • @Thoalfeqargamer
    @Thoalfeqargamer3 жыл бұрын

    What a legendary channel. Keep up the amazing work man!

  • @burak9802_
    @burak9802_3 жыл бұрын

    Christian you're awesome keep on loading videos. We all have been waiting for new game videos!

  • @YanisCharef-dy5rk
    @YanisCharef-dy5rk10 ай бұрын

    That was a simple and a clear tutorial, thank you!

  • @Brandonator24
    @Brandonator243 жыл бұрын

    One of the best tutorials around. Good work mate!!

  • @jananni123456789
    @jananni1234567893 жыл бұрын

    Such clean, logical, well organised code!

  • @HarryTK
    @HarryTK Жыл бұрын

    broken it down makes it seem so user-friendly and easy to use. I can’t wait to start making soft! Thanks again!

  • @HoRRoRlets
    @HoRRoRlets Жыл бұрын

    Great job on this Tutorial. Helped me get my head around vectors quite a bit more.

  • @parthgupta4850
    @parthgupta48503 жыл бұрын

    100th comment says that this is awesome tutorial you teach explain everything as other skip many things and at last we are confused but you are not like them you teach and explain and write everything, best tutorial as well as game of your channel.

  • @aimeedillard9665
    @aimeedillard96652 жыл бұрын

    So glad I found this channel, I immediately subscribed! Can’t wait to try some of this out

  • @Daloshka
    @Daloshka3 жыл бұрын

    I've just started watching your video about Flappy Bird. I want to say thanks for your videos. You make a huge influence on me and other people

  • @sabirkhan6898
    @sabirkhan68983 жыл бұрын

    Well explained! I loved the amount of detail given throughout the video

  • @shubharamanath3049
    @shubharamanath30493 жыл бұрын

    thank you for this tutorial, I was struggling to get my snake program to work then I searched the internet to find the solutions but I did not find any , then I saw your vid , I learnt the pygame basics now I have coded many projects in which I had very few errors. thank you again for this very good tutorial. 😀😀😀😀

  • @majdnassar3257
    @majdnassar32573 жыл бұрын

    Thanks alot, first time i use pygame lib and i understand your tutorial, because you explained every thing very well and clear :)

  • @muradarif7373
    @muradarif73732 жыл бұрын

    I have finished the tutorial, Huge thank you for such a video 🤝👌

  • @sahidabegum7365
    @sahidabegum73655 ай бұрын

    This is the best tutorial about pygame. I enjoyed it and also understand the concepts and logics very easily.

  • @dogesh828
    @dogesh8283 жыл бұрын

    It's midnight i am gonna watch it tomorrow. But i know it's will be awesome as always.😆😆😆 Please keep making more quality content. Lots of love❤❤❤

  • @jakenik1241
    @jakenik12413 жыл бұрын

    Very good work and very good explanation. The only thing I found is that if you press two buttons at the same time like key.up and key.left and the snake goes to the right direction then you cause the game to end, i believe likely because the snake has not had time to go up and gives the command to go right. Again pretty amazing work keep it up!

  • @Schachlover
    @Schachlover3 жыл бұрын

    Awesome as always. Plz. keep up the good work!!

  • @liukang81
    @liukang81 Жыл бұрын

    Your explanation is awesome man! You’re the best teacher! 👍

  • @pitermg
    @pitermg8 ай бұрын

    Very nice, complete and thorough tutorial!

  • @jeffreywen8901
    @jeffreywen89013 жыл бұрын

    awesome tutorial, I learned a lot. great work!

  • @atharvapatil7474
    @atharvapatil74743 жыл бұрын

    Best tutorial of snake game ever found on KZread

  • @Hotterman10
    @Hotterman102 ай бұрын

    Wow, best pygame tutorial ive seen so far. Bravo.

  • @zgreatest69
    @zgreatest693 жыл бұрын

    You explained it so well I'm so glad

  • @catastrophiccarrots5626
    @catastrophiccarrots56263 жыл бұрын

    I love this tutorial it is so clear and informative! Plus every error i get is always my fault as i did a typo or forgot the () thanks so much i will definitely watch more of your videos and you got another sub!

  • @yisus.avocado
    @yisus.avocado3 жыл бұрын

    This so awesome, really interesting video, keep up doing well!

  • @anupambayen5554
    @anupambayen55542 жыл бұрын

    Fantastic Tutorial for beginners. I have learned lot from this tutorial.

  • @hoatran-dg3ir
    @hoatran-dg3ir2 жыл бұрын

    Wow this tutorial is really good! Thanks man!

  • @banji8171
    @banji81713 жыл бұрын

    Wow, we need more tutorial like this, keep it up🥺❤️❤️

  • @AbhishekMishraiitkgp
    @AbhishekMishraiitkgp10 ай бұрын

    Extremely well explained tutorial. Thanks!!!

  • @astrowow9377
    @astrowow93773 жыл бұрын

    You are the best mate, my greetings from Mexico ✌️🇲🇽💕

  • @rubenbartelet756
    @rubenbartelet7562 жыл бұрын

    You need more subscribers man! This is quality content!

  • @Sc4rletAss4ssin
    @Sc4rletAss4ssin3 жыл бұрын

    Your tutorial is fantastic thank you so much for making this

  • @parthgupta4850
    @parthgupta48503 жыл бұрын

    Congrats! 1 unlike only out of 5000 views great job this proves that you're videos are quality driven.

  • @mr.curious1714
    @mr.curious17142 жыл бұрын

    This is the best video on #PygameBasics and #SnakeGamePython . You have explained everything in the perfect pace. I would recommend this tutorial to everyone who wants to learn pygame and also snake game using pygame. Best tutorial!!!! You Earned a sub!!!!

  • @RandomJeevanYT
    @RandomJeevanYT2 жыл бұрын

    I wanted to creat snake game in python i saw so many tutorials could do the code and it worked but i wasn't satisfied cuz i understood only partly. But ur vids are amazing the differences u show between surfaces and display surface, explaining each line code. Just prefect 🤗🤗

  • @bycorrohmarketingdesigns7852
    @bycorrohmarketingdesigns7852 Жыл бұрын

    you are AMAZING MAN! Very clear and good class man!! CONGRATS!!!

  • @Code_in_simple_English
    @Code_in_simple_English2 жыл бұрын

    These lessons are just awesome. Thank you for posting them. What would be useful in the comments, if you were interested in adding them, are the key concepts taught: like Vector2, enumerate, slicing.. and so on.

  • @ElloBruh69
    @ElloBruh692 жыл бұрын

    Thank you. I have learnt a lot from this video!

  • @kalashshah1049
    @kalashshah10493 жыл бұрын

    Hey clear code you deserved more subscribers. really nice videos.

  • @NoisyMachines
    @NoisyMachines3 жыл бұрын

    That it's a master CLASS! Thank you! ::)

  • @danielDev-hg3jo
    @danielDev-hg3jo5 ай бұрын

    Great video, excellent explanation.

  • @mrmizan1977
    @mrmizan19773 жыл бұрын

    You’re really a great programmer!

  • @isakurbanov8627
    @isakurbanov86273 жыл бұрын

    Great content keep up the hard work!

  • @mariozaldivar7802
    @mariozaldivar78022 жыл бұрын

    Great tutorial! really helped me out!

  • @JohnSmith952
    @JohnSmith9523 жыл бұрын

    Every your video is pure gold

  • @armeidiandanny0522
    @armeidiandanny0522 Жыл бұрын

    Very Helpful and really easy to understand man.. keep fight and consistenly upload to create implementation PyGame learning with another game 👍

  • @RahilKasimi
    @RahilKasimi3 жыл бұрын

    Just Awesome brother, I learned a lot.

  • @muhammadahmadkhan3304
    @muhammadahmadkhan330410 ай бұрын

    Jazakallah ... Very beautiful explanation ... Thank you so much❤❤❤❤

  • @potato420
    @potato4203 жыл бұрын

    i love your videos so much you explain perfectly

  • @olavlilj1145
    @olavlilj11453 жыл бұрын

    This was great!!! Thank you!

  • @aymaneaymane1950
    @aymaneaymane19503 жыл бұрын

    Thank you a lot I was really happy when I saw it

  • @zCrabOG
    @zCrabOG Жыл бұрын

    Thank you for explaining the "why's". The puzzle pieces just fall straight into place

  • @sermeliodas8618
    @sermeliodas86183 жыл бұрын

    Amazing work thank you so much

  • @samkh746
    @samkh7463 жыл бұрын

    Really informative, thanks

  • @PixelGaming_2020
    @PixelGaming_2020 Жыл бұрын

    Really good tutorial. You explained everything in amazing detail. With a few other tutorials, they move too quickly, which causes me to have errors in my code that I don't know how to correct. This one is nicely paced, and I end up with a fully working and functional snake game.

  • @imSHEN

    @imSHEN

    Жыл бұрын

    how do you fixed 'MAIN' object has no attribute 'snake'

  • @angelinalieske8516
    @angelinalieske85163 жыл бұрын

    okey, this video is saving my life ! thank u!

  • @yaroslavkovaliv6884
    @yaroslavkovaliv68843 жыл бұрын

    great video, love it, pls make some more pygame videos!

  • @Vincent-fo9ie
    @Vincent-fo9ie3 жыл бұрын

    thankyou very much this really helps. very detailed and explanation is very good. :D

  • @007JackTR
    @007JackTR Жыл бұрын

    Awesome stuff!!! Thanks

  • @solijanov_05
    @solijanov_05 Жыл бұрын

    good man👍 thank you for video

  • @reemnasser9105
    @reemnasser91052 жыл бұрын

    Thanks for this great video. it made my weekend :))

  • @nuggetx4086
    @nuggetx40862 жыл бұрын

    im happy i found this video it's amazing

  • @hariharanthegreat5576
    @hariharanthegreat55763 жыл бұрын

    You granted my wish Thanks a lot for this

  • @salouhimohammed1030
    @salouhimohammed10302 жыл бұрын

    i think is more efficient to use a while loop to avoid the fruit spawns over the snake, this part i coded it like below while self.fruit.pos in self.snake.body[1:]: self.fruit.randomize() thanks for the great tutorial, a channel like the yours i never seen before