Upgrading 75,000+ lines to Godot's new version

  Рет қаралды 27,714

Inbound Shovel

Inbound Shovel

Күн бұрын

Пікірлер: 119
@InboundShovel
@InboundShovel 4 ай бұрын
If you're interested, here's where you can wishlist Isadora's Edge on Steam! store.steampowered.com/app/3125320/Isadoras_Edge/ And you can follow the Kickstarter here: www.kickstarter.com/projects/inboundshovel/isadoras-edge Thank you!
@eikhylleberg6504
@eikhylleberg6504 3 ай бұрын
a comment 9 days before upload hmmmmm XD good luck with the kickstarter (sadly im not in a position to give as i wanna focus on my own situation first)
@averagehater13
@averagehater13 3 ай бұрын
Just wishlisted it!
@Drejzer
@Drejzer 3 ай бұрын
Have you considered putting it on GOG as well?
@seasirocco3063
@seasirocco3063 3 ай бұрын
Will this game be coming to the Switch?
@fabioxperuggia
@fabioxperuggia 3 ай бұрын
Now i know why you did get problems having slopes in you games! You are using godot!
@hellfiresapphire7246
@hellfiresapphire7246 3 ай бұрын
6:28 Projects -> project settings -> rendering - texture - default texture set to nearest should fix the sprites
@heartofthesea572
@heartofthesea572 2 ай бұрын
You're a lifesaver
@BrandonfromStLouis
@BrandonfromStLouis 3 ай бұрын
Man I was stressing about my Godot 4.1 project after the recent 4.3 release. Glad to see you've been able to make something so awesome on a version as old as 3.2 - that's reassuring.
@mirasmussabekov4897
@mirasmussabekov4897 3 ай бұрын
Rule of thumb for version numbering: 1. First number (x.0.0) stands for major changes. Expect things to break. 2. Second number (0.y.0) is minor changes. Like tile map working little differently. 3. Third number (0.0.z) is patches. Like new tile map layer node being more reliable. In your case it should be easy to update, since it is the same major version. I only updated very small projects and had to only deal with tile maps, so I don't knock for sure. Good luck!
@vast634
@vast634 3 ай бұрын
A brute force way to get around the shader compile framedrops: make a scene that play all effects that contains shaders at the start, and put a black screen over it. Forces the engine to have all shaders compiled.
@fabioxperuggia
@fabioxperuggia 3 ай бұрын
That would impact memory in a bad way. He should implement an async compilation system if godot does not have one. Also there are problems related to the engine that would be harder to fix.
@nikz000
@nikz000 3 ай бұрын
12:00 “I don’t know what it’s doing here, I don’t like it and I would like it to get out.” Was so funny 😂 🤣
@Reyjakai
@Reyjakai 3 ай бұрын
Oh man, I feel your pain. I ported my project over from 3.5 to 4.2 a few months ago, and that was almost a month long process. The biggest thing that got me was that I had apostrophes in some of my filepaths of my assets, and it changed all of those to underscores. It took me ages to figure that one out. That, and I had tweens EVERYWHERE. Edit: Oh, i forgot too that it reset the centering of every single label that I had. They all defaulted to top left again from center. It was rough.
@InboundShovel
@InboundShovel 3 ай бұрын
Yeah totally with you, I'm so glad I didn't have anything other than super rough placeholder UI heh
@matute08
@matute08 3 ай бұрын
Isadora's edge 😊 Isadora's edge 💀
@DemyrNox
@DemyrNox 3 ай бұрын
It's kind of weird that they convert your game for Godot 4 but can't simply convert your exports easily
@boomgoesthedynamite69
@boomgoesthedynamite69 3 ай бұрын
it's also not really easy to convert to godot 4
@brunomello7499
@brunomello7499 3 ай бұрын
Think of the game conversion as JSON object manipulations: to convert object X from version 1 to 2 you just run through all objects (scenes) in the game and for each object you look into each field to see if it should change to something different. If it should, then you change that key to the "new format" and adjust its value accordingly. It sounds like a tiresome job, but it's actually rather easy writing a script that does this. Converting GDScript exports is on another level of difficulty: you would need to cover a bunch of ways that you can type in an export variable, and it would be really easy to mess this up. At the bare minimum you'd need some statical analysis process (similar to what LSPs and some compilers use) to run on each script and that's not the easiest thing to implement
@DemyrNox
@DemyrNox 3 ай бұрын
@@brunomello7499 I see!
@punkrat3305
@punkrat3305 3 ай бұрын
I love how much detail you go into the WHY of everything!
@lyraisnapping
@lyraisnapping 3 ай бұрын
Glad the leaf wacker and the ded battery didn't stop you from recording this video becuase it's super informative and gave some many good tips! Thank you for making this!!
@InboundShovel
@InboundShovel 3 ай бұрын
No problem, Lyra, glad it's helpful! :D
@doctormk2653
@doctormk2653 3 ай бұрын
Thanks mate, not a lot of people talk that in detail about their game development journey and problems they encounter along the way.
@mz_eth
@mz_eth 3 ай бұрын
This is so cathartic to listen to, I’ve been in 3.5 for years now, knowing I inevitably have to upgrade 😭
@nilsmuller-cleve6769
@nilsmuller-cleve6769 3 ай бұрын
I saw the video and was confused if they again did the huge changes for the latest minor Godot update, didn't recognize you were still on 3.x ^^ Looking forward to your collision video!
@BazSupport
@BazSupport 3 ай бұрын
I’m glad I’m not the only one that pulls my player out of the scene before I change out the scene. I happen to do that with my camera as well in our game that way, I always have an accurate reference to the player and the camera from the start of the game, its nice
@JackitK
@JackitK 3 ай бұрын
As someone who got into Godot 3 because they're computer wasn't powerful enough to run Godot 4, this video speaks deeply to me from just the title alone. Luckily, my project hasn't gotten too big yet. But the concept of converting it once I do finally upgrade to a strong enough computer still worries me. Looking forward to finish watching the video to see if I can pick up any tips to save for the future.
@marcusrehn6915
@marcusrehn6915 3 ай бұрын
Your game art is amazing!
@Crits-Crafts
@Crits-Crafts 3 ай бұрын
Just wishlished. I'd love to back the kickstarter, but funds are not great atm. Either way, love your video's and can't wait to play the full game
@ArcChief01
@ArcChief01 3 ай бұрын
Looking forward to the release. I have started making a game of my own in unity. Your videos have thought me a lot.
@BetaTester704
@BetaTester704 3 ай бұрын
Something you could have done, is play every shader, animation and interaction before gameplay in the background,when starting the game.
@yultube933
@yultube933 3 ай бұрын
love all the good work you're doing and i love the way the game looks, and I'm also working as an artist for an indie game and i wanna learn from fer's art and would just like to know what media he uploads on. Lots of thanks
@InboundShovel
@InboundShovel 3 ай бұрын
Fer is @OfTetris on Twitter, which is mostly where he uploads art!
@yultube933
@yultube933 3 ай бұрын
@@InboundShovel thank you so much
@codybriangalacticraft69
@codybriangalacticraft69 3 ай бұрын
as someone who still get confused with using Github and fiddle with like commits, push, etcetc. I really would appreciate a Version Control video as Everyone building something would be saved to have backups in place. Appreciate the content and love the whole insight over the upgrade to a higher version of Godot!
@AetherXIV
@AetherXIV 3 ай бұрын
never heard any of the sounds you were worried about. good job on the upgrade :)
@stonebubbleprivat
@stonebubbleprivat 3 ай бұрын
Please read about the signal to noise ratio in communication. I suggest that you lower your noise level e.g. if we can hear the garbage truck or not because your microphone doesn't say it picks it up but you can hear it or that there is a weed whacker and you are wondering if you should take a break and after the break you tell us that there was a weed whacker you took a break or where the editor will place the thumbnail of the linked video or that you don't have time to record but do it anyways or that you checked that your battery woul be full. It's not only that but also the constant repetition of the same thing. The 200 errors when launching the game you showed us. You keep referencing that you showed us them. Videos are a format with pictures and sound. This means you don't have to explain everything you see but rather can show them us. In film making exist the rule "show don't tell". Furthermore, I may add that if you are uncertain about things, you can look them up. You can configure your line counter to not count empty lines or closing brackets. This way you don't need to tell us that you speculated that it counts empty lines. You would know that.
@SkilledArrow
@SkilledArrow 3 ай бұрын
Glad I stumbled upon a Godot dev channel!
@tevor09
@tevor09 3 ай бұрын
i love godot 4.3
@Sylfa
@Sylfa 3 ай бұрын
Did you upgrade straight from 3.2 to 4.2? That's daring, the only program I know that can update resources properly like that is Blender that made it's file format to be backwards and forward compatible. And even there they partially abandoned this feature when they went to version 4.0, you need to download the latest 3.x version and update the scenes before opening it in 4.x. Anyway, my point is. I would have tried updating to 3.5.3 first, then updated to 4.2 (well, 4.3 now). Not certain it'd help in this instance, or with Godot in general, but it would hopefully have been able to update collision shapes, and the import settings properly that way. And if it still lost something big I'd revert and try updating a smaller step, so from 3.5.3 to 4.0.x.
@fabioxperuggia
@fabioxperuggia 3 ай бұрын
Unity updates just fine.
@Sylfa
@Sylfa 3 ай бұрын
​@@fabioxperuggia Well of course, you need to first have changes and updates before it can have a chance to fail to update a project.
@fabioxperuggia
@fabioxperuggia 3 ай бұрын
@@Sylfa changing sintax without marking as deprecated (but make it still works) is stupid. Otherwise you should implement a script that fixes the change in sintax. Horrible way of updating things.
@LUCID_Rokka
@LUCID_Rokka 2 ай бұрын
I've also had this debate for sooo long, but I finally decided to get out of my comfort zone and port my game to 4.3. And I'm gade I did honestly.
@NoomStuff
@NoomStuff 3 ай бұрын
Actually the second person ive seen talking about shader compiling issues in godot lol
@jeromealday614
@jeromealday614 3 ай бұрын
Same, my first one is that guy making the n64 style speed running game
@srsherman7
@srsherman7 3 ай бұрын
I'm not as fluent with godot.. Is it an issue with Vulkan?
@NoomStuff
@NoomStuff 3 ай бұрын
@@srsherman7 Not sure since i dont use godot, but from what ive seen that seems to be it
@olegvegan
@olegvegan 3 ай бұрын
I feel you bro 😅
@InfernoReaper1854
@InfernoReaper1854 3 ай бұрын
hello, looking forward to your game! that's all i wanted to say ❤
@michellesandy4545
@michellesandy4545 3 ай бұрын
Where is the video on floor tiles?? I cant find it and the video linked dosent talk about it to my knowledge
@willm127
@willm127 3 ай бұрын
Looking forward to your frame data video. I'm actually on the same boat myself. I've been thinking about how to go about working with hitboxes and combos. I have a game where I also have a swordie, except it's top-down like classic Zeldas, and it'll either go the Batman Arkham route where you combo between enemy waves, or the Dark Souls route where you'll do more 1-on-1 fights. Either way, it'll need support for different types of hitboxes and frame data.
@khloudinnn1783
@khloudinnn1783 3 ай бұрын
Yes please do a version control video or short
@boldnight9676
@boldnight9676 3 ай бұрын
Godot has find/replace and it works for all files at one time... Example: find = export var, replace @export... Might save some time nextime on some things... 😊
@DragonTechProduces-h1b
@DragonTechProduces-h1b 3 ай бұрын
Don't worry about things so much while recording ^>^ You don't even notice until they are pointed out. If we hear a garbage truck its fine :) it also makes the video seem less 'studio made'
@kuelho5409
@kuelho5409 3 ай бұрын
Smashing the "leave comment button"! 👊👊👊👊👊
@Markomilicic012
@Markomilicic012 3 ай бұрын
Isadora is edging
@joshsnaith1713
@joshsnaith1713 3 ай бұрын
Tokei is a great line counting tool that handles comments, blank lines, etc.
@DrPhilsGaming
@DrPhilsGaming 3 ай бұрын
I have been enjoying your tops a lot and just wanted to say thank you for the shorts and dev vlogs. I recently decided to get back into game development after not using my degree in it for 13 years. I wanted to start with 2D so the past month I have been making a game in GameMaker Studio. I plan to see it to its conclusion as I am using it as a game to learn as much as I can with. That being said, I have been thinking about switching over to GODOT for the next project which will be much bigger in scope and was wondering why you chose to use GODOT?
@soninhodev7851
@soninhodev7851 3 ай бұрын
oh yeah, i remember when i had to do this type of convertion, i am glad i did it fairly early on, like i didnt even have a ui yet, not even a placeholder, gosh. in regards to other things, in my current game, the way i do frame times and hitboxes is that i just have the ability to spawn a projectile with any hitbox size, a timer that makes it despawn when it runs out, and the ability to spawn it invisible, and i just use that projectile code as any damage hitbox for an attack, even melee ones.
@Kry0000
@Kry0000 3 ай бұрын
Very informative video, thank you for making it. This does beg the question, did you go back to the Godot 3.2 branch of the game and try doing the tile map fix you stated or no? As I (and probably others) am curious if it would fix your issue there as well.
@InboundShovel
@InboundShovel 3 ай бұрын
Oh yeah, great question! The tilemap issue was introduced by doing the conversion, so it wasn't the culprit back in 3.2, haha!
@Kry0000
@Kry0000 3 ай бұрын
@@InboundShovel Interesting... thanks for sharing.
@dibaterman
@dibaterman 3 ай бұрын
I feel my maps have a bit more going on with them since they are 3d, I may be wrong. But I instance the entire map and hide and terminate processes on the ones not being used. Keeping them on the tree but consuming no process time. This method while memory intense creates no spike in idle time. Granted there is also a scene transition between rooms, but this is for flavor not really needed. I could instead have just done a camera transition to the next rooms camera. But it is nice to give me some wiggle room to do things like properly position the player in the new room.
@VelenZaiga
@VelenZaiga 3 ай бұрын
I have a question for you, and it's related to collisions regardless of whether or not you have slopes (I have watched the slope video). How many different ways do you end up usually checking collisions? How do you deal with edge cases like landing on corners or dealing with ceilings or strange areas with weird detections?
@brunomello7499
@brunomello7499 3 ай бұрын
Oh man... I'm glad I have vim macros to refactor my export variables to the new format hahaha
@lpfan4491
@lpfan4491 3 ай бұрын
Version upgrade pains. 😩 They are not only a thing in coding, but also a lot of other things. I updated a Wikiproject(which in itself was a pain) and suddenly some stylecommands no longer work(Diffrent syntax? Idk) so that's unhelpful. And the entire visuals are broken because automatic table borders and coloring are appearently no longer a thing, needs to be manual. y?
@DGdevv
@DGdevv 3 ай бұрын
In my case, I am converting my godot project restating a new project and just reusing the assets, then I just create each scene and each script slowly to fix each possible errors more accurately and also develop new script logics using the new features from godot 4, but I don't think this is the fastest way to convert a project, I just found it less annoying than seeing a debugger getting bigger than the screen.
@omnipenne9101
@omnipenne9101 3 ай бұрын
Oh god the horror
@nikolailestrange
@nikolailestrange 2 ай бұрын
I was thinking what the H is a tween (I have tweenagers in my house...) and then you explained very nicely and I was thinking, oh he'll just replace that with the animation player node (which afaik works nicely to do the same sort of stuff in godot 4). But you have a code way of doing it which sounds cool... but I might stick with animation player anyway.
@sslaxx
@sslaxx 3 ай бұрын
Why 4.x, and not 3.5 (or the just-released 3.6)? I'm fairly sure 3.5/3.6 ameliorates the shader cache issue.
@parventotalvideo5356
@parventotalvideo5356 3 ай бұрын
❤❤❤🎉
@dimanarinull9122
@dimanarinull9122 3 ай бұрын
my first reaction: why is your game having more lines than my custom game engine?
@glareninja
@glareninja 18 күн бұрын
im not a expert coder or anything, but didn’t he mention 48k lines were sprites or somethin i think a game engine doesn’t have as many sprites as a game.
@dimanarinull9122
@dimanarinull9122 17 күн бұрын
@glareninja it shows you are not a coder. No, he said it about json and similar files, which are not code and are auto-generated by the engine. Leaving him with more lines of code than my entire engine after I exclude those files.
@glareninja
@glareninja 17 күн бұрын
@@dimanarinull9122 1:10 the .json files were generated by exporting his sprite sheets (aka i just shortened this to “sprites or somethin”) im aware it was .json files, i just paid attention to what he said after that, i said sprites or somethin cuz i wasn sure what info about the sprite sheets it was storing exactly.(ok to be fair, i still dont know what the .json file is doing here, i didnt claim to be a coder, who knows how to make a game, actually i didnt claim to be a coder at all…) second off, how am i supposed to know if you excluded those or not? lol
@dimanarinull9122
@dimanarinull9122 17 күн бұрын
@glareninja you can be nice and ask, be generous and assume I was as thorough as you, or be pedantic and watch my game engine's actual code. Also, a spritesheet is just the picture. The engine generates a json from the user defined areas in the GUI to interpret that image as individual sprites. Spritesheets don't generate files. It's still the engine doing this.
@glareninja
@glareninja 17 күн бұрын
@@dimanarinull9122 i like how i proceeded to finish editing my comments wording after noticing it wasnt well worded, literally 2 seconds after i see yours… i changed my wording of the exporting sprite sheet part, the one thing you mentioned lol (i swear i didnt just learn that from your reply, and edit mine to not look dumb XD)
@kermitblyat4138
@kermitblyat4138 3 ай бұрын
Is it possible to just load all the shaders you have in the level and then just turn those On/off that you currently need/ dont need in the sub-level? So you just load all the Shaders in the Loading screen, turn off all shaders that are not in level 1, and when you start to instantiate level 2 you just turn on the already loaded Shaders for level 2. Kinda like Object pooling but with Shaders.
@Soumein
@Soumein 3 ай бұрын
So your character sprite has its own camera, and just exists somewhere else? Is there an advantage to that over just attaching the sprite to the CollisionShape?
@nemo9396
@nemo9396 3 ай бұрын
During your game development are there any unique game mechanics that you want to keep as a surprise that you will not show to the public that follows your game's development until its launch?
@joonyluix3409
@joonyluix3409 3 ай бұрын
Hey I just subscribed to ur channel like 4 lr 5 days ago and i just started learning game dev on godot to work on 2d games etc Can u tell me how i can learn gdscript and godot in general if u have some tips or some courses to study i would appreciate it And i love the way u explain things in ur shorts and videos keep it up ❤
@BetaTester704
@BetaTester704 3 ай бұрын
74k lines is crazy, I try to keep each script under 200
@DGdevv
@DGdevv 3 ай бұрын
Pain
@OwenAFK
@OwenAFK 3 ай бұрын
Just saying if you're doing a metroidvania you HAVE TO add a sewer level
@breakfasttime
@breakfasttime 3 ай бұрын
I dont know why but my steam in broken so is there any way if you can upload this game on another platform
@hamzazahoil48
@hamzazahoil48 3 ай бұрын
173 errors 💀💀
@igorthelight
@igorthelight 3 ай бұрын
That's not that much. Anyone who worked with porting old C++ projects saw 400 to 900 errors xD
@commandprompt7171
@commandprompt7171 2 ай бұрын
@@igorthelight 48936 Segmentation fault (core dumped) 💀
@igorthelight
@igorthelight 2 ай бұрын
@@commandprompt7171 Oh shit! xD
@celsladroma8048
@celsladroma8048 3 ай бұрын
WOW amazing... I THINK IM GONNA FIGHT YOU WITH THAT JUST WAIT FOR ME- YOLO
@bbkr2063
@bbkr2063 3 ай бұрын
Added to wishlist! One thing I've noticed in your videos is that main character has no personality. There are many platform games where main character is completly forgettable and you just grind enemies from start to end - Rochard, The Fall, Outland, Stealth Inc. But they all failed to make a brand. Unlike neurotic Crash Bandicoot, clumsy Abe, posh Zoya / faint-hearted Amadeus / jovial Pontus from Trine, etc. I have a feeling this game will really pop if you focus on main character once you are done with combat mechanics. Idle animations here and there. Maybe break 4th wall sometimes, like surprise player with pissed off Isadora cutscene when he failed 3rd boss attempt. All those little stuff. I think lore is even less important than likeable character that you can identify with.
@lyraisnapping
@lyraisnapping 3 ай бұрын
dw Isadora has edge that's for sure!
@vickylance
@vickylance 3 ай бұрын
Does ypur game also run on mobile platforms?
@ludomaster3416
@ludomaster3416 3 ай бұрын
Sh1t... I cannot really watch today, since it's soon 11pm... ;-; Update: Don't care about going to bed when there's a new video!!! So sad that the whole game is just screaming with errors... I hope it's going to release at least... I really damn hope it isn't going to get cancelled... ;-;
@InboundShovel
@InboundShovel 3 ай бұрын
Haha, definitely not cancelled, no worries there!
@Cade_Squirrel
@Cade_Squirrel 3 ай бұрын
I use Game Maker Studio 1.4, I'm aware of the benefits of GMS2, but I'm better with 1.4.
@CellarSpiderRae
@CellarSpiderRae 3 ай бұрын
rippp mister clean with motion blur 😅😅
@envisagedtwo
@envisagedtwo 3 ай бұрын
Luh yap sesh
@JuhoSprite
@JuhoSprite 3 ай бұрын
What a pain in the arse
@ArcChief01
@ArcChief01 3 ай бұрын
Who does your art and are they for hire??
@lyraisnapping
@lyraisnapping 3 ай бұрын
their commission is closed for now sadge
@aljuvialle
@aljuvialle 3 ай бұрын
Could you please support GoG as well?
@BlueCreepvine
@BlueCreepvine 3 ай бұрын
oof
@hundvd_7
@hundvd_7 3 ай бұрын
I had no idea you had a face
@blasterxt9
@blasterxt9 3 ай бұрын
Hello sir I'm new here
@anon_y_mousse
@anon_y_mousse 3 ай бұрын
This really makes it sound like using an engine makes certain things harder to do. Makes me glad I'm learning RayLib so when I finally make a game it'll be easier to debug. I don't know what KZbin is doing lately, but the like button is hidden on the page, so just imagine I clicked it anyway. I'll have to check if one of the Chromium-based browsers is suffering this same indignity or if it's just more of KZbin's anti-competitive actions against Firefox.
@Rayu25Demon
@Rayu25Demon 3 ай бұрын
Americans and European AAA developers take notes, this guy has better skills than most of you
@Mrhellslayerz
@Mrhellslayerz 3 ай бұрын
Replace "developers" with "excecutives", and you'd be correct. Most AAA developers are horribly overworked and laid off by the executives for very petty and minor reasons.
@Rayu25Demon
@Rayu25Demon 3 ай бұрын
@@Mrhellslayerz i have seen indie developers releasing excellent games. atomic heat was good the team is AA studio also its their 1st big game Steller blades was good also small team and their 1st big game black myth was good as well, none of them is from europe or America. but the media is attacking them calming they are bad games.
@drjoriv
@drjoriv 2 ай бұрын
Mate, you get distracted too easily
@guilhermecosta6731
@guilhermecosta6731 3 ай бұрын
The game is currently very well done, but to be honest, I hate this name 🤣🤣
@vlog-vl5cc
@vlog-vl5cc 3 ай бұрын
❤❤❤🎉
Perfecting MOVEMENT for my Indie Game | Devlog
18:54
Inbound Shovel
Рет қаралды 10 М.
How One Programmer Created Gaming's Most Complex Ecosystem
28:29
ThatGuyGlen
Рет қаралды 1,7 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
Why Slopes are Shockingly Difficult for Indie Game Devs
17:20
Inbound Shovel
Рет қаралды 172 М.
I Should've Tried Godot a Year Ago
8:25
Weekie
Рет қаралды 70 М.
The 2.5 Year Quest to Save One Enemy in my Indie Game!
17:00
Inbound Shovel
Рет қаралды 14 М.
Why you Draw Bad Assets || 2D Game Art
13:00
Nonsensical 2D
Рет қаралды 108 М.
My game is 262,000 times faster than Minecraft. I'll show you how.
12:20
IGoByLotsOfNames
Рет қаралды 1,3 МЛН
One Week of Learning Game Dev in Godot
15:27
RachelfTech
Рет қаралды 38 М.
Best Games from the Brackeys Game Jam 2024.2!
13:53
Brackeys
Рет қаралды 156 М.
Why Starbound Failed
15:00
RoboKast
Рет қаралды 1 МЛН
Modular Upgrades Made Easy Using the Strategy Pattern
6:41
Bitlytic
Рет қаралды 88 М.
My 6 FAVORITE Godot 4.3 features
8:34
MrElipteach
Рет қаралды 29 М.