Shaders are often counter-intuive. In this case, if you want to have the distortion affect the grid as well as the image, it's better to do the "distortion" first. When doing the distortion, what happens is that the coordinates of each pixel are transformed to correspond to another texel on the image. You can then use these same transformed coordinates to draw the grid. And the effect would be pretty much the same (though with possibly better quality, and faster) than if we first added the grid on top of the image, and then distorted the new image in another pass.(it would use 2 shaders instead of 1)
@@stephaneduhamel7706 Is there not also a chance of blurring the pixel grid? You'd of course want crisp crt lines, not them being blurred because of a distortion effect.
the human brain doesnt think like that. it adds more emersion to the game if you do it like this. since the goal is to make it look like a rounded tv screen your brain seeing the squares curve will actually give you the image better.
Hah, love it. I like how you somehow made this a tutorial withing droning on for hours about each line of code. Straightforward, beautiful and to the point. I'm not a big fan of bloom in games; I feel like every single person I've seen use bloom applies like 700% too much and it just washes out the whole scene, but after you applied the pixel grid it toned it down a bit so it didn't look as bad. The end result was quite impressive. Thanks for sharing.
I'm very happy that I discovered your channel a year ago. You inspired me so much by your videos that I learned C++ and SFML library which helped me understand a lot of things that I didn't know about physics and maths by making different programms/games. and now, I'm making my own engine :D
A tiny bit of torque spring on the player ship could feel nice. But it's totally not necessary. Too many springs makes everything feel too loose, and it's nice to have a few things be very crisp and stand out as special. It also helps avoid confusion about where the player's hitbox is.
Wow! Amazing job on this one as always! Will you please share this project with us? I'd love to read some of your code to get better, (and maybe to play the game a bit, it looks quite fun)
2:44 So... what happens if an alien is identified as, say, the right hand blue limit (3:16) and then the last left hand orange block is destroyed? Will the blue block bounce off of the left hand wall if there is no orange block?
When the orange block is destroyed the code will look for the next leftmost alien which in this instance will be the same as the rightmost alien. So that alien will now be the orange and the blue.
What are the memory/storage requirements of the compiled code in the final version? I'm curious if this could have, in theory, been made back when c++ was released, if you could take the coffee from all of the libraries back with you, or if any level of modern hardware is required for any of the physics/graphics requirements?
My guess is: 1. Pick a certain number of random points inside the square to be the vertices where different cracks intersect. 2. Calculate the dual of the Voronoi diagram for those points 3. Each connected region in that diagram is instantiated as a physics object, and the original square is deleted. Alternatively, if you don't care about making sure that the debris can be reassembled into the original image, you could just manually make a couple of different particles out of parts of the spaceship sprite, and randomly spawn them at the same moment that you delete the original ship and render the smoke.
@@multiarray2320 the point of the "hard way" is to make the debris look more realistic. One should be able to take the debris and reassemble it into the original sprite, and every sprite shouldn't break apart exactly the same way. It really isn't that much extra work, and you could precalculate a few different options to make it faster at runtime.
My only suggestion would be that the debris from the destroyed aliens should either explode outwards in all directions, or the player's ship should be a tank with the ground beneath it. It doesn't make sense for everything to be subjected to a such a significant gravitational force if they're fighting in space. Unless the player is defending an absolutely gigantic space station, or the battle is taking place in the earth's upper atmosphere? Which in either case should be represented graphically.
Amazing work. Is there any chance the game is going to be available as a tutorial series? Anytime someone searches for C++ game programming with either SDL or SFML, they're either 10 years old, or the final result game is boring as heck. We need more high quality C++ tutorials which produces high quality end products. Please!
Can someone provide a link for further details on implementation of spring joints in sfml? I really liked the wobbly movement of the enemies and want to try that myself.
Too many clones... imagine if the popular games arriving at the right time were different from space invaders, tetris, mario, super breakout, etc. How crazy would it be if a strategy had been popular lol. I guess everyone was playing cards and chess for that. ( "strategy games existed though". And they were the most popular games at the time that get talked about and cloned the most to this day? )
Really cool.
Probably makes sense to add the pixel grid overlay before distorting the screen shape, since the shape would affect the grid as well.
Shaders are often counter-intuive. In this case, if you want to have the distortion affect the grid as well as the image, it's better to do the "distortion" first.
When doing the distortion, what happens is that the coordinates of each pixel are transformed to correspond to another texel on the image. You can then use these same transformed coordinates to draw the grid.
And the effect would be pretty much the same (though with possibly better quality, and faster) than if we first added the grid on top of the image, and then distorted the new image in another pass.(it would use 2 shaders instead of 1)
@@stephaneduhamel7706 Is there not also a chance of blurring the pixel grid? You'd of course want crisp crt lines, not them being blurred because of a distortion effect.
the human brain doesnt think like that. it adds more emersion to the game if you do it like this. since the goal is to make it look like a rounded tv screen your brain seeing the squares curve will actually give you the image better.
congratulations you do a great job, i want to be a programmer like you one day
same
Same
Same
Same
same
You're brilliant, man. Doing as much as you can in just code is incredible, really shows how far you can get with nothing but C++ and an iron will.
Hah, love it. I like how you somehow made this a tutorial withing droning on for hours about each line of code. Straightforward, beautiful and to the point. I'm not a big fan of bloom in games; I feel like every single person I've seen use bloom applies like 700% too much and it just washes out the whole scene, but after you applied the pixel grid it toned it down a bit so it didn't look as bad. The end result was quite impressive. Thanks for sharing.
Yes it's easy to over use bloom :D in this case I indeed forced it a bit because of the crt shader which tends to mitigate the effect
I love the way you have implemented the modern touches. I especially like how dynamic feeling you have made the game with the springs.
Springs and physics alone make a lot of fun already, all other things just multiply it. Great work, dude!
This is amazing! I love how polished the final game looks!
The game looks so neat! I would like to see an option to disable the chain labels though, they just cover the beautiful particle effects.
It looks so good that I want to download and play it!
I'm very happy that I discovered your channel a year ago. You inspired me so much by your videos that I learned C++ and SFML library which helped me understand a lot of things that I didn't know about physics and maths by making different programms/games. and now, I'm making my own engine :D
What should learn first, smfl or create my own engine?
@@jhoanmartinezsilva2609
You should learn SFML first, then make your own engine by the help of SFML :0
Thank you very much! your message makes me really happy :) good luck with your projects, I wish you success in doing what you want :D
Im having trouble linking my header files in vscode... Any help?
@@Momoyon
I can help, but I just need to know how are you trying to link them or do you just don't know how to link them with vscode ?
i can't believe you added a remix of prodigy's "invader's must die", that is the cherry on top
Awesome. Love the quality of the end result. You inspired me to pick up one day mini jams again to try my engine on smaller stuff!
A tiny bit of torque spring on the player ship could feel nice. But it's totally not necessary. Too many springs makes everything feel too loose, and it's nice to have a few things be very crisp and stand out as special. It also helps avoid confusion about where the player's hitbox is.
Wow, I really didn't expect it to be so polished. This is great.
The Prodigy - Invaders Must Die remix fits so well not gonna lie
Wow, that actually looks really cool and fun. I'd play that!
amazing work! but please more Ants
I really enjoy these videos. :)
They're very nice, and I like having them in the background while I work.
Great stuff, as always.
Excellent work, looks beautiful!
This is exactly what I wanted to make. You are an inspiration !
Just need to learn C++ now...
Wow! Amazing work! This is looking great
that is the coolest space invaders remake game I have ever seen!
All this shows is that good artist trumps a massive physics brain every single day of the week when it comes to video games :)
Nice little Prodigy ode in the music ;) I kept thinking "what is that from??" until I realized it's literally "Invaders Must Die" by The Prodigy.
Absolutely fantastic ❤️❤️❤️
Wow, I couldn't do something with same level of polished not even with GameMaker (even if possible), congrats looks amazing !
This looks sooo great!
11:07 fantastic! All that’s missing is a 2’ tall ashtray full of stinking mint gum butt ends 😂😂😂
Blown away thxs !!
thanks for sharing the spring code! looks great!
Amazing work!
Wow super cool, hope this will be a game one time:)
Thank you! It is available for free on steam if you want to try it store.steampowered.com/app/1885460/Invasion_From_Space/ :)
@@PezzzasWork ooooo cool thanks
@@PezzzasWork i am downloading the game now... and i have it now, great :)
Hope you will like it!
This is so good!!! I wonder how long it takes you to build this.
Wow! Amazing job on this one as always! Will you please share this project with us? I'd love to read some of your code to get better, (and maybe to play the game a bit, it looks quite fun)
2:44 So... what happens if an alien is identified as, say, the right hand blue limit (3:16) and then the last left hand orange block is destroyed? Will the blue block bounce off of the left hand wall if there is no orange block?
When the orange block is destroyed the code will look for the next leftmost alien which in this instance will be the same as the rightmost alien. So that alien will now be the orange and the blue.
@@VestigialHead A mixed-color alien....
you are great at making games feel vibrant after applying only a little bunch of shaders
Thank you :)
Man I really love what you do👻
Well done. How did you decide on the screen resolution for the game. Does it resize for different screensizes?
Looks awesome!!
You make it look so easy man 😭
Amazing~! Really awesome~!!
Make Contra! With such effects I am sure shooting and destruction will be 100000% fun
Impressive work.
What are the memory/storage requirements of the compiled code in the final version? I'm curious if this could have, in theory, been made back when c++ was released, if you could take the coffee from all of the libraries back with you, or if any level of modern hardware is required for any of the physics/graphics requirements?
Shaders require a GPU with shader support. I think the first "T&L" hardware came out in the 90s, like 10 years after c++
Woooooooooooooowsome!🎉🎉 Just loved it! God bless you! How can I play it?
I've never understood how one would relocate colors to another pixel with shaders. Impressive result overall.
Next gen space invaders! How cool! How did you approach breaking apart the squares? Just broken into a lot of triangles?
My guess is:
1. Pick a certain number of random points inside the square to be the vertices where different cracks intersect.
2. Calculate the dual of the Voronoi diagram for those points
3. Each connected region in that diagram is instantiated as a physics object, and the original square is deleted.
Alternatively, if you don't care about making sure that the debris can be reassembled into the original image, you could just manually make a couple of different particles out of parts of the spaceship sprite, and randomly spawn them at the same moment that you delete the original ship and render the smoke.
@@tissuepaper9962 this sounds like a lot of work for this small effect.
@@multiarray2320 the point of the "hard way" is to make the debris look more realistic. One should be able to take the debris and reassemble it into the original sprite, and every sprite shouldn't break apart exactly the same way.
It really isn't that much extra work, and you could precalculate a few different options to make it faster at runtime.
My only suggestion would be that the debris from the destroyed aliens should either explode outwards in all directions, or the player's ship should be a tank with the ground beneath it. It doesn't make sense for everything to be subjected to a such a significant gravitational force if they're fighting in space. Unless the player is defending an absolutely gigantic space station, or the battle is taking place in the earth's upper atmosphere? Which in either case should be represented graphically.
Are you releasing this as a game on maybe steam? Is it done or will you be developing further on it?
thats insane...
cool result
Really cool 👌
No gravity in space! The debris should just travel in whatever direction it was already going till it collides with something or exits the screen.
Wow just wow
That’s very impressive. I would love to know how you did all that.
how did u break the things? and how did u make ur custom enemy movement patterns?
Nice Music!!
Centipede next please?
Yes please
Amazing work.
Is there any chance the game is going to be available as a tutorial series?
Anytime someone searches for C++ game programming with either SDL or SFML, they're either 10 years old, or the final result game is boring as heck. We need more high quality C++ tutorials which produces high quality end products. Please!
Can someone provide a link for further details on implementation of spring joints in sfml? I really liked the wobbly movement of the enemies and want to try that myself.
What should I learn, smfl first, engine games first? It's so fun, any book or course you recommend, I really love your vids
SFML is a good start since it will allow you to get your hands dirty on more and more complex projects until you create your own game :)
lovely :D
Thank you very much!
This actually looks very fun to play. Everything looks so well put together. Is there a download for it for your fans? Lol
was this Box2D or your own physics engine?
It is my own physics engine
@@PezzzasWork that is very impressive! Can it handle destruction? Or is it prebuild mesh? Is this available for download?
can you make a tutorial where you show how to get the same versions of SFML and compiler, and how to install it?
can you please do a code tutorial on this? Or at least open source it? I wanna do stuff like this but have no idea where to begin
Like it
cool
Where can I download/play this?
I am working on a steam release, will post something when it will be ready
@@PezzzasWork Thanks a heap, I can't wait! 😁
Hey Help us how to master c++ it would be great
This could be released as a AAA space invaders remake and nobody would know that it was made by 2 people.
Thank you :D
Do we have a download link for this?
github?
...Can i play your games? I wanna do that every game that you made.....PLZ!
This one is on steam store.steampowered.com/app/1885460/Invasion_From_Space/
Very cool. I like the spring. I’m able to pause and see the strict but how do you implement it on your enemy pawns?
& tell me you are good at math
What does this have to do with ants?
Too many clones... imagine if the popular games arriving at the right time were different from space invaders, tetris, mario, super breakout, etc. How crazy would it be if a strategy had been popular lol. I guess everyone was playing cards and chess for that. ( "strategy games existed though". And they were the most popular games at the time that get talked about and cloned the most to this day? )
Are you college student?
Not anymore :)