@@cherryberry1345 this was probably a privated video 9 hours ago, he commented, and 9 hours later (aka now) he unprivated the video to be released to the public
There's also that innocent look... It wouldn't look out of place on the SNES with those shades of green and 2D shapes. You could build a golf level that looks like a Super Mario World screen. Inside a program that leaks more RAM than the SNES ever had - in a single frame.
Dude you're gonna have to teach me how you always get memory leaks in your games! I've always wanted to implement memory leaks but don't know where to start :(
Memory leaks could be a really good theme for a game. Just finish the game before the game crashes, or worst your computer crashes. At the end the score can be calculated based on the total amount of memory leaked throughout the game. The least the better.
If you are interested in getting into gamedev, you will be using the Pythagoras theorem all the time, and try to understand the atan2(x, y) function, it's really important. I recommend you getting into interesting pre-calculus stuff, mainly trigonometry, it's used a ton in everything. For example sin(angle) returns a 'y' position and cos(angle) returns a 'x' position of a circle, that's something that usually high schools don't teach, but it's very important. The movements of the ball of this game are for sure using sin(angle vs mouse) for 'y' velocity and cos(angle vs mouse) for 'x' velocity. If you graph it you will see that if you draw a line for each position in the circumference starting from the middle, the length will be the same, which in linear algebra is called magnitude, this means that the force that it is applying is the same for each direction. Hope you find it interesting, good luck.
The actual friction law would have the friction to be proportional to the velocity (maybe plus a little constant to lower the final tail of the movement). I think that way the movement would look more realistic
But IRL the golf ball will do some bouncing at higher speeds, meaning it has no ground contact at those times and thus will have less friction than a slower moving ball. Plus, you'd actually be simulating a particle moving through a fluid of a certain viscosity rather than simulating a ball rolling on a rough surface.
@@silience4095 Well, not really. Friction in a fluid is directly proportional to the speed, when v is small, or to the square of the speed, when v is big. Look up, for example, Stokes equation for a sphere moving into a fluid.
@@fuji_films That is aerodynamic/hydrodynamic drag. Also, there's pressure drag, friction drag, wave drag, and induced drag. You're talking about the total, which is only partly due to friction. So, no, I wouldn't say that friction can be used interchangeably with drag. They don't mean the same thing. In the comment thread, we are talking about the classic friction. Static, rolling, and sliding. None of those 3 depend on speed.
4:34 Maybe it would be nicer if you store level configuration in a JSON file then deserialize them on the fly using libraries such as nlohmann/json or similar. Then you don't need to painstakingly hardcode every level. And by using external data it would be easier to expand your game
I havent looked at the code, but seeing it from just this, most likely you are passing a texture by value instead of a reference, this makes your game building duplicates and pushing the memory pretty quick. Been there ;)
@@celmaibunsamper4283 At this point (ha!) I hate them even more than I did when I posted that, I've had to do a lot of pointer arithmetic and binary operations recently
Here's a tip: Use a debug flag with the compilation command and then use a program like valgrind to analyse the executable. This'll help you track down memory leaks
Great video! I really need to read into memory leaks more, and discover how not to do them, as I've just started doing more C++! The game looks pretty fun and cute though! :D
I ran valgrind on the resulting binary. The only memory leaks were in the Intel DRI graphics driver on my system. There were uninitialized variables for SDL funtions called which should be initialized in anything that would be released. But, this is a quick game example. I did find that the strokes counter should have used std::str.append() instead of +. Also, I wouldn't want to make it too easy, but if the mouse is moved outside of the window area (or screen if you use SDL_WINDOW_FULLSCREEN) it stops increasing the stroke power. I might accomplish that via keyboard or fix this.
When used improperly old things like c and even c++ can cause issues, be slow, break systems, and be very insecure… But when harnessed correctly C is one of the fastest most efficient and powerful programming languages you can write
Yay, a new PolyMars video! Maybe I guess this night could get better after all! Also, you're so close to 100k, Glad you've gone so far! edit: yay poly got 100k :>>>>>>
Fantastic spin on the theme! It's unfortunate about the memory leak because it looks great. Also you're so close to 100k subs! You'll get there soon :D
I liked it because you didn’t used any engine, just some c++libs! That’s cool! I’ll check your channel for more content like this, it’s my first time here
Would've been chadly if you simply said the memory leaks were a feature and not a bug. Also you make great content. I've learned a lot about game development and art design from you. Your games always look really nice and have a really consistent style.
I like how the Physics is simple but yet the game is so creative. I guess I should also start by making simple games first, in order to finish the projects on time.
its so funny last time i watched this vid i knew nothing about game dev and now somehow im using SDL2 to make a game and now i can relate to everything in this vid lol
Omg I started laughing so hard when you said it didn’t work because of memory LEAKS LOL THAT WAS SO UNEXPECTED WHY DID THAT HAPPEN?!? I THOUGHT IT WAS GOING SO WELL LMAO
i can see it in a near future "so, i use java to avoid memory leaks since the garbage collector should take care of that for me but i still got memory leak" just kidding tho, great job making it, will try it for sure
I highly recommend using visual studio instead since it shows the amount of memory being used by the application, or just have task manager running when you run the program
Hello polymars! Greetings from Chile 🇨🇱! Im 13 years old and im currently learning c#, i love your videos, Thanks to your videos I have the motivation to learn c# or any programing language (c++ seems very complicated btw...)
Next challenge: Learn to integrate LUA(or other scripting language) interpreter with any engine, then learn this scripting language and use it as main game logic code.
@@PolyMars this applies for a lot of things in programming, but generally resource loading/initializing is very intensive, and you should do it just once somewhere in a constructor or something like that
Then learn to make a game without a game engine Right now i am making my own simple engine with plain C and OpenGL with the GLFW library I have learned so many things because of the decision to not use a game engine
@@OGA-b4l Hello, im kinda new to programming. If i want to make my own game, should i first study using game engine such as unity or not using game engine like SDL with c++? Thank you
@@michaelsanjaya2553 well if you want to make a game you should use a game engine But if you want to learn how to program and maybe get a job later, learning how to make a game engine (or how to make a game with a library) will teach you so many things about programming in general If you use a game engine you will learn how to program in that game engine but most of your skills will be useless ouside of that engine If you make your own game engine or use a library like for example: SFML, Allegro or SDL you learn how to reder object and make your own systems TL;DR: if you want to make a game, use a game engine like unity or godot BUT if you want to learn how to program, making your own engine or using a library will teach you so much and will maybe be able to get you a job. Have a great day and tell me what you are gonna do
@@OGA-b4l Thank you very much for the detailed explanation! I think im going to do the 2nd option that is make my own game engine because i love to code. Is there any recommendation for the library in c++ or just start learning SDL like in the video??
@@michaelsanjaya2553 you said you were new to programming, then i would go with SFML. There are a lot of tutorial here on youtube and it is a lot easier then SDL.
One way to create randomized levels would be: 1. Placing obstacles randomly 2. Using pathfinding algorithm to check if it is beatable 3. if it is not beatable Return to step 1 4. Split the obstacles into two levels 5. Load the the two levels on both sides This would also be Interesting if the Position of the balls locked, so hitting an obstacle on one side is like hitting an invisible obstacle on the other side
Actually SDL2 is godly, but the only problem I see is memory leak and incorrect/invalid optimization, For any gamejam i spend more than half of my time fixing little bugs and leaks than actually implementing stuff! Kudos to you tho, the game looks really cool :DDD
subscribe or get golfed 🏌
🧍♂️
G O L F E D.
@@cherryberry1345 this was probably a privated video 9 hours ago, he commented, and 9 hours later (aka now) he unprivated the video to be released to the public
anything but golfed
@@cherryberry1345 was programmed i think
Idk why but watching people create stuff without game engines is always oddly satisfying
hey Tantan, please create more rust games :)
love to watch your videos
Hi tantan
It truly is.
this is so true
Imo it's the bestest way of making games... though I personally think of it as writing a custom engine for the game, not as "not using" a game engine
I love how your game was so good it decided to take the entirety of the available ram
unused ram is wasted ram
im running it and its currently taking 32gb and counting help
@@jased8461 goated setup
There's also that innocent look... It wouldn't look out of place on the SNES with those shades of green and 2D shapes. You could build a golf level that looks like a Super Mario World screen. Inside a program that leaks more RAM than the SNES ever had - in a single frame.
@@not_herobrine3752 I guess i never waste my ram, i even use virtual memory so there is more to not waste!
Dude you're gonna have to teach me how you always get memory leaks in your games! I've always wanted to implement memory leaks but don't know where to start :(
I might be able to help you there
@@PolyMars haha nice deal
nope
Savage.
Just make everything public in a class, or overload lot of functions or kinda just badly organize your code and you're done. No need to pay $20,000
@@frosty7674 lmao
I haven’t yet seen anyone talk about your game art, seriously, it’s very clean
frrrr
was thinking the same thing
Why does he draw them blurry tho
@@WinterNox because anti-aliasing is pretty cool I suppose
@@Dorbellprod He over uses it imo
Memory leaks could be a really good theme for a game. Just finish the game before the game crashes, or worst your computer crashes.
At the end the score can be calculated based on the total amount of memory leaked throughout the game. The least the better.
ok mogba
Yeah but then it becomes pay to win since more RAM = easier gameplay
@@greg77389 You can complete the game with more ram but that wouldn't help with the overall score. More the memory leak lesser the score.
@@nishantmogha7679 Then there has to be an inital score or a set time limit. More RAM = more time to play = more score to accumalate.
That would certainly be an interesting form of code golf. Shorter code, shorter play time, win!
Most MBs of memory leaks per second any% speedrun
The king is back 👑
YOUR the king!
No your the general
@@wit2817 you're * jk jk
Hi
Oh hello there
I love that you included the actual math in these videos. I try to pause and think how it works in a math equation.
u have to THINK? how old r u?
@@stxnw he included the Pythagorean theorem and slope form into code? I read it to understand how the hell he did it. I’m 15 btw.
@@joshkanyinda5569 oh ok then it’s fine. i was like that at 15 too
If you are interested in getting into gamedev, you will be using the Pythagoras theorem all the time, and try to understand the atan2(x, y) function, it's really important.
I recommend you getting into interesting pre-calculus stuff, mainly trigonometry, it's used a ton in everything.
For example sin(angle) returns a 'y' position and cos(angle) returns a 'x' position of a circle, that's something that usually high schools don't teach, but it's very important. The movements of the ball of this game are for sure using sin(angle vs mouse) for 'y' velocity and cos(angle vs mouse) for 'x' velocity.
If you graph it you will see that if you draw a line for each position in the circumference starting from the middle, the length will be the same, which in linear algebra is called magnitude, this means that the force that it is applying is the same for each direction.
Hope you find it interesting, good luck.
You might as well toss in some differential equations
You know this is just BEGGING to be ported for the nintendo ds, right?
I mean, two screens... Stylus...
ohno
@@PolyMars you have to do it now (◕ᴗ◕✿)
@@PolyMars port it for nintendo 3ds. *now.*
@@PolyMars oh yeah
@@PolyMars Now, it must happen
The actual friction law would have the friction to be proportional to the velocity (maybe plus a little constant to lower the final tail of the movement). I think that way the movement would look more realistic
oh that's interesting, thanks!
But IRL the golf ball will do some bouncing at higher speeds, meaning it has no ground contact at those times and thus will have less friction than a slower moving ball. Plus, you'd actually be simulating a particle moving through a fluid of a certain viscosity rather than simulating a ball rolling on a rough surface.
Friction is independent of speed tho.
@@silience4095 Well, not really. Friction in a fluid is directly proportional to the speed, when v is small, or to the square of the speed, when v is big.
Look up, for example, Stokes equation for a sphere moving into a fluid.
@@fuji_films That is aerodynamic/hydrodynamic drag. Also, there's pressure drag, friction drag, wave drag, and induced drag. You're talking about the total, which is only partly due to friction. So, no, I wouldn't say that friction can be used interchangeably with drag. They don't mean the same thing.
In the comment thread, we are talking about the classic friction. Static, rolling, and sliding. None of those 3 depend on speed.
I literally love your use of graphics to visually explain how your code works. 10 outa 10
Polymars: * hears the theme *
Polymars: My disappointment is immeasurable and my day has been ruined
Next Year: we need a new Game Jam idea!
Game Jam: No we do-
PolyMars: YES, YOU DO.
Another banger as always. Great work, Dude!
4:34 Maybe it would be nicer if you store level configuration in a JSON file then deserialize them on the fly using libraries such as nlohmann/json or similar. Then you don't need to painstakingly hardcode every level. And by using external data it would be easier to expand your game
LDTK, which spit out a JSON. So you even have a very competent level editor!
Was getting into c++ myself finally and in a breif handful of frames you solved my compiler needs, thank you
"So basically I wasted 48 hours" Ahh yes, the life of coding
I havent looked at the code, but seeing it from just this, most likely you are passing a texture by value instead of a reference, this makes your game building duplicates and pushing the memory pretty quick. Been there ;)
Pointers, pointers, pointers!
@@nikkiofthevalley i think every1 hate pointers..
@@celmaibunsamper4283 At this point (ha!) I hate them even more than I did when I posted that, I've had to do a lot of pointer arithmetic and binary operations recently
@@celmaibunsamper4283 fr
@@celmaibunsamper4283 If you hate pointers then C/C++ is too powerful for you. Stick with scripting languages.
Pog you’re about to hit 100k!! Good job buddy!
thank you lego man!!!
@@PolyMars wait what last time i saw you, your sub count were on 50k how did your subcount go high
@@yeppiidev yt reccomended his video a lot ,
Thank you for getting me into C++! Now I know what a real programming language feels like after using C# for years.
Well done. Amazing job. I wouldn't stress too much about the memory leaking. This is how we learn and become better developers. Keep going!
Here's a tip:
Use a debug flag with the compilation command and then use a program like valgrind to analyse the executable. This'll help you track down memory leaks
When the world needed him the most he returned
Really liked the game concept. Too bad about the memory leaks but it's definitely a learning experience! Great stuff!!
i really like the way it turned out. not using an engine is a challenge in itself but this game is actually very fun. awesome work !
Great video! I really need to read into memory leaks more, and discover how not to do them, as I've just started doing more C++!
The game looks pretty fun and cute though! :D
I ran valgrind on the resulting binary. The only memory leaks were in the Intel DRI graphics driver on my system. There were uninitialized variables for SDL funtions called which should be initialized in anything that would be released. But, this is a quick game example. I did find that the strokes counter should have used std::str.append() instead of +. Also, I wouldn't want to make it too easy, but if the mouse is moved outside of the window area (or screen if you use SDL_WINDOW_FULLSCREEN) it stops increasing the stroke power. I might accomplish that via keyboard or fix this.
When used improperly old things like c and even c++ can cause issues, be slow, break systems, and be very insecure…
But when harnessed correctly C is one of the fastest most efficient and powerful programming languages you can write
You didn't waste 48 hours writing a game in C++. You gained 48 hours of invaluable knowledge and experience of coding in C++. Well done!
Yay, a new PolyMars video! Maybe I guess this night could get better after all!
Also, you're so close to 100k, Glad you've gone so far!
edit: yay poly got 100k :>>>>>>
He got it!!!
113k now. Lolz.
@@wateryagarvideos5186 Yeah lol!
Your videos with making games with SDL are so amazing that I want to launch Visual Studio and make some games with SDL2!
7:09 hey thats me
Fantastic spin on the theme! It's unfortunate about the memory leak because it looks great.
Also you're so close to 100k subs! You'll get there soon :D
well done, I participated in that game jam too, really excited to see your work for the upcoming brakeys game jam 2021.
I lovve your videos, they motivate me so much to learn new libs and c++ itself!
"Don't get me wrong, I'm still gonna steal his code."
Too relatable.
the 200 megs / second are probably the funniest thing i heard all day
love your videos
I liked it because you didn’t used any engine, just some c++libs! That’s cool! I’ll check your channel for more content like this, it’s my first time here
He is back! Great video polymars, great attempt 2 of the challenge
Would've been chadly if you simply said the memory leaks were a feature and not a bug. Also you make great content. I've learned a lot about game development and art design from you. Your games always look really nice and have a really consistent style.
Love the dream speedrunning music!!!
XD
Niiiccceee I’ve always wanted to have memory leaks in my games but could never figure out how to get them to work
I like how the Physics is simple but yet the game is so creative. I guess I should also start by making simple games first, in order to finish the projects on time.
I'd love to see a video where you fix the memory leak. Should be a fun experience.
its so funny last time i watched this vid i knew nothing about game dev and now somehow im using SDL2 to make a game and now i can relate to everything in this vid lol
Omg I started laughing so hard when you said it didn’t work because of memory LEAKS LOL THAT WAS SO UNEXPECTED WHY DID THAT HAPPEN?!? I THOUGHT IT WAS GOING SO WELL LMAO
The editing is just top notch! I really like your style.
The memory leak is a bonus feature, it is all connected you know. 😂 Well done, none the less!
Wow! 100k! Congrats, keep up the great work!
i can see it in a near future
"so, i use java to avoid memory leaks since the garbage collector should take care of that for me but i still got memory leak"
just kidding tho, great job making it, will try it for sure
Ayyy the king returns pog
5:40 Among us!
You mean m o g u s💀
I saw it
Respect for the name, Twinigolf is lowkey gigabrain
Cool, can't wait for you to review Opera's GX "No-Internet" Jam. I'm also participating :D
Top quality editing! Also, you're so close to 100k!
It was a fun jam for sure. My brother and I participated as well
i relate too much on your reaction to the theme lol. great video as always man, also you're close to 100k! :DDD
“ I guess it was a learning experience or something” lol
The level saving code was very intense, great video!
When I saw you didn't unload your level when it's finished I knew something would happens with memory leaks lmao
lololololol
Ayyyy Congrats on 100k! I remember when you were at like 200! :D
I highly recommend using visual studio instead since it shows the amount of memory being used by the application, or just have task manager running when you run the program
Congratz to 100K subs!!
7:31 IM IN THE VIDEO
x)
@@YessoN-YT tu fais quoi ici ????
@@notironicallycasters Toi aussi tu fais quoi ici x)
@@YessoN-YT tu connais ce youtuber ?
poly mars videos are always a treat
You don't need to fix memory leaks, just give it a description like: "Use less than () strokes or the game will crash" :)
Hello polymars! Greetings from Chile 🇨🇱! Im 13 years old and im currently learning c#, i love your videos, Thanks to your videos I have the motivation to learn c# or any programing language (c++ seems very complicated btw...)
Next challenge: Learn to integrate LUA(or other scripting language) interpreter with any engine, then learn this scripting language and use it as main game logic code.
pretty sure he did that in the pixel art one
and then import the code to roblox. (Roblox code is in lua)
100K! Congratulations!
Looks sick. Did you figure out where the memory leak was coming from?
yeah, I apparently can't use SDL properly- I was creating a texture from raw pixel data every frame without destroying it
@@PolyMars I'm not a programmer >:(
@@PolyMars this applies for a lot of things in programming, but generally resource loading/initializing is very intensive, and you should do it just once somewhere in a constructor or something like that
These challenge videos keep getting more interesting xD
Who else is watching him code insted of actualy coding
same bro
Congratulations on 100k!
How the hell are you so creative?
Dude I am not into game dev that much but your content is great love the humour and sarcasm
I was waiting for your video plz upload more often ✌
Hello? Poly mars?
Can't wait for you to get your 100k Plaque btw great video 👍🏼
I wish I could be on your level of programming. I'm an amateur at Godot a separate game engine
Then learn to make a game without a game engine
Right now i am making my own simple engine with plain C and OpenGL with the GLFW library
I have learned so many things because of the decision to not use a game engine
@@OGA-b4l Hello, im kinda new to programming. If i want to make my own game, should i first study using game engine such as unity or not using game engine like SDL with c++? Thank you
@@michaelsanjaya2553 well if you want to make a game you should use a game engine
But if you want to learn how to program and maybe get a job later, learning how to make a game engine (or how to make a game with a library) will teach you so many things about programming in general
If you use a game engine you will learn how to program in that game engine but most of your skills will be useless ouside of that engine
If you make your own game engine or use a library like for example: SFML, Allegro or SDL you learn how to reder object and make your own systems
TL;DR:
if you want to make a game, use a game engine like unity or godot BUT if you want to learn how to program, making your own engine or using a library will teach you so much and will maybe be able to get you a job.
Have a great day and tell me what you are gonna do
@@OGA-b4l Thank you very much for the detailed explanation! I think im going to do the 2nd option that is make my own game engine because i love to code. Is there any recommendation for the library in c++ or just start learning SDL like in the video??
@@michaelsanjaya2553 you said you were new to programming, then i would go with SFML. There are a lot of tutorial here on youtube and it is a lot easier then SDL.
Whoever is brave enough to use SDL deserves a medal
5:41 when the UI is sus
Nice, the first sprite you created was a perfectly timed ad for me! ^^
0:22 *he touched the lens so many times...*
I’m triggered XD
Congrats on 100k subscribers!
2:26 That's what she said.
LMAO
😳
Yo almost 100k! An early congrats !!
use full man.
Happy 100k Poly!
Note for programmers:steal everyone's code
{yes}
Congrats on 100k my guy
3:20 ratio
Great video, as always!
SDL dev returns!! But with some leaks
i am working in engine and this gave me MORE THAN ALL TUTORALS
About the Memory Leaks - there is a tool called Dr. Memory which you can drag your executeable onto and it tells you where a potential memory leak is
Congrats on 100k!
How did this Goated UA-camr turn into Polymars+++
One way to create randomized levels would be:
1. Placing obstacles randomly
2. Using pathfinding algorithm to check if it is beatable
3. if it is not beatable Return to step 1
4. Split the obstacles into two levels
5. Load the the two levels on both sides
This would also be Interesting if the Position of the balls locked, so hitting an obstacle on one side is like hitting an invisible obstacle on the other side
Let's get him to 100K guys.
I’ve just started gamedev so these videos to me are amazing to watch. BTW you are still better than me so congrats
Dham good vid, you just earned a sub my man!
thanks!!
Actually SDL2 is godly, but the only problem I see is memory leak and incorrect/invalid optimization, For any gamejam i spend more than half of my time fixing little bugs and leaks than actually implementing stuff! Kudos to you tho, the game looks really cool :DDD