6 Months of Learning JavaScript Game Dev in 6 Minutes

Поділитися
Вставка
  • Опубліковано 30 тра 2024
  • In this video, we go over my 6-month journey of learning game development in JavaScript. Initially, I talk about why I decided to learn game development in the first place. Then, we dive into my reasoning for choosing Three.js over a game engine like Unity or Unreal. Finally, we take a look at the 10 game dev experiments I made in this 6 month period.
    🐦 Twitter - / suboptimaleng
    💻 GitHub - github.com/SuboptimalEng
    🌎 Website - suboptimaleng.com
    == [ Timestamps ] ==
    00:00 Why Learn Game Dev?
    00:43 Three.js vs Unity Game Engine
    01:37 Solar System Demo
    01:54 Tic-Tac-Toe Game
    02:16 3D Tic-Tac-Toe Cube
    02:37 3D Audio Waveform Visualizer
    03:13 Naruto’s Rasengan
    03:30 3D Piano
    03:55 3D Wordle Clone
    04:16 Rubik’s Cube
    05:02 Retro Snake 3D
    05:40 Frantic Architect Clone
    == [ Credits ] ==
    Simon Dev - / iced_coffee_dev
    Caterina Zamai - www.artstation.com/zaccate
    Hand Anatomy by Caterina Zamai - sketchfab.com/3d-models/hand-...
    James Harness - sketchfab.com/James.Harness
    CRT Monitor by James Harness - sketchfab.com/3d-models/crt-m...
    Will Kwan - / _willkwan
    Frantic Architect - github.com/wkwan/frantic-arch...
    == [ Resources ] ==
    Three.js - threejs.org
    Three.js Tutorials - sbcode.net/threejs
    Cannon.js - github.com/pmndrs/cannon-es
    == [ Tags ] ==
    #suboptimal #javascript #gamedev
  • Наука та технологія

