Python Platformer Game Tutorial for Beginners

Поделиться
HTML-код
  • Опубликовано: 29 дек 2024

Комментарии • 232

  • @Omni-cu2fk
    @Omni-cu2fk Год назад +98

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

  • @androspuddy2
    @androspuddy2 Год назад +32

    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!

    • @SpennoDJ
      @SpennoDJ Год назад +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

    • @AnaLogical-rx1oj
      @AnaLogical-rx1oj 2 месяца назад

      @@SpennoDJbestie he is clearly not a professional programmer. Why would an adult (he has a son old enough to code with) programmer who, by virtue of being an adult, has a few good years of work under his belt, even need a tutorial for this.

  • @KittenBand
    @KittenBand Год назад +28

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

    • @gelomelo8968
      @gelomelo8968 8 месяцев назад +1

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

  • @Joao-oz5vj
    @Joao-oz5vj 8 месяцев назад

    Best tutorial of the kind. Not too slow that takes 5 hours just to insert a block, not too fast that we dont understand. Perfectly timed, well done!!!

  • @Suhas-hf1rm
    @Suhas-hf1rm 6 месяцев назад +5

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

  • @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

  • @gavin.d.m
    @gavin.d.m 9 месяцев назад +1

    Im very new to Python, and reigniting my interest in programing. This has whet my appetite to keep going in my learning. Thank you

  • @FRAMEDSKATEKREW69
    @FRAMEDSKATEKREW69 Год назад +25

    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

  • @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.

  • @LordJuanse
    @LordJuanse 9 месяцев назад +1

    Excellent tutorial mate!

  • @Robay146
    @Robay146 Год назад +4

    This is a great introduction to python for gaming.

  • @backpackingkat6320
    @backpackingkat6320 Год назад +1

    Omg yay! I can’t wait to try this

  • @bcgamer2
    @bcgamer2 4 месяца назад +1

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

  • @dargon-k4z
    @dargon-k4z Месяц назад

    Thanks Tim! After I'm finished, I am going to tweak the code a bit!

  • @jacobwestbrook9527
    @jacobwestbrook9527 9 месяцев назад +1

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

  • @thoufeeq1227
    @thoufeeq1227 Год назад +7

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

  • @gabriellita7236
    @gabriellita7236 2 месяца назад +1

    I completed the full tutorial. It was very good even though some parts of code not really explained. However, now I'm going to add my own things to the game and i think that will give me better understanding of the code too. Thanks a lot for the tutorial.

  • @marcosaznar962
    @marcosaznar962 Месяц назад

    THANK YOU SO MUCH!

  • @Hazzel31337
    @Hazzel31337 Год назад +4

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

    • @andrewbogard2411
      @andrewbogard2411 5 месяцев назад

      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 .

  • @dreamentstudios
    @dreamentstudios Год назад +1

    Absolutely amazing video!

  • @mikeyoung5029
    @mikeyoung5029 Год назад +25

    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 Год назад

      yes i fixed it thanks a lot!

    • @DeepanshuSharma-v9e
      @DeepanshuSharma-v9e Месяц назад

      I'm facing the issue of the directory for 3 weeks 😢I will try your method to solve it I'm working in pycharm

  • @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

  • @jamalmohammed4350
    @jamalmohammed4350 Год назад +1

    Tech with Tim good programmer
    channel was very understable

  • @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 Год назад

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

  • @Sipliks-l9g
    @Sipliks-l9g Месяц назад +2

    I know you're probably not gonna see this but THANK YOU I AM ON animating the player halfway through finished the x animation but not jumping running or falling yet also THANK YOU AGAIN.

  • @codybond4446
    @codybond4446 Год назад

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

  • @prosword3137
    @prosword3137 4 месяца назад

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

  • @InfernalPasquale
    @InfernalPasquale Год назад +4

    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?

  • @Android-17
    @Android-17 Год назад +2

    This is excellent!
    Thanks.

  • @zyonrams9432
    @zyonrams9432 Год назад +62

    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 Год назад +11

      skill issue

    • @flowersArePretty1
      @flowersArePretty1 Год назад +10

      I agree

    • @Show1.
      @Show1. 11 месяцев назад +6

      Exactly

    • @ThisIsACreativeName
      @ThisIsACreativeName 11 месяцев назад +4

      Yeah, I had to rewind the video a lot

    • @zdiddy4112
      @zdiddy4112 11 месяцев назад +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..

  • @JonathanTrinityMartin
    @JonathanTrinityMartin 4 месяца назад

    Throrougly enjoying this so far❤❤❤🎉

  • @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 7 месяцев назад

      what is a SDL wrapper?

    • @TheRaylan20
      @TheRaylan20 7 месяцев назад

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

    • @TheRaylan20
      @TheRaylan20 7 месяцев назад +1

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

  • @CowboyCanadian
    @CowboyCanadian Год назад +2

    Love this ❤

  • @chip3194
    @chip3194 6 месяцев назад

    Nice guide
    THANK YOU!!

  • @angus3963
    @angus3963 Год назад +1

    Woo! Nice one!

  • @VeljkoJevtic
    @VeljkoJevtic 11 месяцев назад

    Hvala Brate! :)

  • @hanzalashah6555
    @hanzalashah6555 4 месяца назад

    you are super genius

  • @star._.dust._.
    @star._.dust._. Год назад

    YOU'RE AMAZING!

  • @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 :)

  • @Robot_Skull
    @Robot_Skull Год назад +1

    1:28
    "Jesse, we need to code"

  • @saidneder41
    @saidneder41 Год назад +1

    Let's good Tim!

  • @seif..star.0
    @seif..star.0 Год назад +1

    Amazing

  • @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 7 месяцев назад

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

  • @tejaswithme3713
    @tejaswithme3713 Год назад

    Thanks team~

  • @mariabuys9620
    @mariabuys9620 Год назад

    Wow That so cool😁

  • @CodewithYusuf
    @CodewithYusuf Год назад

    So great 😀 ❤

  • @ducaminimo1978
    @ducaminimo1978 Год назад +2

    muito obrigado pela Magnifica aula

  • @fanitram
    @fanitram Год назад

    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

  • @octopuzzi
    @octopuzzi 2 месяца назад

    30:38 why is there the FPS parameter when it isn't even used? sorry if i sound rude i am just very confused and struggling on how to fix my code LOL

  • @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 Год назад

      Thank you so much@@otavio_rodrigues1823

  • @das-d1106
    @das-d1106 11 месяцев назад +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 8 месяцев назад

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

  • @devinmorton7390
    @devinmorton7390 Год назад

    Thank you!!!

  • @Imnotsoumyajit
    @Imnotsoumyajit Год назад

    Tim is a really good teacher.... hats off 🫂

  • @wowhow3905
    @wowhow3905 Год назад

    Thank you so much! I'll try it right now

  • @Ice_2192
    @Ice_2192 8 месяцев назад

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

  • @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 Год назад

      can you describe the error i might be able to help

    • @temitopeolarinde1700
      @temitopeolarinde1700 7 месяцев назад

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

    • @temitopeolarinde1700
      @temitopeolarinde1700 7 месяцев назад

      nvm i figured it out

  • @craftyindianpotato3049
    @craftyindianpotato3049 4 месяца назад

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

  • @aloneinthenight
    @aloneinthenight 7 месяцев назад

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

  • @miroslavlovas7099
    @miroslavlovas7099 8 месяцев назад +1

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

  • @Eren__Zana
    @Eren__Zana Год назад

    great!

  • @thoserandomshredders
    @thoserandomshredders Год назад +2

    Just Wondering: How Do You Add Multiple Fires?

  • @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'

  • @shaunduzstuffs
    @shaunduzstuffs Год назад

    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 9 месяцев назад

      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 9 месяцев назад

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

  • @vaclavhanzl8193
    @vaclavhanzl8193 5 месяцев назад

    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...

  • @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?

  • @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.

  • @vijaysamant2864
    @vijaysamant2864 9 месяцев назад +1

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

  • @vision_lc
    @vision_lc Год назад

    Tech with tim

  • @WizavPRO
    @WizavPRO Год назад +2

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

  • @digitaldeveloper9
    @digitaldeveloper9 Год назад

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

  • @hoseinhoseini-q8v
    @hoseinhoseini-q8v 4 месяца назад

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

  • @4nvv4R
    @4nvv4R 9 месяцев назад +1

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

  • @hürriyetpalestine
    @hürriyetpalestine Год назад +1

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

  • @Earthling409
    @Earthling409 6 месяцев назад +3

    I WILL MAKE SILKSONG

  • @bitteerloesmich
    @bitteerloesmich 7 месяцев назад

    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?

  • @talentoftheworld0711
    @talentoftheworld0711 4 месяца назад

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

  • @satyre5844
    @satyre5844 10 месяцев назад +1

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

  • @codemedio6418
    @codemedio6418 2 месяца назад

    Do we have score also for this game ?

  • @NageshP-te6um
    @NageshP-te6um 7 месяцев назад +1

    Wooooooooooooooooooooooooooow

  • @Beki_Playz
    @Beki_Playz Месяц назад

    how do we add another image ike a terrain ? not a different terrain type just another one

  • @Valentina_kujo
    @Valentina_kujo Год назад

    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)

  • @thecritiquer9407
    @thecritiquer9407 4 месяца назад

    ❤❤❤

  • @abhijitha.a
    @abhijitha.a Год назад +1

    more on phyton from scratch

  • @lm2thed142
    @lm2thed142 9 месяцев назад

    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 :(

  • @oneprez
    @oneprez 5 месяцев назад

    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.

  • @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).

  • @touchedbygod235
    @touchedbygod235 Год назад +2

    thank you i always dreamed to make a game and publish it i am 9

  • @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?

    • @itsSoulTorpedo
      @itsSoulTorpedo Год назад

      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

  • @SpaceHasCripplingGamblingDebt
    @SpaceHasCripplingGamblingDebt Год назад

    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

  • @relaxecomvideosdivertidos3905
    @relaxecomvideosdivertidos3905 6 месяцев назад

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

  • @stuff9283
    @stuff9283 Год назад

    Cool

  • @gelomelo8968
    @gelomelo8968 8 месяцев назад

    hey! can i use intellij idea to code this game

  • @AngelMaldonado2
    @AngelMaldonado2 Год назад

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

  • @BEEZY-c7q
    @BEEZY-c7q 11 месяцев назад

    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 10 месяцев назад

      main should have double underscores around it

    • @ThatOneSweat
      @ThatOneSweat 8 месяцев назад

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

  • @dosomethingwild4999
    @dosomethingwild4999 7 месяцев назад

    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 7 месяцев назад

      You can check this by adding print(sprite_sheet)

    • @dosomethingwild4999
      @dosomethingwild4999 7 месяцев назад

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

  • @heisenberg1114
    @heisenberg1114 Год назад

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

  • @cjbrown3396
    @cjbrown3396 6 месяцев назад

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

  • @keisharalvina1192
    @keisharalvina1192 Месяц назад

    I have installed pygame, but why does it say import phygame ModuleNotFoundError: No module named pygame

  • @utkarshaggarwal3706
    @utkarshaggarwal3706 9 месяцев назад

    How to add fire trap at other positions as well

    • @ThatOneSweat
      @ThatOneSweat 8 месяцев назад +1

      In the "def main(window):" each time the "fire" Variable is called, i make a duplicate called "fire1".
      like this:
      fire = Fire(100, HEIGHT - block_size - 64, 16, 32)
      *fire1 = Fire(100, HEIGHT - block_size - 64, 16, 32)*
      fire.on()
      *fire1.on()*
      in the "objects" variable i do this:
      objects = [*floor, Block(0, HEIGHT - block_size * 2, block_size), Block(block_size * 3, HEIGHT - block_size * 4, block_size), fire, *fire1* ]
      and i add another loop too:
      fire.loop()
      *fire1.loop()*

  • @DeepanshuSharma-v9e
    @DeepanshuSharma-v9e Месяц назад

    I'm facing directory issue in pycharm to load background image can anyone help me im stuck on this from 3 weeks