Python Platformer Game Tutorial for Beginners

Поділитися
Вставка
  • Опубліковано 1 жов 2024

КОМЕНТАРІ • 209

  • @zyonrams9432
    @zyonrams9432 Рік тому +56

    its very fast paced and its a lil hard to keep up and the details are not much discussed and why the code is structured that way, lil confusing

    • @pexkk
      @pexkk 10 місяців тому +10

      skill issue

    • @bhaveerathod2373
      @bhaveerathod2373 10 місяців тому +9

      I agree

    • @Show1.
      @Show1. 9 місяців тому +5

      Exactly

    • @ThisIsACreativeName
      @ThisIsACreativeName 8 місяців тому +4

      Yeah, I had to rewind the video a lot

    • @zdiddy4112
      @zdiddy4112 8 місяців тому +3

      Any time I watch Tech with Tim, I slow down the video by 0.25 to 0.50 and can usually keep up to pace without pausing or rewinding much, it just makes him sound a little drunk sometimes..

  • @Omni-cu2fk
    @Omni-cu2fk Рік тому +91

    Hattsoff!!!! To all of your team that you’re providing all these useful courses free of cost

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

    Hey, would you folks ever consider making text tutorials? I suffered a concussion middle of last year and even though I'm out of the 7 month window of recovery, it seems that migraines and audio sensitivity are going to be a thing for me for... who knows how long. So, I have my own personal reasons for wanting text tutorials, but I can't be the only one who would like to see one or two? Ty

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

      you can find the transcript of it in the description. I hope you get better soon.

  • @mikeyoung5029
    @mikeyoung5029 Рік тому +23

    I found that to be able to run the tutorial with a double-click in Windows (rather than via the development environment), I needed to add the line:
    mypath = os.path.dirname(os.path.realpath(__file__))
    near the start of the code (I put it after the line setting the caption),
    and then change the joins that specify "assets" from
    path = join("assets",
    to
    path = join(mypath, "assets",
    This is needed because double-click does not set your starting directory to the one where the code is stored, so the assets folder can't be found.

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

      you just saved my day

    • @king_roblox2000
      @king_roblox2000 10 місяців тому

      yes i fixed it thanks a lot!

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

    I'am 43 , I did it! I just finished your course .. thank you Tim

    • @gelomelo8968
      @gelomelo8968 5 місяців тому

      it feels great that, people like your age is doing this. keep it up sir

  • @Earthling409
    @Earthling409 3 місяці тому +2

    I WILL MAKE SILKSONG

  • @ClaudioBOsorio
    @ClaudioBOsorio Рік тому +14

    This is amazing. I skimmed through the video because I dont have much time but I really want to watch this. Saved for later

  • @androspuddy2
    @androspuddy2 Рік тому +26

    Thanks a million Tim! I've been searching for two months now for a tutorial exactly like this to do a project with my son. My search is over!

    • @DANtheman-90
      @DANtheman-90 9 місяців тому +4

      bro if it took you 2 months to find this video when searching specifically for something like this you may need a career change

  • @Suhas-hf1rm
    @Suhas-hf1rm 3 місяці тому +4

    This is crazy I've been searching for a tutorial like this for years. Thank You Tim!!!!

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

    You guys are so super i don't have words to appreciate you.Thnks for this video ❤❤

  • @jackepner9984
    @jackepner9984 7 місяців тому +1

    Why do you title it "for beginners," and then say it's for intermediate python programmers in the first two minutes?? Misleading.

    • @ThatOneSweat
      @ThatOneSweat 5 місяців тому

      Its python *game* tutorial for beginners, not python tutorial for beginners. It is intended for people with some python experience since he wont explain the syntax that much

    • @RongsenWati-sx6jw
      @RongsenWati-sx6jw 4 місяці тому

      😊​@@ThatOneSweat

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

    1:35:40 I notice that when I jump and land on the very edge of the block, it triggers the falling animation - wondering how to fix this?

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

    Need help,
    when i try to run the code on "Pixel Perfect Collision (vertical)" portion, i got error:
    AttributeError: 'NoneType' object has no attribute 'overlap'

  • @miroslavlovas7099
    @miroslavlovas7099 5 місяців тому +1

    Got 2 questions Tim, why u dont use Sprites in pygame and what is the other way to bypass Sprites?

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

    The box collision and mask collision stuff was very interesting. I remember as a kid that was one of the frustrating things when you "hit" something and the actual visible character clearly did not hit.

  • @vijaysamant2864
    @vijaysamant2864 6 місяців тому +1

    Are the assets public domain? If someone wants to use them commercially, can they?

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

    Just Wondering: How Do You Add Multiple Fires?

  • @satyre5844
    @satyre5844 7 місяців тому +1

    does anyone know how to make it scroll upwards instead of side to side

  • @das-d1106
    @das-d1106 8 місяців тому +1

    I am at 1:14:00 in the Video and I have the problem that my Charakter dissapears after ~4 sec cant find the misstake I have made can anyone help me? solved the problem!
    Thanks for the Video

    • @ThatOneSweat
      @ThatOneSweat 5 місяців тому

      Can i see your code? and are there any error you encounter?

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

    Love the tutorial so far, but I've run into a snag and can't seem to get around it. I installed pygame through VSC but when I run the script to test whether it quits the game window, it gives me "ModuleNotFoundError: No module named 'pygame' " because my pygame installation is located under Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pygame (using Mac) -- any suggestions?

  • @bcgamer2
    @bcgamer2 2 місяці тому +1

    Great and super easy to follow tutorial! I learned a great deal! Thanks so much, Tim!!!

  • @OrbIllusionn
    @OrbIllusionn 5 місяців тому

    It's okay. I kept running into a lot of errors despite following the code exactly :(

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

    In class Block(Object)
    The line no. 131 shows a error : TypeError: object.__init__() takes exactly one argument (the instance to initialize)

  • @oneprez
    @oneprez 2 місяці тому

    Hey this is very late but while I was following the tutorial on the draw player part I'm getting an error saying "player is not accessed Pylance" and I'm unsure of what is causing it or what it means. If you can lmk how to fix it that would be amazing! Thanks.

  • @Robay146
    @Robay146 Рік тому +4

    This is a great introduction to python for gaming.

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

    I watch Pygame tutorials so I can build my game in C SDL2 - it's literally the same library.

  • @relaxecomvideosdivertidos3905
    @relaxecomvideosdivertidos3905 3 місяці тому

    just when I close the application, appears to me the 'blue' blackground, instead of this appears black, why?

  • @vaclavhanzl8193
    @vaclavhanzl8193 2 місяці тому

    Any tips on how to learn such things? How to approach this trying it on my own? This thing seems too complicated to just somehow start learning and applying this by myself...

  • @FRAMEDSKATEKREW69
    @FRAMEDSKATEKREW69 Рік тому +23

    I remember trying to look up a tutorial like this and never found one this good for python. THANK YOU SO MUCH. I plan to build a small game maybe the scale of the first Mario and really hope it either lands me a job or at least some donations from fans 😂 I’m so excited to try this out this weekend

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

    having a problem at 54:24 where my code is saying "" 'pygame.Rect' object has no attribute ''topLeft' " i am using replit, idk if that changes anything but if I could any help it would be appreciated :)

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

      Use "topleft" not "topLeft", I had the same problem but looking through the PyGame documentation helped with that.

    • @michaelsekelsky4875
      @michaelsekelsky4875 4 місяці тому

      @@loganjames2638 Thank you so much, I couldn't figure out what was wrong.

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

    i am a beginer

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

    ⭐ Timestamps ⭐
    ⌨ (0:00:00) Project Demo
    ⌨ (0:01:32) Project Brief/Getting Started
    ⌨ (0:03:07) Project Setup
    ⌨ (0:04:18) Asset Walkthrough
    ⌨ (0:05:38) Game Setup
    ⌨ (0:10:57) Generating The Background
    ⌨ (0:18:15) Creating The Player
    ⌨ (0:27:39) Moving The Player
    ⌨ (0:31:20) Adding Gravity
    ⌨ (0:35:19) Loading/Splitting Sprite Sheets
    ⌨ (0:48:50) Animating The Player
    ⌨ (0:56:14) Adding Terrain/Blocks
    ⌨ (1:08:51) Pixel Perfect Collision (Vertical)
    ⌨ (1:14:48) Jumping & Double Jumping
    ⌨ (1:22:28) Scrolling Background
    ⌨ (1:27:53) Pixel Perfect Collision (Horizontal)
    ⌨ (1:36:16) Adding Traps (Fire)
    ⌨ (1:45:09) Player Collision With Traps
    ⌨ (1:50:51) Conclusion

  • @jacobwestbrook9527
    @jacobwestbrook9527 6 місяців тому +1

    I can finally watch this with confidence, I guess I'll see how it goes

  • @4nvv4R
    @4nvv4R 6 місяців тому +1

    why those the game get slower when you make the game window bigger ?

  • @Hazzel31337
    @Hazzel31337 Рік тому +4

    nice i used a lot of tims tutorials to learn python, can recommend !

    • @andrewbogard2411
      @andrewbogard2411 2 місяці тому

      I am on the journey to a programming degree and my goal is to program at least one game with every programming language that I learn. With the ultimate goal of designing and coding my own game eventually .

  • @aloneinthenight
    @aloneinthenight 4 місяці тому

    8:45 __main__
    12:48 running from correct directory
    1:20:20 animation to jumps do I need not rlly

  • @NPRojas
    @NPRojas 9 місяців тому

    Es un muy buen video tutorial, pero como una segunda aproximación a PyGame.
    yo creo que este video es mejor para principiantes:
    ua-cam.com/video/FfWpgLFMI7w/v-deo.html
    It is an excellent tutorial, but as a second approach to PyGame.
    I think that this video is better for beginners:
    ua-cam.com/video/FfWpgLFMI7w/v-deo.html

  • @fanitram
    @fanitram 10 місяців тому

    01:18:40 I can only jump the number of times it say: player.jump_count < 2
    01:27:50 Is there a fast way to add floor?
    01:03:00 I checked it, every square in the terrain image is 8 px, it's 12 squares from edge to this image, 12*8=96
    cant't find enemies file

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

    Throrougly enjoying this so far❤❤❤🎉

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

    i could not under stand hoe the loading of the sprites worked

  • @hoseinhoseini-q8v
    @hoseinhoseini-q8v Місяць тому

    How can I find the continuation of your tutorial about the platformer game?

  • @NageshP-te6um
    @NageshP-te6um 4 місяці тому +1

    Wooooooooooooooooooooooooooow

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

    For some reason whenever my character touches the ground it keeps bouncing on it, i double check the code with the one Tim had and I can't find the problem, anyone have any idea what could cause it?

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

      i changed my sprite to something with other dimension (200x200) and seem to be encountering the same thing
      lmk if you find something to fix this

  • @SpaceHasRizz
    @SpaceHasRizz 10 місяців тому

    How can u run the file with a lot of problems I have one and it just crashes does anybody know how to fix it I installed the pygame module but it still didn't work

  • @dosomethingwild4999
    @dosomethingwild4999 4 місяці тому

    "Hi, guys I am here to teach you pixel perfect collision, except its not going to be pixel perfect cause you know .... hacks instead of fixing bugs"

  • @bitteerloesmich
    @bitteerloesmich 4 місяці тому

    I love this work! I am currently working on a similar game for uni, does anybody know how i could make those sprites myself? Any tool recommendations?

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

    I cant RUN, i mean, everything's fine, even the RUN.png loaded, but it doesn't run when it runs(?)

  • @transformers712
    @transformers712 5 місяців тому

    After creating the background my separate window just keeps shutting down and I figure out why?

    • @ThatOneSweat
      @ThatOneSweat 5 місяців тому

      Can i see your code? and is there any error that showed up?

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

    The gravity implementation in this code is awfull. It hurts knowing that it could be impremented with just 2 lines of code.
    Every frame add 1 to y velocity, if on ground set y velocity to 0.

  • @lm2thed142
    @lm2thed142 6 місяців тому

    recreating the follw up on scripts , when making call player and just drawing it with the rectangle . i found out I put pgyame.rect but it required a pygame.Rect , that claimed a value error :(

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

    Tech with Tim good programmer
    channel was very understable

  • @dosomethingwild4999
    @dosomethingwild4999 4 місяці тому

    This Tutorial is good but has a HUGE issue. since we are resetting the x.vel so the player doesnt move on toggle, but on hold... everytime the function is called we are resetting to the idle sprite. its not super visilible with this specific animation but its a BIG PROBLEM. maybe try to use on keydown instead of keys? idk

    • @dosomethingwild4999
      @dosomethingwild4999 4 місяці тому

      You can check this by adding print(sprite_sheet)

    • @dosomethingwild4999
      @dosomethingwild4999 4 місяці тому

      I cant believe this isnt in the comments. did everyone fallow line by line XD ?? hahaha no one tried different assets/animations....

  • @Valentina_kujo
    @Valentina_kujo 10 місяців тому

    in Generating the backround, how in line 40 you make two variables take 2 values if there is only one? im having this error: ValueError: too many values to unpack (expected 2)

  • @Ice_2192
    @Ice_2192 5 місяців тому

    This is great but some visual explanation would help next time something similar to networkchuck but without the over-the-top energy.

  • @ThatOneSweat
    @ThatOneSweat 5 місяців тому

    Hello👋, I will try to help if you have problem with the code.

  • @万沪-s3c
    @万沪-s3c Рік тому

    The tutorial is too complicated and advanced for novices. You must be proficient in Python and also master the usage of the pygame module, which is suitable for speeding up the viewing process.

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

    WHY CANT EVERYONE BE AS DOPE AS THE BEGINNING BRO SAID IF THAT DOESNT WORK THEN HERES 5 OTHER OPTIONS AND 2 VIDEOS damn bro cares :)

  • @esgn.design
    @esgn.design 6 місяців тому

    TypeError: 'pygame.surface.Surface' object is not iterable

  • @cjbrown3396
    @cjbrown3396 4 місяці тому

    Does anyone knows how to add more fire and traps? need help

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

    This has help me a bunch the way he shows the code and explain the input methods give me total controle **newmember alert**

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

    I am having trouble where on line 69 27:29 where he placed player.draw(window) and run the script it launched, but for me it gives the error of AttributeError: 'Player' object has no attribute 'draw' what should I do?

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

      Hi did you ever find a fix for this? Having the same problem and can't seem to solve
      Thanks

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

      No I couldn't, I can't find anyone who can help with me this specific problem

    • @linusyong4731
      @linusyong4731 9 місяців тому

      can you describe the error i might be able to help

    • @temitopeolarinde1700
      @temitopeolarinde1700 4 місяці тому

      @@linusyong4731 i'm having the same issue. it just says 'Plater" object has no attribute 'draw'

    • @temitopeolarinde1700
      @temitopeolarinde1700 4 місяці тому

      nvm i figured it out

  • @shaunduzstuffs
    @shaunduzstuffs 9 місяців тому

    The assets list makes it seeem like there is way more than this that you didnt go over. Its like this is a part 1 that never got a part 2

    • @lm2thed142
      @lm2thed142 6 місяців тому

      assets , lists are just ways to bring images and other animations into code since you cant really make them in python besides creating turles etc. U make these in things like a sprite maker online or anything with the correct scale.

    • @shaunduzstuffs
      @shaunduzstuffs 6 місяців тому

      @@lm2thed142 I'm aware of that. I'm talking about the assets themselves suggesting there is more to this, such as assets for enemies

  • @mayam9478
    @mayam9478 4 місяці тому

    Why does it say “for beginners” in the title but in the brief it says you should be intermediate???

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

    hello, I am having a problem at 48:34 at the def draw. I keep on getting this error in the terminal (KeyError: 'idle_left'). I've tried to fix this problem multiple times by rewatching and recoding it but I still can't seem to solve it.
    def draw(self, win):
    self.sprite = self.SPRITES["idle_" + self.direction][0]
    win.blit(self.sprite, (self.rect.x, self.rect.y))
    I belive this is the code that keeps on erroring but I do not know how to solve it.

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

      the ‘if direction:’ conditional within the load_sprite_sheet function needs to be within the first for loop called ‘for image in images’, not just in the function, that fixed it for me

    • @JDYouTube-r8g
      @JDYouTube-r8g Рік тому

      How did you fix it I have a same problem

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

      I was having the same problem, and it was happening because an identation error. For me, it was in th load_sprite_sheets function: the return of the function must be out of the else block, otherwise it wont work properly.

    • @LuisGonzalez-pc3zw
      @LuisGonzalez-pc3zw 11 місяців тому

      Thank you so much@@otavio_rodrigues1823

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

    Considering pygame it's a SDL wrapper, this tutorial is useful for C++ programmers who are using SDL to game games aswell
    Great tutorial!

    • @TheRaylan20
      @TheRaylan20 4 місяці тому

      what is a SDL wrapper?

    • @TheRaylan20
      @TheRaylan20 4 місяці тому

      @@yrds96 So, this is something like, how do you write the code for the program runs faster?

    • @TheRaylan20
      @TheRaylan20 4 місяці тому +1

      @@yrds96 Oh, I see. Then, It's basically a trick. That's good to know.

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

    Thanks for your tutorial.
    How can make this game mobile compatible for ios/android?
    Please let me know the possibilities.

  • @iceweasel1747
    @iceweasel1747 10 місяців тому +1

    why this video is titled with the word 'beginner'?

    • @lm2thed142
      @lm2thed142 6 місяців тому

      its a beginner class into making games. You cant really make a game without knowing the tools? why its considered a beginner status for making games. example being, you don't teach yourself a rainbow flick in football before you learn how to kick a ball

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

    I am 12 and I could do it thank you so much

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

    1:28
    "Jesse, we need to code"

  • @MoeiraJohnson
    @MoeiraJohnson 2 місяці тому

    It’s blurry for me

  • @jesseyrichard4611
    @jesseyrichard4611 6 місяців тому

    This game looks like Growtopia, we need a growtopia 2.0

  • @David-fq5un
    @David-fq5un 11 місяців тому

    Where to get the enemies? says link in project page, but no link.

  • @seif..star.0
    @seif..star.0 Рік тому +1

    Amazing

  • @DAVIDXUE-p5f
    @DAVIDXUE-p5f 3 місяці тому

    There are no main.py when i downloaded it

  • @iceweasel1747
    @iceweasel1747 9 місяців тому

    tim says for intermediate programmers but video title says for beginners.

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

    It's so laggy (yes my laptop is old) even for just a simple platformer game. Definitely pygame is not an engine for serious commercial game.

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

      Python is not really a good platform for commercial games, but on a reasonably fast PC it works remarkably well. For commercial games you should really be looking at Java as a minimum or a compiled language like C++. Of course, they are going to be much more work to get a game that even does what this does.

  • @abhijitha.a
    @abhijitha.a Рік тому +1

    more on phyton from scratch

  • @CinnxmonCxndy
    @CinnxmonCxndy 16 днів тому

    goodbye my hands...😔

  • @BEEZY-c7q
    @BEEZY-c7q 8 місяців тому

    This video seems cool but I've run into a problem. I'm on the part where we're making the window. when I tried to run the code I wrote and the tutorial code, it said " Traceback (most recent call last):
    File "C:\Users\freeg\PycharmProjects\pythonProject31\main.py", line 24, in
    if _name_ == "_main_":
    NameError: name '_name_' is not defined " what can I do to fix this?

    • @NolanJacob-u4y
      @NolanJacob-u4y 7 місяців тому

      main should have double underscores around it

    • @ThatOneSweat
      @ThatOneSweat 5 місяців тому

      yeah it should look like this: if __name__ == "__main__":

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

    CAN I MAKE GAME LIKE THIS TO ANDROID MOBILE PHONE AND RELEASE THEM IN GOOGLE STORE?

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

    Tried the code from the GH repository. When you run to a side, why is it so visible that the scrolling of the floor is not smooth at all?

    • @ThatOneSweat
      @ThatOneSweat 5 місяців тому

      Its probably because the width and height are too big, try scaling it down a bit

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

    Thanks! It was fun but it works very laggy on my computer (and I don't know why, it's a good computer).

  • @Android-17
    @Android-17 Рік тому +2

    This is excellent!
    Thanks.

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

    Love this ❤

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

    Omg yay! I can’t wait to try this

  • @LordJuanse
    @LordJuanse 6 місяців тому +1

    Excellent tutorial mate!

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

    code not even working for me, it says pygame module not found but pygame is already installed, also import math random and os it's not even getting highlighted

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

    Let's good Tim!

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

    Thank you very much for posting this video....
    😀😀😀😀

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

    what to do if the window doesn't pop up when running the program

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

    Absolutely amazing video!

  • @gelomelo8968
    @gelomelo8968 5 місяців тому

    hey! can i use intellij idea to code this game

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

    you are super genius

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

    Getting ModuleNotFoundError: No module named pygame. I’m on windows

    • @AAlgeria
      @AAlgeria 4 місяці тому

      pip install pygame

  • @ศุวิลศุภเสถียร

    The github code is kinda broken, i can't view the code there. But Good job!

  • @bimothecowboy
    @bimothecowboy 4 місяці тому

    lol doing this on linux whos with me ???

  • @Ahmad-xr9jn
    @Ahmad-xr9jn Рік тому

    how to download the github repository?

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

    Thanks so much for putting these tutorials out there. One of the things i don't understand is how do you know what functions to use within the PyGame library (Or any library for that matter)?
    I do know where to find the documentation online but it seems like a lot of info to parse through. Or do I just need to bite the bullet and RTFM? haha.

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

    muito obrigado pela Magnifica aula

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

    My files wouldn’t download😢