КОМЕНТАРІ • 257

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

    Beautiful man, you're the only one who could help me, I watched 8 videos and yours was the only one that saved me

  • @plasticsamalt6633
    @plasticsamalt6633 Рік тому +42

    As someone who just started my 3D programming journey, learning JS (and code in general), this video is inspiring as hell! Subscribed

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

      Awesome to see more people starting to learn 3D coding in JavaScript 🙌

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

      ​@@SuboptimalEng I would love some tips, because basically threejs is my goal here, and I just started learning JS.

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

      @@plasticsamalt6633 If you just started learning JS, then I'd recommend making 2D games in HTML canvas. It's a lot easier to get started there.
      Once you understand the fundmentals, you can start picking up frameworks like Three JS.

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

      @@SuboptimalEng noted. Thanks!

  • @arsen3223
    @arsen3223 2 роки тому +11

    this is really cool man, makes me want to learn this as well!

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +2

      You can do a lot with JS game dev! Definitely worth trying out 👀

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

    BROTHER, YOU ARE THE BEST!!! You oooh really helped me!! THANK YOU VERY MUCH!This is cool, well done!

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

    These are great! Makes me excited to learn threeJS

  • @RajJaiswal538
    @RajJaiswal538 2 роки тому +64

    I feel the Rubik's cube is hardest among them in terms of logic
    And also has a lot of potential of some unintentional amazing bugs
    : P

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +8

      Agreed. Sometimes, the bug is better than the code

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

      Rubik's cube logic is probably quite simple if you understand Abstract Algebra and Group Theory. (Which I don't.)

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

      @@andybrice2711 neither do I tho
      So we're on the same page

  • @juanmacias5922
    @juanmacias5922 2 роки тому

    Cool journey, thanks for sharing!

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

    Your video was very helpful, I'm still learning and getting the hang of it still. I'm into House and EDM. I look forward to seeing more of your

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

    Hello! I just wanna say thank you for the video it did really gave me a perspective in game dev in JavaScript as I'm starting and only doing it as a hobby, but I would really like to pursue some projects of my own so this is great inspiration 👍🏼

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

      Thanks, Valeria! A couple months ago, I was also not sure about making games in JavaScript. But now, I think it is the best decision I made 🙌

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

      @@SuboptimalEng Yeah! This video really helped me, from now own I'm gonna give priority to game dev cause is supper interesting but also so very challenging for me

  • @tusyama5157
    @tusyama5157 2 роки тому

    Fantastic stuff, man!

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

    So informative, thanks a lot!

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

    Excellent video. Clearly explained all the basics to get started on soft soft. Thanks

  • @HassanHassan-hl6tv
    @HassanHassan-hl6tv Рік тому

    Your actually the goat, This helped so much thank you.

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

    Best soft soft Introduction Ever!!

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

    wow. thank you for the amazing video

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

    That "failed" cube is mesmerising.
    Thanks for sharing this video.
    Hope you will have success upon your path.

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

    Awesome, man! One day I intend to dig into game development as well, just for the fun

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

      Definitely, it's super fun to get hooked on a piece of software you wrote. Doesn't happen often to me in web development, but happens quite frequently when I make games.

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

      @@SuboptimalEng
      That's exactly how I feel, man. It's wonderful that you got to discover that feeling! And thanks for the incentive given in this video... I have much to learn from you.
      Stay awesome. ‍🔥👊

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

    well understood. Thank you you are the best teacher.

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

    Really nice and helpful... Thanks!

  • @adnancodesweb
    @adnancodesweb 2 роки тому +2

    I feel your struggle man.. love your videos as well.

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +2

      The struggle of coding games in JavaScript is real, but it's worth it! Keep pushing through 💪

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

    This is really cool, Just started myself

  • @user-zo7up5yw6e
    @user-zo7up5yw6e Рік тому

    Thank you very much , now I will understand the functionality

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

    i really apreciate your help with dowloanding this software

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

    Worked for me thank you!

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

    Proper cache control and lazy loading is really hard to achieve in engine that doesn't target web browser as it's first priority. Though streaming 3D model is still challenging in any engine or rendering-lib

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

    Thanks bro that was really helpful

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

    by any ans, but I can make what I envision, and that's the greatest gift to . You are, without a doubt, an expert teacher. You may

  • @256k_
    @256k_ Рік тому

    the broken cube was fantastic. hope you kept it

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

    Gained a sub on this one, good shit man!

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

    Yoo tnx dude, everytNice tutorialng works. I LIKE IT

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

    Really helpfull tutorials. Helped a lot

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

    Dude. Thank you so much.

  • @TomServo-tg2tj
    @TomServo-tg2tj Місяць тому

    i love the aesthetic of making things 3d for no practical reasoning but with cool lighting

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

    The Rubik cube glitch would be a really cool loading screen

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

    BROOO THANK YOU!!!!!!!!!!!!!!!!! YOU'R THE BEST!!!!!! I LEARNED EVERYTNice tutorialNG I NEEDED TO KNOW THAN YOU VERY

  • @vlone.666
    @vlone.666 Рік тому

    have. But, your tutorial was amazing and I have made a semi-decent soft. Thanks!

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

    Works, thank you boy

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

    TNice tutorials is much more simple than I thought with you explaining it. Currently half way through and I feel like I know everytNice tutorialng already lmao

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

    Thank you. super program!

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

    thanks so much man

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

    Worked, thx

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

    when you’re in the channel rack, click on gms to open up the gms nu, in the light blue screen on the top left look where it says

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

    Oh it's really works) god bless you

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

    I'm here struggling with logic. This is great. Kudos to you

    • @SuboptimalEng
      @SuboptimalEng  8 місяців тому +1

      Thanks, I'm sure you'll figure it out 🤓

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

    I tried and it is installed thank u very much anda

  • @abraarz2971
    @abraarz2971 2 роки тому

    Very cool!

  • @abdelrahman5094
    @abdelrahman5094 2 роки тому

    such a fantastic video reccomendation

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +1

      Looks like praying to the UA-cam algorithm every day is finally working 🙌

  • @kool-breez
    @kool-breez Рік тому

    That Rubik's cube would make an awesome loading 'spinner'.
    Side note: I think some of the stuff you covered in the three.js tutorial (planets rotation), could help finish that rasengan model :)

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

      I think the rasengan requires more glsl shader skills 😅

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

      @@SuboptimalEng You’ll get it, your first attempt was really good :D

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

    utilised and enjoyed wNice tutoriallst increasing in value.

  • @Ivan-dt9mc
    @Ivan-dt9mc 2 роки тому

    nice video man

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

    TNice tutorials was very helpful thankyou.

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

    merci beaucoup a toi :))

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

    YO YOUUURRRR ART IT BEAUTIFUL

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

    working fine thank you

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

    Incredible I will be glad if I can finish one small project in 3 months

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

      I always set a deadline and try to get something working. It doesn't have to be perfect the first time!

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

    Its working man!!

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

    cool!

  • @stickguy9109
    @stickguy9109 2 роки тому +70

    Nice video but there's one thing I should point out. If you know any programming language like Js for example unity is not hard. I say go for it, if you wanna get serious with gamedev a library is not an artistic tool

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +27

      Unity is not hard, but running it on my computer with Chrome and VS Code is impossible 😂

    • @stickguy9109
      @stickguy9109 2 роки тому +16

      @@SuboptimalEng Oh I understand. Well then there's no choice but to make your own web based game engine

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

      @@stickguy9109 im working on one

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

      Unity isn’t hard to use but at the same time I’m not trying to give people a portion of my money!

    • @10inall28
      @10inall28 Рік тому +1

      @@GalaxyTime5416 wat is it

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

    4:23 that is not a bug, that is feature 😁. A nice one.

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

    actually I'm a web developer and when I woke up this this morning why not making games then i came across this vd it was really beneficial for me and now I'm gonna start my journey in game dev with three.js and I loved the piano you made it's gonna be my first project since I really love music and most of piano games are payed or not that responsive so I'll make it for all the guys that really want to learn playing the piano and the financial support is what stopping them inchaalah when I'm done I'll put an update in this comment hope me luck

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

    Rétro snake looks awesome!

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

      Thanks Quantum, it's probably my favorite one as well!

  • @MHW-nu7pz
    @MHW-nu7pz 4 місяці тому

    Nice video! I really love what you built! I will be going to start to learn the threejs. Is it that I have to be good at math before starting it?

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

      That’s great to hear! You don’t need much math unless you want to become a shader magician.

    • @MHW-nu7pz
      @MHW-nu7pz 4 місяці тому

      @SuboptimalEng Really? Only the shader requires advanced math?

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

      Depends on how complex your applications are. Most of the games I made in this video do not use math beyond trigonometry. The last game uses physics, but I imported a library to help with that.

  • @Skylla54
    @Skylla54 2 роки тому

    I love your stuff

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому +1

      Always good to see more game devs out there! Can’t wait till “Metaverse engineer” becomes a job role 👏

    • @Skylla54
      @Skylla54 2 роки тому

      @@SuboptimalEng Google&Apple&co will block such job description, definitly XD
      As long there is no offical description.
      I keep calling myself 🐻-Dev
      (b3AR Dev alias Web3AR Dev alias Fullstack Web3 AR Blockchain/SmartContract Developer alias 🐻-Dev 😄🤷‍♀)

    • @SuboptimalEng
      @SuboptimalEng  2 роки тому

      @@Skylla54 can't believe it's come to something this complicated 😂

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

    Couldn't agree more!

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

    Good choice!

  • @TheFlopster
    @TheFlopster 3 місяці тому +1

    That was one of the most beautiful bugs I have seen in my life

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

      It’s not a bug, it’s a feature 😉

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

    very cool
    you should write a book (seriously)
    subbed

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

      Thanks Sam! I think I’d need to learn quite a bit more before writing a book.

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

    just discovered your channel. love your content! (more than simondev 😉)

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

      That's high praise - Simon's videos are super cool - thanks a bunch!

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

    Next ti, can you install one of those apps that creates a circle around your mouse pointer? Sotis it’s hard for to find where

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

    HELP! When i put a sample into the daw, the sample slides instead of moving in steps, how can i get the sample to move in steps?

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

    Perfect tutorial, I just bought it and tNice tutorials helps heaps

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

    thank u

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

    how do you get all the tutorial and samples on the left. mine doesnt have sNice tutorialt

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

    Hey man awesome work was just wondering if all of this was in a website instead of a program I really want to learn Javastrip as well but I want to program a program basically and i dont want it to be in a web browser

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

    thanks helpful vid

  • @DevlogBill
    @DevlogBill 2 роки тому +1

    I think you should make the Rubik cube broken. Looked really cool

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

    GR8 IDEA TYTY

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

    Nice tutorial. I have been having content issues with my hmdi connected speaker and subwoofer. No soft is coming through, still coming out of

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

    my laptop speakers. Any suggestions on what to do to get my soft back? I recently updated. Any help would be greatly appreciated.

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

    Hi suboptimal Engineer, I am back, and I am still learning to code, but I am having fun doing so. I would have never imagined but picking up React and learning how to write in this library with useState and useEffect has improved my skills in writing functions, I use to suck badly. I would have never guessed by me learning React this would be the case.
    Now, I would like to improve my skills in classes, and I figured can you improve your skills in JavaScript and classes and objects by making games? I was wondering by you creating games has this improved your skills in JavaScript and if so, how? Thanks for sharing your video, it inspires me.

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

      "will learning JavaScript by making projects improve my abilities in JavaScript?" Yeah

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

    all the different elents together in a language that is universal. I've seen plenty of DAW tutorials being new, but tNice tutorials is by far the best so

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

    Bruh i feel like you have superpowers making super complicated things left and right likw it's nothing, i hope to be like you someday.

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

      Appreciate the compliment! Though I still have a long way to go before I feel like I have superpowers 😅

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

      @@SuboptimalEng 4 years of experience IS super powers in itself lol

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

    Damn. Nice job. I realy couldn't find a proper tutorial explaining everytNice tutorialng you needed clearly but then i found tNice tutorials treasure of a video.

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

    From any js library can we create any game like tycoon used cars game? Like car moves in (3d object), follow route, park in given slot etc??

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

      You can make small fun games in JS, but if it is super complex then it might be better to go with Unity or Unreal.

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

    In The setup what soft is that the little one

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

    In The setup If the master channel is located in the top, next to the counter, then no - IT stays witNice tutorialn acceptable limits, when I play so of

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

    super

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

    I want to put a drum in a certain ti but it automatically goes to the grid. in your video does not happen

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

    putting in....they are only visible on the mini soft roll preview, I can’t do sNice tutorialt without seeing what notes are being played...i can’t even

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

    hey I want to learn too where do I start?

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

    Nice work. Have you tried playcanvas as well?
    Keep up the great work!

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

      Thanks! Unfortunately haven’t tried playcanvas yet.

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

    Thank you for taking the ti to do tNice tutorials i know I’m gonna enjoy figuring it out

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

    So if I don't have to build games in 3 dimensions, I don't need to use threejs? I have a fair amount of experience in React/Javascript but don't know much about game development. If I have to make simple games in 2D with sound and visual effects, can you suggest me a library? How's kaboom?

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

      I've never worked with that library so I'm not sure how it is. My recommendation would be to learn and use PixiJS.

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

    The rubiks cube bug reminds me of another bug I got in my Matlab class when I accidentally coded perfect 3D rotation on a 2D graph due to some error in my math formula lol
    Can't help but appreciate these bugs

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

      Have to agree here. Often times the bugs give more interesting visualizations than the fixes.

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

    I am frontend dev with 2 years of experience and now i am exploring game development in js.
    I don't know if game dev worth it in JS land but it just quite interesting to me and also it will help me to improve my logic rather than practicing boring DSA😅😅
    Btw, can you point me where to start as it seems 3d, 2d have alot of concepts before even get hands on any library like theejs or pixijs
    Any resource/path or suggestions what should i learn first?

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

    Pertama nyoba instal di MacOS Monterey error, udah gitu di Bantu sama mimin, ternyata harus pake yang 2021 , daaan tadi nyoba, Sudah berhasil! Terima kasih Sudah membantu sampe berhasil instal 🙏

  • @mahesh4274
    @mahesh4274 2 роки тому

    Very cool anna

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

    works gj

  • @rewiredbyadhd
    @rewiredbyadhd 7 місяців тому

    Dude, I already subscribed but if you make educational videos with all those projects and things you learned, I'll pay you without hesitation.

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

      I’ve made a video for each project already! You can find them on my channel if you go scroll all the way down before my Three.js tutorials.
      Currently learning WebGPU with TypeScript so might do some videos on that next 🤓

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

    I bought soft soft today!