If You Want To Be An Advanced Game Developer Build This Project

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ก.ย. 2024

ความคิดเห็น • 154

  • @stefanstojadinovic2486
    @stefanstojadinovic2486 2 ปีที่แล้ว +25

    Amazing content, not only demonstrating how to make a pretty complex game but also teaching some core concepts I've never heard of. Videos like this are worth the suffering of turning off the adblock

  • @ukaszzbrozek6470
    @ukaszzbrozek6470 2 ปีที่แล้ว +6

    I am blown away how you break this complex problem into smaller ones and plan how to implement them in efficient order.

  • @richardohana8898
    @richardohana8898 2 ปีที่แล้ว +56

    Very cool video! It showcases a lot of OOP concepts that are not always the most obvious to new-ish programmers. If I may, I'd suggest adding just a very short bit at the front of this video describing the process and decision making you went through before starting this project. Along with that, a short breakdown of why these OOP fundamentals are important (setters, getters, encapsulation, etc) when they come along would be tremendous. Thanks for your amazing content Kyle!

  • @johnadriandodge
    @johnadriandodge 2 ปีที่แล้ว +4

    Mr. Jedi Kyle. I do not think I have ever seen a programmer work as fast as you and with something so complicated as this.
    Your design is awesome and your technical knowledge is AMAZING!

  • @1krystyan
    @1krystyan 2 ปีที่แล้ว +8

    Just started out with JS and tackled this project from start to end, really insightful and really interesting how you chose the get/set method, the code can be made in REACT as well, but in vanilla it serves it's purpose and it's working just fine. Wanted to let you know this really helped me and I am sure many others, just wanted to sincerely thank you for the top quality content/guidance that you have provided us.

  • @rvft
    @rvft 2 ปีที่แล้ว +5

    ⚠️ Never ever change *::before and *::after font-family. If you are going to use an icon font then most likely they won't work. Because icon font families like Font-Awesome, Google Icons Material Icons, Box icons, Remix icon and so on use or elements' ::before class to show the icon. If you overwrite font-family, then they simply won't show up.

  • @TomDoesTech
    @TomDoesTech 2 ปีที่แล้ว +11

    Greate tutorial as always! A tone of stuff to learn here. If you finish this project, you should put it in your portfolio, it's really impressive.

    • @NoOne-te9bu
      @NoOne-te9bu 2 ปีที่แล้ว

      but then you didn't do it yourself

    • @TomDoesTech
      @TomDoesTech 2 ปีที่แล้ว

      @@NoOne-te9bu does that change any of what I said?

    • @kaiixerhub
      @kaiixerhub 2 ปีที่แล้ว

      You can follow through the video, get concept and make unique ideas out of it. Then put to your portfolio.

    • @NoOne-te9bu
      @NoOne-te9bu 2 ปีที่แล้ว

      @@kaiixerhub Yeah true, I was just wondering because essentially we're just literally copying someone else's work

    • @TomDoesTech
      @TomDoesTech 2 ปีที่แล้ว +3

      @@NoOne-te9bu As long as you understand it and can reproduce it, it's fine. A good interviewer will ask you questions about the project and you should be able to answer them.

  • @AmandeepSingh-sx9ke
    @AmandeepSingh-sx9ke 15 วันที่ผ่านมา

    Please make more projects like this. These videos are very helpful.

  • @ethioapps836
    @ethioapps836 2 ปีที่แล้ว +1

    super super cooool. much appreciated. i live in ethiopia. i highly recommend to people learn form u and give u a donation as a gift. U deserve much more bro keepup

  • @Cracked1ce
    @Cracked1ce 2 ปีที่แล้ว +1

    This is fantastic. I learned so many new javascript things watching you code this

  • @toy_woody
    @toy_woody 2 ปีที่แล้ว

    I am watchin your 3 years ago video right now and I see how better and better your communication skills became over time. Love your content, your channel is best for me. Good job and thank you very much for your content, easy and fast explanation videos. You are the best, GL!

  •  2 ปีที่แล้ว +4

    I'm only at 14 minutes in the video, but I've already learned a lot. Thank you for these awesome videos! :)

  • @mdridoy-ef2pw
    @mdridoy-ef2pw 2 ปีที่แล้ว +2

    awesome tutorial!
    The way you structured your code is very impressive.
    A lot of things to note from this video.
    I finished the project and added score and swipe functionality for mobile.

    • @bs7203
      @bs7203 2 ปีที่แล้ว

      How?

    • @mdridoy-ef2pw
      @mdridoy-ef2pw 2 ปีที่แล้ว

      @@bs7203 adding scoring is simple
      as for swipe, there's no built in event listener
      but there are touchstart and touchend events
      you can calculate how much and which direction the user swiped by comparing the x,y co-ordinates provided by the events
      for example, if x2 -x1 is positive, you know the user swipped in right direction
      same way if y2 - y1 is positive, the user swipped down

    • @bs7203
      @bs7203 2 ปีที่แล้ว

      @@mdridoy-ef2pw Thanks!

  • @ssk7690
    @ssk7690 ปีที่แล้ว

    I've watched your content for over 50 hours now. You explain things so well. I did not have a good teacher throughout my life. You're the one filling that void. Thanks for making these videos ♥

  • @iam_jeremy
    @iam_jeremy 2 ปีที่แล้ว +1

    I really love that you used vanilla javascript here!

  • @jayfluxx
    @jayfluxx 2 ปีที่แล้ว +29

    Just want to say that you are an incredible youtuber, and we all appreciate the effort you put into your videos to make it more understandable than any other. You are my idol, and I love watching and learning with your videos. like && subscribe

  • @sojuthomas7727
    @sojuthomas7727 2 ปีที่แล้ว +2

    Hi Kyle, i am a subscriber of your channel. One thing I like about your channel is trying to solve problems that is closer to real world application that makes your channel stand apart from other tech channel.However sometimes I fell like you are very fast on your teaching, it is difficult for people like me to keep up with that speed. I think it's better to slow things down showing us the process step by step,May be the video could be longer by half hour or so ,but that's ok. Probably you had explained the concepts on previous videos, but it's not helpful for people who don't watch all your previous vedios, Please keep this in your mind.Thanks

  • @zanGalant
    @zanGalant 10 หลายเดือนก่อน +1

    Thank you for the tutorial. I just managed this last night and get the code to working. It took me almost the entire night as I had to pause and go over sections of the tutorial multiple times to get the code running and rectify the errors that pop up along the way. Nevertheless, this is an excellent tutorial and has really added a lot to my knowledge regarding JS classes.
    I'm currently revisiting the code trying to further understand how this code. I'm planning to create a merge game (i.e. 'Merge Gardens' etc.) and intend to use this project as the base since 2048 has the same core mechanic, "merging".

    • @dominicnabbott8951
      @dominicnabbott8951 9 หลายเดือนก่อน

      Did you create the project in the end? I'd love to see it!

  • @rumonintokyo
    @rumonintokyo 2 ปีที่แล้ว +1

    The fact that u condensed all these in one video is mind boggling... and always always your vids are full of new stuff to learn so thank you sir!

  • @ShawnRucker
    @ShawnRucker 2 ปีที่แล้ว +1

    Amazing video. I have worked in JavaScript for YEARS and you still taught me some cool tricks!

  • @Panure
    @Panure 2 ปีที่แล้ว +3

    18:55 I had no clue that you could create private fields in JavaScript until now :o

    • @Blackbirdone11
      @Blackbirdone11 2 ปีที่แล้ว

      Its super new and not really often used and the code looks a littlebit silly:D

  • @kiefsOnlinegames
    @kiefsOnlinegames 2 ปีที่แล้ว +1

    how to fix from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https??

  • @mattcoulter7
    @mattcoulter7 2 ปีที่แล้ว +4

    Nice tutorial 👍 it’s always interesting seeing other peoples approaches to problem solving. I built this game a while back in JavaScript too, but utilised a canvas element and had no animations. It’s great to see the outcome more polished. I didn’t know about animation event listeners prior to this, thanks!

  • @indianKidSingh
    @indianKidSingh 2 ปีที่แล้ว

    Great Tut, great explanation, quality code,best practices and no promotions to distract us 🙇🏻‍♂️🙇🏻‍♂️

  • @marquisegbunike5773
    @marquisegbunike5773 11 หลายเดือนก่อน

    I know your knowledge in both HTML5, CSS & JavaScript didn't take just a day and how you master it. Hope to do something(apps) better than this here some day. You're damn good. Kudos to you.

  • @sailee5208
    @sailee5208 2 ปีที่แล้ว

    Amazing video! Just coded it through and learnt some new things. Good luck with the 2048 website will be sure to share it on socials and play along myself.

  • @graydhd8688
    @graydhd8688 10 หลายเดือนก่อน

    This was definitely a good leap above my current skill level, but I made it through. Not that I understood half of it lol. Going to go over what I typed on my own time though and try to understand all the concepts in this I didn't really get. Already spent an hour reading about the map function and feel much more familiar with that, plenty of other things I'll be going over though

  • @cloud_tsukamo
    @cloud_tsukamo 2 ปีที่แล้ว

    20:11: "So at this point we've done a lot of work to essentially do absolutely nothing"
    story of my life right there

  • @HungBya
    @HungBya 2 ปีที่แล้ว

    Although I can do everything by myself I still love all of your videos. Your code is clean and the way you explain them is clear. Keep up the excellent work.

  • @maqameda
    @maqameda 9 หลายเดือนก่อน

    That's amazing tutorial. Thanks a lot mate and please continue posting great stuff!

  • @jeromelawrence9819
    @jeromelawrence9819 2 ปีที่แล้ว

    This brother is a genuis.. Explains things so succinctly..

  • @benjamincardona5444
    @benjamincardona5444 2 ปีที่แล้ว

    that business logic after you pick up the tile to move, even the same logic to get the tile to move could be extracted into their own methods, and the if nesting could be potentially avoided.

  • @elton-react-dev
    @elton-react-dev 2 ปีที่แล้ว

    All your videos are amazing. This one couldn't be different. Thanks for sharing so much knowledge.

  • @olufisayoobadina2703
    @olufisayoobadina2703 2 ปีที่แล้ว

    Wow, you really taught me a lot about CSS animation and JavaScript classes

  • @mrunalsinhjadeja3937
    @mrunalsinhjadeja3937 2 ปีที่แล้ว

    the way you are teaching is absolutely an amezing, and I am waiting for you about angular tutorial. hope you start it ASAP.

  • @ikocheratcr
    @ikocheratcr 2 ปีที่แล้ว

    Very nice tutorial, thanks a lot. I followed along typing, and now I have my local version :)

  • @debrupmukherjee9535
    @debrupmukherjee9535 2 ปีที่แล้ว

    I'm new to this field. Thanks for the contents you post.

  • @stellaras2336
    @stellaras2336 2 ปีที่แล้ว

    This video is humbling me in every aspect as a web dev

  • @devbites77
    @devbites77 2 ปีที่แล้ว

    I especially liked the OOP side. I learned a few things.

  • @adithyashetty851
    @adithyashetty851 2 ปีที่แล้ว +1

    Does this even work on a mobile phones and does it react to touch??

  • @darshanpagar1894
    @darshanpagar1894 2 ปีที่แล้ว +1

    My that error is not going even after if (cell.tile == null) continue. Please help me

  • @regilearn2138
    @regilearn2138 2 ปีที่แล้ว

    Hi ,
    thanks for all the support for react /javascript developers,
    my request is please do a react video how to use* All the FORM components like radio btn, select box,Checkbox,input, ,calendar etc,and group of those elements* and practically what we use in industry to build apps **without any third part library please only use pure react with hooks***,bcz it will give the clear idea before moving in to formik or any other libruary,i would appreciate if u can use Mongodb for this.I know u will help on this.

  • @jeremiasscharovsky5434
    @jeremiasscharovsky5434 2 ปีที่แล้ว +10

    Pretty cool simple project. Just, my performance obsession screamed when you added a transition to top and left instead of using transform. Is there any particular reason to prefer top and left over translateY and translateX?

    • @RockerStarrr
      @RockerStarrr 2 ปีที่แล้ว +5

      Web dev "SIMPLIFIED" even vs Kevin Powell the king of CSS he made it really simple but tedious

    • @pino9678
      @pino9678 2 ปีที่แล้ว

      i like how you said this but not the triple for loop, although it's quite trivial in this case.

  • @StellarWeb008
    @StellarWeb008 2 ปีที่แล้ว

    Great- You are!!!! I also had once wanted to build this game but i couldn't

  • @userasd360
    @userasd360 2 ปีที่แล้ว

    thank you for making these videos. I have learned a lot from these videos.

  • @CemKavuklu
    @CemKavuklu 2 ปีที่แล้ว +1

    Great video. I could recreate the game very easily thanks to your awesome content. However, after trying it on a mobile browser, I realized it doesn't handle swipe events. So, I implemented those and created a PR for your repo. Since the HTML is already responsive, I figured people would want to play this on their phones also. Hope it helps. Love the hair and the channel. Keep it up! :)

    • @bs7203
      @bs7203 2 ปีที่แล้ว

      How?

  • @bennymeister
    @bennymeister 2 ปีที่แล้ว +1

    The chance of getting a 4 instead of a 2 is actually 10% not 50%. Great video though :)

  • @ninjacodertech
    @ninjacodertech 2 ปีที่แล้ว +1

    i was literally trying to make this a week before the vid came out

  • @plasmodiun1
    @plasmodiun1 2 ปีที่แล้ว +1

    Este tipo de css para mi esta a otro nivel

  • @greenannabelle1860
    @greenannabelle1860 2 ปีที่แล้ว

    Hello, nice tutorial! Thank you for that.
    But one thing I can't really understand is, In the slideTiles function, why you create the let lastValidCell; and below the
    if(lastValidCell!= null){}, it should be null, because it's outside the for loop... and the lastValidCell is not initialized

  • @joonkim9302
    @joonkim9302 2 ปีที่แล้ว +1

    this is an 'intermediate level' project?? To me it's god-level... if I could pull this off, i wouldn't be happier.. People in the comments are all too good

  • @tooveralls
    @tooveralls 2 ปีที่แล้ว

    Video: 6:48
    Can some one explain to me why the css div's cell grid is not showing up properly, and it is going over each other? With the width is 0

  • @shistatasubedi499
    @shistatasubedi499 ปีที่แล้ว

    How do I add highscore and current score in this project? I can't make it seem work no matter what.

  • @codingislove3707
    @codingislove3707 2 ปีที่แล้ว

    ure freaking awesome

  • @tomaszmarczak9432
    @tomaszmarczak9432 ปีที่แล้ว

    Kyle, could you make a vid about getters and setters?

  • @calcio437
    @calcio437 2 ปีที่แล้ว

    thanks

  • @HrissW
    @HrissW 2 ปีที่แล้ว

    Man, I want a job this year as a Frontend developer. I'm stressed out, super uncertain about it

  • @amritgagra886
    @amritgagra886 2 ปีที่แล้ว

    Hi Kyle, your videos very useful for me.you explain the topic very clear.so please you can make the videos on performance observer and navigator in javascript.
    Thanks Kyle bro

  • @saisurajprathigadapa8121
    @saisurajprathigadapa8121 2 ปีที่แล้ว

    Hey, Can someone share the link of the video where he explained about a way in typescript to skip 0 when did 'if(value)' check?

  • @ouvie
    @ouvie 2 ปีที่แล้ว

    thank u gonna do this in a bit

  • @karthikm.1804
    @karthikm.1804 2 ปีที่แล้ว

    please bring more cool project like this one

  • @007jayy
    @007jayy 2 ปีที่แล้ว

    I just installed this game like yesterday... What are the odds 😳

  • @ankitkumardubey0095
    @ankitkumardubey0095 ปีที่แล้ว

    Woww thank you so much for this

  • @seanlowe7443
    @seanlowe7443 2 ปีที่แล้ว

    Damn that was fast but it was good. Thanks!

  • @temidayovictor9709
    @temidayovictor9709 11 หลายเดือนก่อน

    This is a great work. I'm trying to implement this in a next js application, and i'm experiencing a lot of difficulty. Any help with that?

  • @ziacodes
    @ziacodes 2 ปีที่แล้ว

    *As there are x and y variables* in css, why can't we declare like
    *_--x: 1vmin; instead of --x: 1;_*
    8:20

    • @bennymeister
      @bennymeister 2 ปีที่แล้ว

      Not sure i understood your question correctly, but using plain numeric values makes it easier to deal with in JavaScript.

    • @ziacodes
      @ziacodes 2 ปีที่แล้ว

      @@bennymeister Thanks 😉

  • @subsnes
    @subsnes 2 ปีที่แล้ว

    Nice video!
    Instead of canMoveX, wouldn't it be easier to just check what the last move was, and prevent the same move twice? All other moves should be possible unless the game is over. Or am I missing something?

    • @subsnes
      @subsnes 2 ปีที่แล้ว

      Oh yeah, the new tile would make it possible to make the same move twice... 😅 Disregard

  • @suryameda6215
    @suryameda6215 2 ปีที่แล้ว

    13:00 Uncaught (in promise) Error: The message port closed before a response was received. Unable to use the module, do I have to install node or anything specific?

    • @evalaviniabucur1789
      @evalaviniabucur1789 2 ปีที่แล้ว

      No need to install Node. The browser's console will give you that error message (for me it was thrice). I think that's because of the LiveServer extension of the VS Code you're running your project through.

    • @suryameda6215
      @suryameda6215 2 ปีที่แล้ว

      @@evalaviniabucur1789 how have u resolved it
      ?

    • @evalaviniabucur1789
      @evalaviniabucur1789 2 ปีที่แล้ว +1

      @@suryameda6215 I didn't. If you will simply open your index.html file in your browser (without running it through the LiveServer extension), your error messages should go away.

  • @igdev6095
    @igdev6095 2 ปีที่แล้ว

    I dont really understand slideTiles function does, it's hard to think 😅

  • @SithLordBishop
    @SithLordBishop 2 ปีที่แล้ว

    oooh looks like a really fun challange

  • @nicholarucitadhamma6000
    @nicholarucitadhamma6000 2 ปีที่แล้ว +1

    Is it just me or does everyone don't know abt the "Private Variable" in javascript?

  • @saralraj6839
    @saralraj6839 2 ปีที่แล้ว

    *cool man, make sudoku also* ?

  • @kylebarvel
    @kylebarvel 2 ปีที่แล้ว

    Yo I just built this project a few days ago without a tutorial and then I came across this video

  • @gabrielstardust
    @gabrielstardust 2 ปีที่แล้ว

    hit the griddy

  • @sobir5022
    @sobir5022 2 ปีที่แล้ว

    Can you please show us how to deploy so I can run it without vscode

  • @bradycunningham
    @bradycunningham 2 ปีที่แล้ว +3

    It feels like there is always another CSS measurement unit that I have never heard of. vmin? lol

  • @mohitpandey4475
    @mohitpandey4475 2 ปีที่แล้ว

    How to make the same site for mobile version as well?

  • @deshdeepakkushwaha6332
    @deshdeepakkushwaha6332 ปีที่แล้ว

    how can we play this on mobile?

  • @Reatriver
    @Reatriver 2 ปีที่แล้ว

    Why am I getting a CORS policy error when trying to access my script.js file?

  • @BableDaily
    @BableDaily 2 ปีที่แล้ว

    Hey why isn't the game working on your website

  • @johnsonmobolaji8084
    @johnsonmobolaji8084 2 ปีที่แล้ว

    Great Tutorial

  • @iMohi
    @iMohi 2 ปีที่แล้ว

    hi im new to game developer
    how to make multiplayer game online
    is backend make the game online ?

  • @JosephRuhundwa
    @JosephRuhundwa 2 ปีที่แล้ว

    This is Outstanding!!

  • @vishwanath-ts
    @vishwanath-ts 2 ปีที่แล้ว

    You're a legend bruh

  • @smalls5001
    @smalls5001 2 ปีที่แล้ว +1

    i tried this... i gave up after 89 hours

  • @ariw96
    @ariw96 2 ปีที่แล้ว

    cool you could do it react?

  • @anshheta1411
    @anshheta1411 7 หลายเดือนก่อน

    19:40

  • @7heMech
    @7heMech 2 ปีที่แล้ว

    How do you write so fast?

  • @vask5500
    @vask5500 2 ปีที่แล้ว +1

    To make 16 cells you can just go .cell*16

  • @darklen14
    @darklen14 2 ปีที่แล้ว +1

    Do it in Blazor I dare you :)

  • @DuyTran-ss4lu
    @DuyTran-ss4lu 2 ปีที่แล้ว

    Excellent

  • @elAmigo805
    @elAmigo805 2 ปีที่แล้ว

    When I try to console log gridElement.append(cell) in the createCellEmenets function, inside the for loop, why do I get a undefined?

  • @ahmedpreeom6734
    @ahmedpreeom6734 2 ปีที่แล้ว

    Hello professor

  • @ayushtiwari1504
    @ayushtiwari1504 2 ปีที่แล้ว

    Good Job

  • @zaurmahmudov1438
    @zaurmahmudov1438 2 ปีที่แล้ว +1

    Challenge accepted

  • @raspreetsingh5542
    @raspreetsingh5542 2 ปีที่แล้ว

    I'm making this in react but I've used a structure similar to yours when positioning the tiles on the grid, i.e. using css variables. I haven't been able to make the transitions work for the left and top properties, because their value is derived from calc(), but they work flawlessly for you, without any @property declarations.
    HOW?

    • @aaxen7255
      @aaxen7255 2 ปีที่แล้ว

      I'm stuck right there too lol. I hope he answers!

  • @fluffyniki3257
    @fluffyniki3257 2 ปีที่แล้ว

    Damn l would want to make this only by myself one time :p

  • @josephwong2832
    @josephwong2832 2 ปีที่แล้ว

    cool class tutorial

  • @idkidkdidid
    @idkidkdidid 2 ปีที่แล้ว

    css is really diffcult for me

  • @jwkranenburg
    @jwkranenburg 2 ปีที่แล้ว

    Upvote for giving me a new daily game to play - now to watch the video :-)