Hey Tim. I just recently discovered your channel and I must say I'm very impressed with your hands on tutorials. I'm working for a non-profit organization that helps people with a psychiatric background to rehabilitate. A lot of the participants show an interest in programming and your content is very helpful to explore this. Well explained; bite sized; project based. Thanks man!
Hey man, I don't comment too often but I felt the need to express my gratitude for all the great content. I studied C# years ago, loved it but got pigeon holed doing helpdesk work for 7 years and pretty much forgetting everything I'd learned. Almost a decade later I'm picking back up where I left off, discovering my passion again, and trying to get my foot in the development door professionally. Your channel has been a godsend. You have a natural talent for teaching and presenting information in a way that's easy to grasp. I've never been the type who learns much from just watching lectures. The guided tutorial format has always been best for me, and you've got some of the best I've been able to find. All the best!
Hey Tim! Great video, just one tip: Did you know that you can place the mouse location at multiple places AND do the exact same commands? So if you want to change left_paddle , left_paddle and change that directly to right, you can hold CTRL, click at the end of the words in BOTH variables, backspace and then write Right. This makes you able to change and write the same thing multiple places.
I've missed your pygame tutorials! I find your tutorials interesting and especially the pygame ones since I started programming by making simple games, and now I'm learning pygame, so good job
Hey Tim. I dont have programming background except for seeing a few videos on python. I had visual studio code on my pc. I saw the first few minutes of the video and I installed pygame using the code given and then copy-pasted the code you attached and now I am playing ping on my pc. I am done within 10 minutes. Thanks a lot.
Hey Tim - thanks a lot for your amazing videos! I just started coding/Python two months ago and you helped me so much already. Always thought, that coding is something I am not able to do, because during study it was just horribly boring, but you definetely helped to show me, that coding is a lot of fun, a lot of thinking and a lot of "sense of archievement", if everything works in the end. An AI-pong video would be great by the way! I am just now trying something similar with "Brick Breaker" and I am kind of stuck :D
Great Video! I have a program to train the Gym Pong in Pythorch. The training appears to go well, but the AI cannot play the game well. I am hoping these videos will provide some insight into why this is occurring. I like the way you didn't make a bunch of classes just to make classes, but made classes when it made sense to make classes. Looking forward to the Pong AI training video!
I don't really like how Tim seems to get bored and starts to rush, especially when it causes mistakes. It's cool that he kind of admits making the mistake, but the damage is done and the pattern is in my brain.
Looks interesting, but I will have to check it out if I can ever get more time. I suppose I could watch 10 or 20 minutes if this a day until I finish it.
hey Tim, i have a question about the reason you are passing the left paddle and right paddle into a list, is there any reason why you choose list instead of other array like type like say tuple? or is it completely free to choose and doesn't have an impact on the peformance
Question... if you do not reset the ball (around 1:04) it keeps counting up the score (understood) but if you just wait the balls comes back from somewhere....why is that?
I’m having issues with collision, implementing what you have here my ball still only travels on the x axis I have no y travel at all I wonder what could be happening?
Can anyone explain to me why you would prefer to use something like pygame that takes much more time and knowledge, over a game engine like godot that will do a lot of the tedious work for you? This is a real question and I'm asking purely out of ignorance. Thanks to anyone who answers!
the reason why is pygame isnt about learning game dev per se, but its more about learning how to code and learning how to do other projects, like if you wanted to do gamedev, then pygame is not for you, then you can use godot, but pygame teaches you how to make other software, hope this helps!
Hey guys.. im just learning python, and have a very low understanding, i have got as far as drawing on the paddles left and right, my issue is, when i run the program my paddles are sitting horizontally instead of vertically, can anyone help me with this?? They seem to be perfect dimensions, just drawn at the wrong angle. Any help be Much appreciated.
I think you may be getting your paddle width and height placed wrong. There's two possibilities, 1. While calling your function, you put the variable for the width and height in the wrong order ( being paddle_height, paddle_width)(instead of paddle_width, paddle_height). 2. You got the variable sequence right, but the value is swapped with one another ( like paddle_width, paddle_height = 100, 20)(instead of paddle_width, paddle_height = 20, 100) I'm not sure if this is what you're asking , but hope it helps
Thanks for this tutorial. I've learned, that pygame is garbage. Not really for game developement. I will never use it again. Not nessescary for the real word. And i've learned, that I am not so far in my progress to really understand, what you have done.
The only reason why I don't really like python + pygame, even though it's easy, it's because it's slow af, and If I wanna make a super intense game with high detail graphics and image manipulation and complicated stuff, the game ends up running at 10 fps. Maybe 30 if I actually write good code...
It's only as easy as the game you're making. It's still hard to make anything good with it. It's actually easier using a modern game engine where you have a lot of visual tools to help you slap on a few colliders and what not. You don't even need to think about architecture because the engine already does it for you, you just write a script and attach it. The reason why you can't make anything like that with Pygame is because it's software rendered, which is how they used to make games before they started to take advantage of graphics hardware, I believe. Unity and other engines use the graphics hardware, which is a lot faster than doing all the calculations on the CPU.
@@foreversleepy4379 I meant performance... Using something as basic as pygame, and a programming language as slow as python will make it impossible to make a sofisticated game, unless it's a pixel art game where you don't do too heavy manipulation on certain things
@@ZgavY Well of course, that's what engines are for. No one learns Pygame to make those types of games because doing a lot of that stuff on your own would take forever, and even if you wanted to write all the systems from scratch, another language would be better suited. I use Pygame so I can solve a lot of problems and build my problem solving skills. It's also just a bit of fun. Not everything has to be serious.
You lost me at if keys[pygame.K_w] and left_paddle.y - left_paddle.VELOCITY >= 0: left_paddle.move(up=True) if keys[pygame.K_s] and left_paddle.y + left_paddle.VELOCITY + left_paddle.height
I did this as a complete beginner, literally know nothing about programming/coding. Just followed the video and did it using Pythons IDLE. Had to make 4 or 5 corrections along the way but is was pretty straight forward. Great video! Looking forward to learning actual fundamentals of coding online now, preferably in Python. Edit: Being able to programme AI in this game would be great too for a future video.
You lost me at if keys[pygame.K_w] and left_paddle.y - left_paddle.VELOCITY >= 0: left_paddle.move(up=True) if keys[pygame.K_s] and left_paddle.y + left_paddle.VELOCITY + left_paddle.height
You could save yourself a lot of typing by using the object-oriented features of Python. E.g. you could add some methods to the Paddle class like left_x(), right_x(), top_y(), bottom_y() that calculate and return the relevant edge values of the paddle. Same with the ball. It would also make the code much cleaner.
Thank you very much for this super tutorial! You are a very good teacher and I managed to learn a lot of useful things . Now I feel confident enough to try making something on my own.
hey um the code didnt work because every time u run it it just opens for 1 second and then closes, I even tried running your github code (it had same result)
9:02 why does if __name__ == "__main__":, not expect else after line break? Like most if statements. 15:46 and how do we get self.COLOR if we never define self.COLOR = COLOR? 19:55 Is there not some css equivant or rich font and bold colors and just a straight line would work i think. Maybe1pc. 20:18 one where your paddles break each move and hifher velocity has higher durability payout but handle the hame completely by math and right hand angles to geometry of polygon. Cause paddles break. 23:23 Bro its math. and have the model return pure JSON cause maths.
I have a question: In the handle collision function, is it really necessary to check if the ball is in between the corners of the paddle it's about to hit if in it's nested "if" statement, you're going to check if the ball hits the paddle anyways?
I am getting an error that reads AttributeError: partially initialized module 'pygame' has no attribute 'init' (most likely due to a circular import) pls help me
Hey Tim my program is just changing the speed of the ball when it collides with different sides of the paddle instead of changing angles. Do you know what might be wrong or anyone in the comments know?
ok i figure it out it was in the ball call move function and i wrote self.x += self.y_vel so my y movement was not working on the ball lol. I wonder why this caused my ball to change speeds instead of angle most be the collision equation was only appling on the x coordinates of the ball
Hey Tim. I just recently discovered your channel and I must say I'm very impressed with your hands on tutorials. I'm working for a non-profit organization that helps people with a psychiatric background to rehabilitate. A lot of the participants show an interest in programming and your content is very helpful to explore this. Well explained; bite sized; project based. Thanks man!
*Hey, Tim. *Thanks, man!
Hey man, I don't comment too often but I felt the need to express my gratitude for all the great content. I studied C# years ago, loved it but got pigeon holed doing helpdesk work for 7 years and pretty much forgetting everything I'd learned. Almost a decade later I'm picking back up where I left off, discovering my passion again, and trying to get my foot in the development door professionally. Your channel has been a godsend. You have a natural talent for teaching and presenting information in a way that's easy to grasp. I've never been the type who learns much from just watching lectures. The guided tutorial format has always been best for me, and you've got some of the best I've been able to find. All the best!
Hey Tim! Great video, just one tip:
Did you know that you can place the mouse location at multiple places AND do the exact same commands?
So if you want to change left_paddle , left_paddle and change that directly to right, you can hold CTRL, click at the end of the words in BOTH variables, backspace and then write Right. This makes you able to change and write the same thing multiple places.
I've missed your pygame tutorials! I find your tutorials interesting and especially the pygame ones since I started programming by making simple games, and now I'm learning pygame, so good job
I am following you since you just have 10k subs and I am very happy to see your growth and Keep doing this kind of work.
Tim, please do a video implementing AI for Pong.
Hey Tim. I dont have programming background except for seeing a few videos on python. I had visual studio code on my pc. I saw the first few minutes of the video and I installed pygame using the code given and then copy-pasted the code you attached and now I am playing ping on my pc. I am done within 10 minutes. Thanks a lot.
Hey Tim - thanks a lot for your amazing videos! I just started coding/Python two months ago and you helped me so much already. Always thought, that coding is something I am not able to do, because during study it was just horribly boring, but you definetely helped to show me, that coding is a lot of fun, a lot of thinking and a lot of "sense of archievement", if everything works in the end. An AI-pong video would be great by the way! I am just now trying something similar with "Brick Breaker" and I am kind of stuck :D
Great Video! I have a program to train the Gym Pong in Pythorch. The training appears to go well, but the AI cannot play the game well. I am hoping these videos will provide some insight into why this is occurring. I like the way you didn't make a bunch of classes just to make classes, but made classes when it made sense to make classes. Looking forward to the Pong AI training video!
Tim, great tutorial. You should definitely make video about implementing AI to opponent pong :D
Love your videos tim. Congrats on 900k. Just 100k more and you'll reach the glorious 1000000. Your videos are great tim keep It up
golden programming play button
thank you, watching this is like therapy for me
thanks a lot helped now i will know python better :)
Awesome tutorial and clear explanations! Especially appreciated how to "solve for" with the equation :) Thanks!
First of all congrats for the video!
And let me ask a question how you learned all this stuffs?
He posted a video a while back I think it’s called something like his programming journey. Shouldn’t be too hard to find on his channel
Here goes 1 hour of my day!
Thanks for guide , really nice for both pygame and oop.I was wondering how to refresh text like scores without blinking text!
Yyeeeessssssssssssss I know what I’m doing today ! Thanks timbo
Thank you Tim! It really helped in enhancing my knowledge.
Very welcome!
AI for pong is a great idea Tim!
where is the paddles defined ?
it says undefined and two arguments in draw function
Mr may i conquire your help i was trying to download pygame but then an error occurec saying "no mudule named 'pygame'"
Awesome work! Keep up the great videos :)
I don't really like how Tim seems to get bored and starts to rush, especially when it causes mistakes. It's cool that he kind of admits making the mistake, but the damage is done and the pattern is in my brain.
20:11 how can I make this bracket on the keyboard like here I mean this -> ( in straight form
Just started learning pygame today and you uploaded another game tutorial, Thanks Tim!
Looks interesting, but I will have to check it out if I can ever get more time. I suppose I could watch 10 or 20 minutes if this a day until I finish it.
what does size must be 2 numbers mean
biggest thanks from me!
I had a project and You saved me
you can just add this instead of left_paddle movement to make an AI "
if ball.y
where to add?
it would help if you could show your keyboard inputs too. sometimes i cant see the difference between __ and _
hey Tim, i have a question about the reason you are passing the left paddle and right paddle into a list,
is there any reason why you choose list instead of other array like type like say tuple?
or is it completely free to choose and doesn't have an impact on the peformance
quick question Tim. I have downloaded pygame successfully but when i run my module it just doesn't work. do you know why?
Do you have the right pycharm?
Bro, you are just the best!, am gonna make an AI beat this game😎
Hi bro, nice tutorial. I got an error called NameError: name 'paddles' is not defined. I am a beginner so pls help me with this 😂😅😅
I'm waiting on the planet simulation tutorial 😁
Question... if you do not reset the ball (around 1:04) it keeps counting up the score (understood) but if you just wait the balls comes back from somewhere....why is that?
same
This video couldn't come at a much better time, I tried pygame juat last week and was halfway through making my *cursed pong* game.
Tim the code isnt working it wont let my paddles go up can you help me with this
I’m having issues with collision, implementing what you have here my ball still only travels on the x axis I have no y travel at all I wonder what could be happening?
I have the same thing and dont know whats wrong
yo check your move function in the ball class i wrote self.x += self.y_vel and it sould be self.y+= self.y_vel
@@MonTech0451 yea I had the same thing good catch!
why dies it say that the module "pygame" is not found?
This is smooth thats what i need ❤❤❤
Hi sir how to out a game over message and please restart and start the game.
I completed ur Blockchain beginning course.. do you have any other plans to do another playlist on Blockchain development?
where was paddles defined(minute20:26)
it tells me that it isnt defined and also:
TypeError: draw() takes 1 positional argument but 2 were given
Great tutorial, thank you Tim
i got trouble at excuting it it always fail and the pong is not responding
Ai for pong!
I would like to see the AI piece of this
I 'm your number one fan!
for some reason when i put the second set of parenthases in the pygame.display.set_mode((WIDTH, HIEGHT)) it says thats its invalid syntax pls help
u spelt height wrong
Great Video
How can I do this with IDLE? I have installed Pygame via the command prompt, but IDLE doesn't recognize pygame with import. Thanks in advance.
When I do the first test run, my window appears for a second then disappears. How do I fix this issue?
Followed to a T but getting error paddle object has no attribute draw any ideas?
did you add a draw(): function within the paddle class?
I'm using python 3.12.3
the screen wouldnt show up
Can anyone explain to me why you would prefer to use something like pygame that takes much more time and knowledge, over a game engine like godot that will do a lot of the tedious work for you? This is a real question and I'm asking purely out of ignorance. Thanks to anyone who answers!
the reason why is pygame isnt about learning game dev per se, but its more about learning how to code and learning how to do other projects, like if you wanted to do gamedev, then pygame is not for you, then you can use godot, but pygame teaches you how to make other software, hope this helps!
there is no window opening. it just says "no module named pygame"
9:14 uhhh my window opens for a second and than closes by itself ....
You are really consistent
U are my fav teacher
You're my fav commenter ;)
@@TechWithTim damm i first time commented-
Tim
Hey guys.. im just learning python, and have a very low understanding, i have got as far as drawing on the paddles left and right, my issue is, when i run the program my paddles are sitting horizontally instead of vertically, can anyone help me with this?? They seem to be perfect dimensions, just drawn at the wrong angle. Any help be Much appreciated.
I think you may be getting your paddle width and height placed wrong.
There's two possibilities,
1. While calling your function, you put the variable for the width and height in the wrong order ( being paddle_height, paddle_width)(instead of paddle_width, paddle_height).
2. You got the variable sequence right, but the value is swapped with one another ( like paddle_width, paddle_height = 100, 20)(instead of paddle_width, paddle_height = 20, 100)
I'm not sure if this is what you're asking , but hope it helps
Thanks i posted this a while ago, so i got the issue fixed, much appreciated all the same 🙏🏻
i cant get pygame to work
Thanks for this tutorial. I've learned, that pygame is garbage. Not really for game developement. I will never use it again. Not nessescary for the real word. And i've learned, that I am not so far in my progress to really understand, what you have done.
Pythong
Such a cool video
6:21
waw, ini keren
that have database?/
The only reason why I don't really like python + pygame, even though it's easy, it's because it's slow af, and If I wanna make a super intense game with high detail graphics and image manipulation and complicated stuff, the game ends up running at 10 fps. Maybe 30 if I actually write good code...
It's only as easy as the game you're making. It's still hard to make anything good with it. It's actually easier using a modern game engine where you have a lot of visual tools to help you slap on a few colliders and what not. You don't even need to think about architecture because the engine already does it for you, you just write a script and attach it.
The reason why you can't make anything like that with Pygame is because it's software rendered, which is how they used to make games before they started to take advantage of graphics hardware, I believe. Unity and other engines use the graphics hardware, which is a lot faster than doing all the calculations on the CPU.
@@foreversleepy4379 I meant performance... Using something as basic as pygame, and a programming language as slow as python will make it impossible to make a sofisticated game, unless it's a pixel art game where you don't do too heavy manipulation on certain things
@@ZgavY Well of course, that's what engines are for. No one learns Pygame to make those types of games because doing a lot of that stuff on your own would take forever, and even if you wanted to write all the systems from scratch, another language would be better suited.
I use Pygame so I can solve a lot of problems and build my problem solving skills. It's also just a bit of fun. Not everything has to be serious.
You lost me at
if keys[pygame.K_w] and left_paddle.y - left_paddle.VELOCITY >= 0:
left_paddle.move(up=True)
if keys[pygame.K_s] and left_paddle.y + left_paddle.VELOCITY + left_paddle.height
Same. I actually just deleted "- (left/right)_paddle.VEL" and "+ (left/right)_paddle.VEL" and it still worked...
I think you are one of those ppl who work two or three full time jobs, in your case with a company and in youtube🤭🤔😁
I did this as a complete beginner, literally know nothing about programming/coding. Just followed the video and did it using Pythons IDLE. Had to make 4 or 5 corrections along the way but is was pretty straight forward. Great video! Looking forward to learning actual fundamentals of coding online now, preferably in Python.
Edit: Being able to programme AI in this game would be great too for a future video.
I have a video on AI!
You lost me at
if keys[pygame.K_w] and left_paddle.y - left_paddle.VELOCITY >= 0:
left_paddle.move(up=True)
if keys[pygame.K_s] and left_paddle.y + left_paddle.VELOCITY + left_paddle.height
yeah we all need AI playing pingpoing
You could save yourself a lot of typing by using the object-oriented features of Python. E.g. you could add some methods to the Paddle class like left_x(), right_x(), top_y(), bottom_y() that calculate and return the relevant edge values of the paddle. Same with the ball. It would also make the code much cleaner.
Tim, you are the best. I'm just a python beginner and I understand everything you taught here. Keep these kind of content going man. You're a legend.
I’m on pythonista right now.
Thank you very much for this super tutorial!
You are a very good teacher and I managed to learn a lot of useful things . Now I feel confident enough to try making something on my own.
a
b
d
@@TechWithTim e
f
Can you make something related like creating Jarvis irl or how iron man codes his Armor and other gadgets
Can someone help me?
I'm getting a name error, saying '_name_' is not defined, and I'm not getting the black screen popping up at 9:14
:(
I had the same error. Make sure that there are two '_' on each side of "name" and "main". This is easy to mess up :D
@@brucemozart3665 I double checked, and ive two underscores on each side 🥺
I was the 7,825 viewer watched the entire video and loved it👍
If I’m not using pygame… what should I use for the import?
hey um the code didnt work because every time u run it it just opens for 1 second and then closes, I even tried running your github code (it had same result)
You need to make sure your using the pygame.display.update() to keep the window open.
Thank you very much!!! Did it finally 🙏
U
Very Noice 👍
9:02 why does if __name__ == "__main__":, not expect else after line break? Like most if statements.
15:46 and how do we get self.COLOR if we never define self.COLOR = COLOR?
19:55 Is there not some css equivant or rich font and bold colors and just a straight line would work i think. Maybe1pc.
20:18 one where your paddles break each move and hifher velocity has higher durability payout but handle the hame completely by math and right hand angles to geometry of polygon. Cause paddles break.
23:23 Bro its math. and have the model return pure JSON cause maths.
Hello Tim, Great video and interesting material. Im practice with this pygame is really cool. Thanks friend
I have a question: In the handle collision function, is it really necessary to check if the ball is in between the corners of the paddle it's about to hit if in it's nested "if" statement, you're going to check if the ball hits the paddle anyways?
I am getting an error that reads AttributeError: partially initialized module 'pygame' has no attribute 'init' (most likely due to a circular import) pls help me
I literaly coded this on my calculator lol (not even kidding)
Hey Tim my program is just changing the speed of the ball when it collides with different sides of the paddle instead of changing angles. Do you know what might be wrong or anyone in the comments know?
ok i figure it out it was in the ball call move function and i wrote self.x += self.y_vel so my y movement was not working on the ball lol. I wonder why this caused my ball to change speeds instead of angle most be the collision equation was only appling on the x coordinates of the ball
Much thanks bro ;-)
1 question. How do you even get that Python???
omg this is awesome!!
Can You make the game easy with codes