Make Pixel Art Games: Tilemaps
29:12
State Management in 2D GAMES
39:34
JavaScript RETRO Games: Boss Battles
27:27
Remake RETRO Games with JavaScript
1:50:27
Bounce Particles around a Website
16:10
Particle Physics in JavaScript
23:07
Пікірлер
@ericajcruz
@ericajcruz 2 сағат бұрын
hi!
@ericfourmaux833
@ericfourmaux833 3 сағат бұрын
Dude! I have to say every time I watch your videos, even if I know most of it, I learn new stuff! It's fun, and pretty well done! Thanks for these "lessons". This is a great way to learn Javascript and games. And it's always entertaining! You're da best! :D
@tonywhite4476
@tonywhite4476 14 сағат бұрын
Your videos would be better if you included the code.I know you want people to learn it and maybe sell some courses but I don't know how many times I've followed your videos and get an error or something doesn't work and I have to search the video for that section or start all over.
@aritzolaba
@aritzolaba 16 сағат бұрын
Thanks a lot for this excellent content!!
@dmkanz
@dmkanz 23 сағат бұрын
Hi Frank
@atharv4408
@atharv4408 Күн бұрын
u r awesome
@Frankslaboratory
@Frankslaboratory Күн бұрын
Thank you 😊
@fdorsman
@fdorsman Күн бұрын
I have learned so much from you, thanks for the clear explanation. Some Idea's for future subject I would like to see are creating and using hexagon and/or isometric maps and characters
@Frankslaboratory
@Frankslaboratory Күн бұрын
Hi Francisco, yes that would be fun to make. Probably more math would be involved. I haven't checked for a while what are the best practices in that area. Will do some research.
@markus4437
@markus4437 2 күн бұрын
As always a really well explained and easy to follow tutorial of you. I really like the idea of creating a Pixel Art RPG Game and im looking forward to see more videos of you, expanding our project :)
@Frankslaboratory
@Frankslaboratory Күн бұрын
Hey Markus, happy to see you think it was well explained. I want this to be beginner friendly.
@darkryudaniel
@darkryudaniel 2 күн бұрын
excelent video, very educative, The video is very well explained, easy to follow.I want you to go deeper in another video about how to implement small sprites. There is something in my code that I did wrong because the character's movement is not coordinated with the grid, it stops between the grids
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
If the hero stops between cells, check it's starting position, it's probably there. You can figure out what's wrong by console logging values related to positioning, and it should be clear what's wrong.
@akashvanionwards912
@akashvanionwards912 2 күн бұрын
let hero let upbtn,downbtn,leftbtn,rightbtn let isCollided=false let cols=20 let rows=20 let tileSize=20 let gameWidth=rows*tileSize let gameHeight=cols*tileSize let moveDelay=5 let scale=4 function seting(button,name){ button.elt.ontouchstart=()=>{ if(name=="up"){ hero.vly=tileSize/scale } if(name=="down"){ hero.vry=tileSize/scale } if(name=="left"){ hero.vlx=tileSize/scale } if(name=="right"){ hero.vrx=tileSize/scale } } button.elt.ontouchend=()=>{ if(name=="up"){ hero.vly=0 } if(name=="down"){ hero.vry=0 } if(name=="left"){ hero.vlx=0 } if(name=="right"){ hero.vrx=0 } } } function setup() { createCanvas(400, 400); hero=new Hero() upbtn=createButton("up") downbtn=createButton("down") leftbtn=createButton("left") rightbtn=createButton("right") seting(upbtn,"up") seting(downbtn,"down") seting(leftbtn,"left") seting(rightbtn,"right") } class Hero{ constructor(){ this.x=100 this.y=200 this.vlx=0 this.vly=0 this.vrx=0 this.vry=0 } update(){ this.x+=this.vrx this.x-=this.vlx this.y+=this.vry this.y-=this.vly } show(){ rect(this.x,this.y,20,20) } stop(){ this.vly=0 } } function mousePressed(){ console.log(hero.x,hero.y) } function checkCollision(x1, y1, s1, x2, y2, s2) { return (x1 < x2 + s2 && x1 + s1 > x2 && y1 < y2 + s2 && y1 + s1 > y2); } function drawGrid(){ stroke("red") fill(0) for(let x=0;x<gameWidth;x+=tileSize){ for(let y=0;y<gameHeight;y+=tileSize){ rect(x,y,tileSize,tileSize) } } } function draw() { background(2); drawGrid() fill(255) hero.update() hero.show() rect(100,100,20) if(checkCollision(hero.x,hero.y,20,100,100+1,20)){ hero.stop() } } Frank , can u help me to fix the code, i want the player will stop after colliding but its not working 😢
@Frankslaboratory
@Frankslaboratory Күн бұрын
Hi Akash, you are only stopping vertical movement so far so I assume you are giving me code in progress, not the final code. I would love to help but if I start debugging and rewriting custom code for people I will upload even less videos :D It's quite simple code, should be easy to fix. If you are completely stuck I would advise you to follow more tutorials and do exactly what people are doing and eventually it will become very easy to create your own solutions like you are trying to do here. I don't think what you are giving me is my code, I never used this collision technique in any of my tutorials. I do it differently.
@northstrider9863
@northstrider9863 2 күн бұрын
Thank you Frank, I always learn a lot from your videos! As you mentioned in this one, it would be great if we could learn to implement a more complex sprite animation system :D
@Frankslaboratory
@Frankslaboratory Күн бұрын
Thanks for letting me know. I will do that in one of the follow up classes.
@Nikhil-gm8ks
@Nikhil-gm8ks 2 күн бұрын
Would love if you could explore more RPG ( Stardew valley, Graveyard Keeper etc. ) , something one could build upon after tutorial and publish it too. That would enable us to convert that base game to something bigger based on story/scenario we can think of. Lot of tutorials present on YT explore similar types of games ( Tetris, puzzle based etc. ) , but very few tutorials like yours enable beginners to explore more ready to publish, story based games.
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Thank you for the suggestion. I would really like to do that. I have to teach a few important individual pieces first. Probably I will do it in separate videos so I can properly explain each technique. Still planning where to take this series of projects. I don't think beginners should worry too much about publishing. The first few games are not going to be great but they will be important learning experiences. But I guess the idea gives people the goal to work towards.
@Nikhil-gm8ks
@Nikhil-gm8ks Күн бұрын
@@Frankslaboratory Thanks, would be really helpful. For anyone aspiring to be Indie developer, your channel is really helpful. Hoping for more such content ..........
@ChicoPiranha
@ChicoPiranha 2 күн бұрын
Nice video Frank! Thanks! The dot JS thing in VSC is really annoying. I think for the first import, VSC doesn't know the type of the file you are importing, that's why it leaves it blank. After the first import, it uses the already known file type - unless, the new import, because of the auto sort, becomes the first line again, than VSC forgets the file type once more. As I said: very annoying!
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Ah. Finally an explanation. It makes sense now. Thank you for taking the time to clarify this mystery for me
@TheTeamofMuhammad
@TheTeamofMuhammad 2 күн бұрын
Can you tell me? your screen recorder?
@Frankslaboratory
@Frankslaboratory Күн бұрын
I use OBS studio, simple and free
@Baba69able
@Baba69able 2 күн бұрын
I just started the tut. I really like how you explain the relations and possible stumbling blocks, so everybody can really understand! Not just just the often common "do this, do that...tadaaa"-magic.
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Hi. Yes that's done by design. I gradually explain why and show how it works throughout the video. Did you discover any issue with that approach that I didn't realise?
@Baba69able
@Baba69able 2 күн бұрын
@@Frankslaboratory yes, you first hardcode an empty object as parameter in the hero to pass to super. Then at any point you pass a position to hero, which this way of course defaults to 0,0. I then have changed to pass options and destructure that in GameObject to this[prop] = options[prop] ?? <default>. But it took me a while, as in your vid it looked like it were working with the empty object (which caused me some wrinkles and grey hairs): Or it might be I missed the moment you changed to passing all arguments separately though lol But I really love the way you explain things. Some devs just seem to have forgotten that there are things which are not clear to everybody (as an example CORS and how to view and debug a module, inheritance...)
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
@@Baba69able I'm trying to understand what you mean. Did you get an error at some point that I didn't get? Is that why you decided to change the syntax I was using?
@Baba69able
@Baba69able 2 күн бұрын
@@Frankslaboratory I just investigated and can confirm I missed the part where you then passed the full config-object to the constructor (at 22:06). I think I'll better delete that part of my initial comment to not confuse any readers 😅 But thank you for your fast response and a big SORRY for passing MY confusion
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
@Baba69able no problem. It's good to talk about this. I will try to make that part more clear next time. Thank you for your feedback
@captaindesign
@captaindesign 2 күн бұрын
this was amazing, thank you
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Glad you liked it
@temmmbebkd2922
@temmmbebkd2922 3 күн бұрын
Hello frank two years ago i made a game thanks to your tutorials and got the grade A+ can i show it you and you can share it
@Frankslaboratory
@Frankslaboratory Күн бұрын
Hi, happy to hear that, well done on your A+. Yes feel free to share your projects, ideally email. I will check when I have time and see what you did there. Ideally with code included
@theunknownonetuo2033
@theunknownonetuo2033 3 күн бұрын
1:12:10 Please make a video of this! This would be very helpful since I still am quite terrified with animations and sprite sheets. I still need a lot of time wrapping my head around deltaTime and such. Anyway, great video! Looking forward to future ones!
@Frankslaboratory
@Frankslaboratory Күн бұрын
I will do that, multiple people requested already, thank you for letting me know
@theunknownonetuo2033
@theunknownonetuo2033 Күн бұрын
@@Frankslaboratory Thank you so much! I aspire to be as knowledgeable as you in the future!
@andrewcool482
@andrewcool482 3 күн бұрын
Frank, cool as usually! ❤
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Thanks Andrew
@rrazaros
@rrazaros 3 күн бұрын
KZbin recommended for the first time a good channel. Subscribed. Liked. Thank you for the video i will check other videos too.
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Awesome. Nice to meet you
@JVRadioArg
@JVRadioArg 3 күн бұрын
The job and effort you put into those videos is amazing. Teaching, explaining and inspiring with really good ideas. Thanks for sharing your knowledge Frank. Keep up the hard work!!!!! 💪
@Frankslaboratory
@Frankslaboratory 3 күн бұрын
Hi, thank you for your kind feedback, much appreciated
@offgridvince
@offgridvince 3 күн бұрын
Yes, thank you so much. Starting this weekend!
@Frankslaboratory
@Frankslaboratory 3 күн бұрын
Have fun!
@aladeotman1259
@aladeotman1259 3 күн бұрын
why do you think you created gta6 ???????
@Frankslaboratory
@Frankslaboratory 3 күн бұрын
:D
@techtime3125
@techtime3125 3 күн бұрын
blud this stuff isnt easy, maybe try learning instead of complaining, it's honestly amazing how fast he makes these games and such high quality videos at the same time
@webdevtech9724
@webdevtech9724 4 күн бұрын
🔥🔥🔥🔥🔥
@Frankslaboratory
@Frankslaboratory 3 күн бұрын
❤️
@BUY_YT_Views_858
@BUY_YT_Views_858 4 күн бұрын
Your videos are the first thing I watch
@rrahll
@rrahll 4 күн бұрын
That was interesting! 👍Always interesting to watch your tutorials!
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Thank you
@rrahll
@rrahll 4 күн бұрын
Always best tutorials! Thanks Frank!
@Frankslaboratory
@Frankslaboratory 2 күн бұрын
Glad you found some value
@rrahll
@rrahll 4 күн бұрын
Awesome Frank, awesome tutorial!
@ElonRust42069
@ElonRust42069 4 күн бұрын
Good stuff Frank.
@Frankslaboratory
@Frankslaboratory 3 күн бұрын
Hi Elon, thank you!
@PopLll-lo9ot
@PopLll-lo9ot 4 күн бұрын
You are amazing man Please can make complete rpg game with backend
@Frankslaboratory
@Frankslaboratory Күн бұрын
Hi. Glad you found some value. It's a lot of work to make a complete game with backend into a tutorial, that's why there aren't many videos on that
@JM-de2gh
@JM-de2gh 4 күн бұрын
Hey Frank, Jon here -- it's been a while. You're videos have gotten top-notch professional at this point! Well done! I'm happy to see how far you've gotten over the years! That contract that you helped me get (I think it lasted about 3 years) is coming to an end this very weekend. It was planned, and I was informed about this ending many years ago. It was the best job I've ever had and I got a lot of experience. Thanks for your videos which greatly helped me get out of my burned-out states. Well, as I try to figure out what to do next ( I've got some plans ) I'll be keeping up with your vids a lot more. I may start my own, new, channel (it depends on what direction my plans go).
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hey Jon, it's been a while .Nice to see you here. Sounds like you had a great run, and we know it's a bit easier to get the next job once you have some relevant experience on your CV, so I hope your future is bright.
@johndigirolamo5858
@johndigirolamo5858 4 күн бұрын
Amazing series so far! Thanks, Frank! I'm loving seeing you get more and more comfortable with modules and ES6 with each video. Really clean code!
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hey John. Thank you for your kind words. I like to use modules but to keep this beginner friendly I have to explain how to set it up in every video, so in smaller projects I avoid them.
@johndigirolamo5858
@johndigirolamo5858 4 күн бұрын
@@Frankslaboratory Ah okay I see. Really appreciate you taking the time to use them in this video! I already got the project running on my end and I just made my own character in this nifty tool you've provided us! I love it thank you! There were so many options that I'll be sure to better explore, but for now I went with something basic, grim reaper: #?body=Body_color_fur_white&head=Skeleton_skeleton&jacket=Trench_coat_dark_gray&sash=Sash_black&shoes=Armour_steel&weapon=Scythe_scythe&cape=Tattered_black&bauldron=none&shoulders=Mantal_black&bandana=none&headcover=none&hat=Cloth_hood_black&legs=Armour_iron Thanks again for all the great videos!
@fabfer
@fabfer 4 күн бұрын
Thanks for your work, Frank.
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hi Fabio, glad you found some value!
@fabfer
@fabfer 4 күн бұрын
Valeu!
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Thank you ❤️
@VectorNodes
@VectorNodes 4 күн бұрын
Frank you never disappoint. I’ve been watching your videos for years. Even though I’m a fully capable developer at this point, these videos are just plain interesting to watch
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hi, nice to hear this feedback, thank you for letting me know!
@gameNOOB101
@gameNOOB101 4 күн бұрын
I just made this account so I can say thank you and give a like and subscribe. I love games and learning how to make them.
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Ah, thank you for making the effort, I appreciate your comment, nice to meet you!
@RthmnNdrsn
@RthmnNdrsn 4 күн бұрын
This is awesome. Exactly what I was looking for o7
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hey, glad you found some value! thanks for leaving a comment
@TheTeamofMuhammad
@TheTeamofMuhammad 4 күн бұрын
Build this themes vanilla JS with OOP: 1. Build Videoplayer like KZbin Player (All functionality). 2. Build Image Cropper. 3. Build Image and Video Editor. 4. Build custom range slider. Thank you for all.
@Emblazon
@Emblazon 4 күн бұрын
hi to me
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
I asked for it... 🤣
@alwaysquestionyouropinions1119
@alwaysquestionyouropinions1119 4 күн бұрын
I just want to ask. I am building a cyberpunk themed game in pygame with python. Can I please use your Universal LPC Sprite Sheet Generator to make some characters? I will credit you if I ever publish it. Great video, I love the direction of gaming types videos you are making.
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Awesome. Cyberpunk theme is a great choice. The Sprite Generator website is not mine. I just use it in this video. There is a license if you generate your character and scroll to the bottom. You should read that. Each body part can have a different author and they require credit.
@alwaysquestionyouropinions1119
@alwaysquestionyouropinions1119 4 күн бұрын
@@Frankslaboratory I see I will go have a look thank you very much. Your channel really is awesome and the quality of your videos is excellent. I can quickly post like a 30 seconds video of the game if you would like to see? If not I understand 100% and thank you again for these high quality videos.
@alwaysquestionyouropinions1119
@alwaysquestionyouropinions1119 4 күн бұрын
@@Frankslaboratory kzbin.info/www/bejne/j5W9nKWFn5mUba8
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
@alwaysquestionyouropinions1119 yes. Show me your game when you get a chance. Always interesting to see what other people are working on. What art are you using for your game world. Did you draw it yourself or you found it somewhere online
@alwaysquestionyouropinions1119
@alwaysquestionyouropinions1119 4 күн бұрын
@@Frankslaboratory KZbin keeps removing my video link but it is the only video I have on my channel and it is only 48 seconds long.
@theEDITORviral
@theEDITORviral 4 күн бұрын
one of the best tutorials .. sir I appreciate you ...... and thank you a lot and lots of love from Pakistan...
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hi, nice to meet you. Greetings to Pakistan!
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Share your unique character when you make one, but only share the second part of the URL to avoid KZbin spam filter, it deletes comments with links: "#?body=Body_color_olive&head=Orc_male_olive&legs=Pants_black". Step by step process how to use the Spritesheet generator in the video description
@Frankslaboratory
@Frankslaboratory Күн бұрын
#?body=Body_color_pale_green&head=Frankenstein_pale_green&shadow=Shadow_shadow&sex=muscular&weapon=Waraxe_waraxe&legs=Wide_pants_brown
@Frankslaboratory
@Frankslaboratory Күн бұрын
#?body=Body_color_light&head=Human_male_light&belt=none&cargo=Wood_9_logs&backpack=Basket_round&backpack_straps=Straps_black&legs=Pants_blue
@MohanBist-fk6ks
@MohanBist-fk6ks 4 күн бұрын
finaly the video came for which we were waiting can you also make a short video on the data storing i local files such as after game saved data in and file and then use that data to continue game from we left
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hey Mohan, good idea, I will make a note and I will try to include this when suitable
@Games2Dev
@Games2Dev 4 күн бұрын
It was a useful video, interesting and educational. Thanks for your work. Like!
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hey man, nice to meet you, I can see you make games in Godot, awesome
@gsdealer7691
@gsdealer7691 4 күн бұрын
You the best.
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Thank you!
@goffyfoot82
@goffyfoot82 4 күн бұрын
Good Stuff, and I don't mind following along. I just slow them down to 75%. I do know that newer / beginners would like the source code. I always steered away from it until I was stuck and need to tap out and look at what was working in order to continue to make it work. Thanks for your time with theses many have benefited !!
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Hi Will, are you saying I go too fast? I can try to slow down for the next video.
@goffyfoot82
@goffyfoot82 3 күн бұрын
@@Frankslaboratory No it is me .....I find it is easier to slow them down to follow along. You're doing a great job. I have a hard time listening and watching, while trying to type. If I watched the video straight through first and then tried to follow it will be easier. I like many have a challenge in learning new materials. And just need to find the extra steps folks like me need to understand it completely. Peace ...
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
Do you want a SOURCE CODE for this, or you prefer to code along and hear me explain what every line of code does and why I choose to implement it that way?
@worldbest3097
@worldbest3097 4 күн бұрын
this is the best and most waited project for recent years. Amazing!!! i both two ways! source code and the reason of every line of code!!!
@vase9145
@vase9145 4 күн бұрын
+1 for the source code. It's nice to code along but it always good to have the source code for reference
@Charizm0
@Charizm0 4 күн бұрын
code along please. best if both.
@IonizedSun
@IonizedSun 4 күн бұрын
code along is my way to learn :-) btw: the explanation of the nested loops helped me a lot
@randomfinn404
@randomfinn404 4 күн бұрын
Coding along is the best way imo, and I might do some tweaks here and there but if things get messy source code will help with debugging and fixing
@AR-Creation-nk5yj
@AR-Creation-nk5yj 4 күн бұрын
I was waiting for this❤
@Frankslaboratory
@Frankslaboratory 4 күн бұрын
I had a lot of fun with this one. Working on the next thing now
@Silas_standley
@Silas_standley 4 күн бұрын
I’ve had several design ideas that fit in this mold on the back burner
@b166er4
@b166er4 5 күн бұрын
Geat job, i didnt know that you can make this.effect without threejs and shaders.... THX, i ll be back ;)
@marinefart9082
@marinefart9082 5 күн бұрын
the last part of the video has me stuck when trying to change the animations to the drop down box values. the sprite always disappears. this is the code struggling with let playerState = "fall"; const dropdown = document.getElementById('animations'); dropdown.addEventListener("change", function(e) { playerState = e.target.value; }); I think my add event listener is wrong