Retro games were created with an emphasis on improving the quality of graphics. Now the creators deliberately worsen the graphics through additional shaders :)
I felt the same when the first "pixel art" games came out, thinking why should we go back to pixels when we were striving in 3d rendering. Now it's just a stupid question.
Great video, straight to the point! Always thought implementing shaders would be a hassle, but with your tutorial I got it set up in a breeze and with some tinkering around, it look absolutely amazing.
The affine warping effect would look best if the models are tesselated/subdivided either manually or dynamically to reduce but not totally eliminate warping.
PS1 developers would use extra polygons even when not needed for that exact reason. The large polygons of the building warp too much to match the PS1 aesthetic.
thanks for the tutorial. everything went really well. (Except that I can't move my mouse or look around when the TV shader or something is active. But the PS1 shader works normally
Oh, I forgot to mention this, you have to add an extra line in the CRT shader. I don't know about the post processing shader, I think that one worked for me without changing anything, as it war written for Godot 4, the CRT one was written for Godot 3. Thanks for pointing it out.
How do you make buildings? Do you import a model without doors and add the doors models as children so they can be opened? I would appreciate if you can share a tutorial
Hi, if you make your own models, you can leave space for the doors, then add them in-engine. For my game, I use a different system to navigate between doors, here's a tutorial: ruclips.net/video/mroRGL0Tr_E/видео.html
i dont know if it's too late to solve this issue, but i had to do a pass through on the SubViewPortContainer: extends SubViewportContainer @onready var player = $SubViewport/CharacterBody3D func _ready(): set_process_unhandled_input(true) func _input(event): if event is InputEventMouse: var mouseEvent = event.duplicate() mouseEvent.position = get_global_transform_with_canvas().affine_inverse() * event.position player.unhandled_input(mouseEvent) else: player.unhandled_input(event) make sure to rename the input on the player to unhandled_input from _unhandled_input
hi may i ask. Whenever i put the shader in, it always messes with my player movement and i cant rotate. thats when i put it as a child of a canvas layer as an overlay. When i put it under control, my movements fine but then the shader isnt there. Help!
thank you for explaining how to apply shaders. i have only 1 problem. my sound wont play anymore xD getting no error messages everything is just silent. i think it has to something to do with putting everything under the subviewport nodes ok I just enabled the two checkmarks under "Audio Listener" in the "Subviewport" node any ideas how to get rid of the black bars on the side ? xD
Never used the mobile renderer myself, but they should be working on compatibility. Except for web exports, Godot always messes up shaders for me when I export to web, so they might not look the same as in the editor.
Hi, nice video. But when i am adding Jittering shaders, the shadow that the model casts starts jumping back and forth when you move. Do you know how to fix it?
hello punga i tried using this with the game im working on its works great but it messes up the ui it becomes too pixeleted because of the resolution. I checked your other stuff and you seem to solve this issue. can you please tell me how did you do it?
Place the UI on top of the shaders and viewportcontainers (so the node is below them in the hierarchy). I recommend using a different canvaslayer for the UI
@@emirhansardag13 In my newest game I use 640x360 resolution. If you want a clear UI, you can make the game 1920x1080 (or any resolution) and leave the subviewport at 320x240, so you’ll have a sharp, high resolution UI, but the game will have the pixelated look.
Retro games were created with an emphasis on improving the quality of graphics. Now the creators deliberately worsen the graphics through additional shaders :)
I felt the same when the first "pixel art" games came out, thinking why should we go back to pixels when we were striving in 3d rendering. Now it's just a stupid question.
@@TheRaretunesI don't think games ever had pixel art as we know it now in the past
nailed it putting Murder House as an example in the thumbnail
Great video, straight to the point! Always thought implementing shaders would be a hassle, but with your tutorial I got it set up in a breeze and with some tinkering around, it look absolutely amazing.
this is SO EXCITING can't wait to improve my visuals !!!!
thanks, absolutely love psx aesthetics and godot is just wunderbar for this
Thank you bro i love this Video. Keep up the Grind
Ur vids keep getting better man, keep it up !! I’ll have to lyk when I decide to make my own ps1 style game 🙌🙌
just WOW throughout the video
thanks! very unique graphics style xD
fire tutorial thanks!
The affine warping effect would look best if the models are tesselated/subdivided either manually or dynamically to reduce but not totally eliminate warping.
PS1 developers would use extra polygons even when not needed for that exact reason. The large polygons of the building warp too much to match the PS1 aesthetic.
THANKS U SIR PUNGA I MEANS MR.PUNGA
I KNOW AND UNDERSTAND
BEFORE I MISSUNDERSTAND
NOW I KNOW AFTER WATHCHING THIS
THANKS U 😊
thanks for the tutorial. everything went really well. (Except that I can't move my mouse or look around when the TV shader or something is active. But the PS1 shader works normally
Thank you for this video, I just had my first son and I’m pretty sure I’m now capable of raising a great man
faltaron varias cosas importantes a nivel técnico pero bastante bien, te ganas mi like! :)
Best vid yet!
What version godot you running? I had to change some things in the post processing shader to get it to work on 4.2.
Oh, I forgot to mention this, you have to add an extra line in the CRT shader. I don't know about the post processing shader, I think that one worked for me without changing anything, as it war written for Godot 4, the CRT one was written for Godot 3. Thanks for pointing it out.
How do you make buildings? Do you import a model without doors and add the doors models as children so they can be opened? I would appreciate if you can share a tutorial
Hi, if you make your own models, you can leave space for the doors, then add them in-engine. For my game, I use a different system to navigate between doors, here's a tutorial: ruclips.net/video/mroRGL0Tr_E/видео.html
@@Punga046 I see, thanks a lot :D
when I first put my crt shader background of shader turns white and its not transparent how can I solve that
Did you solve it?
got mouse camera motion locked when moving scene into subviewport node, shader working well, but i can't move my camera
Make sure that under subviewport->control->mouse, the filter is set to either pass or ignore.
@@Punga046 already did it, but without success
i dont know if it's too late to solve this issue, but i had to do a pass through on the SubViewPortContainer:
extends SubViewportContainer
@onready var player = $SubViewport/CharacterBody3D
func _ready():
set_process_unhandled_input(true)
func _input(event):
if event is InputEventMouse:
var mouseEvent = event.duplicate()
mouseEvent.position = get_global_transform_with_canvas().affine_inverse() * event.position
player.unhandled_input(mouseEvent)
else:
player.unhandled_input(event)
make sure to rename the input on the player to unhandled_input from _unhandled_input
Is there a quick method of applying the model shader to multiple objects of different materials?
There’s a drag and drop PSX shader on GodotShaders.com. You can try it out if it’s easier
hi may i ask. Whenever i put the shader in, it always messes with my player movement and i cant rotate. thats when i put it as a child of a canvas layer as an overlay. When i put it under control, my movements fine but then the shader isnt there. Help!
Make sure that under subviewport->control->mouse, the filter is set to either pass or ignore.
thank you for explaining how to apply shaders. i have only 1 problem. my sound wont play anymore xD getting no error messages everything is just silent. i think it has to something to do with putting everything under the subviewport nodes
ok I just enabled the two checkmarks under "Audio Listener" in the "Subviewport" node
any ideas how to get rid of the black bars on the side ? xD
In your subviewport -> audio listener try checking “enable 3D” and “enable 2D”
how do you make the edges wobbly and crunchy
If you're thinking of the jittering effect, it's the first shader, 2:08
my mouse camera stop working after apply the crt shader, wtf
i fixed 👍
how did you fixed it?
@@renatorossarola tu vai clicar no teu colorRect no inspector dele vai ter um mouse tu bota o filter como ignore
quick question do these work on the compatibility/mobile renderers? or only on forward+?
Never used the mobile renderer myself, but they should be working on compatibility. Except for web exports, Godot always messes up shaders for me when I export to web, so they might not look the same as in the editor.
@Punga046 Alright thanks so much
When I put the shader, the shader is visible but it is not transparent, how do I make it transparent?
I don't think the shader supports transparent objects, same as the original PS1
the CRT shader is not working at all, it just shows a white screen, and there are a ton of errors, can you help???
@@ChillySmalls2910 Can you copy and paste the errors?
what website did you use to do the AI voice over? I've been looking for some but they are all paid
I use the text to speech option in Clipchamp
@@Punga046 thank you
Hi, nice video. But when i am adding Jittering shaders, the shadow that the model casts starts jumping back and forth when you move. Do you know how to fix it?
I think its intentional, the PS1 had really bad shadow rendering
so it doesn’t need voxel gi or lighmap for lighting?
It's your choice, I always use dynamic lighting for my projects, never used voxel gi.
hello punga i tried using this with the game im working on its works great but it messes up the ui it becomes too pixeleted because of the resolution. I checked your other stuff and you seem to solve this issue. can you please tell me how did you do it?
Place the UI on top of the shaders and viewportcontainers (so the node is below them in the hierarchy). I recommend using a different canvaslayer for the UI
@@Punga046 but resolution is set to 320x240 so doesnt that still make it very pixeleted.
@@emirhansardag13 In my newest game I use 640x360 resolution. If you want a clear UI, you can make the game 1920x1080 (or any resolution) and leave the subviewport at 320x240, so you’ll have a sharp, high resolution UI, but the game will have the pixelated look.
@@Punga046 okayy thank you so much!
I'd really recommend you to use your real voice, you make great videos, but I think they would get a bit more life without the computer voice
@@KenSimon_54 I use my real voice in my recent devlogs, I’ll use it for my next one, but they doesnt perform as great as my AI voice videos.
i used the SAME texture for the floor in my project LOL
godough 🗣
impresionante, like and suscribe
If I apply any shader it removes my footsteps sound
In your subviewport -> audio listener try checking “enable 3D” and “enable 2D”
AI voice?
Instant dislike for using ai narration.
@@TheDigimonXYZ Ok