I spent 30 days learning shaders to avoid drawing pixel art

Ойындар

I spent the entire month of June learning how to use and implement shaders in GLSL to give my game a much needed facelift. Elixir Punk still has a long way to go aesthetically before it's ready for release, but this is a nice step in the right direction towards finalizing a cohesive visual style.
Let me know what you think.
Thanks for watching.

Пікірлер: 45

  • @ManaCoder-h4y
    @ManaCoder-h4yКүн бұрын

    To be honest I couldn't tell the difference between the first screen shot and second, besides the tree leaves moving and more trees and water, I had to do a few double takes.

  • @mel0ndev

    @mel0ndev

    Күн бұрын

    those are the shaders, my man.

  • @ManaCoder-h4y

    @ManaCoder-h4y

    23 сағат бұрын

    @@mel0ndev ohhh i see i didnt know, well it looks great then. when i think of shaders i think of the actual color changing not animating like that.

  • @KuroNK
    @KuroNK3 күн бұрын

    I don't know what's your game about tbh, but also, from the distance you have the camera most of the time, you cant really tell any of the effects you added. And I wouldn't say your art is bad, but i feel it lacks something, like nothing it's connected. it doesn't feel like a game world, it feels like a sprite collage.

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    thanks for the insight, and I tend to agree with you. Lots of things need to be added in order to make the world feel more complete, it is indeed lacking very much in a lot of areas! Sprite collage is a good way to word it though lol.

  • @mahvus5586

    @mahvus5586

    Күн бұрын

    ​@@mel0ndev Something that might help your pixel art is: Make the colors more vibrant; the colors are kind of muted and somewhat bland. A small tip for better colors: when creating shadows and highlights, use hue shifting (hue shift towards purple for shadows; hue shift towards yellow for highlights) I hope this helps.

  • @man-o-valor
    @man-o-valor2 күн бұрын

    I recommend using a color palette to make your colors look more cohesive. Hue shifting really levels up flat-looking light colored art. You’d be surprised how much it can be improved by just paintbucketing all the colors to similar ones!

  • @mel0ndev

    @mel0ndev

    2 күн бұрын

    @@man-o-valor thanks for the tip, some of these colors are based on a palette and then I think I went off the rails at some point. As I move towards improving the art, I will shift back into a more clear palette. Thanks!

  • @danielkruyt9475
    @danielkruyt94755 күн бұрын

    You didn't even try to get Zig compiling into SPIR-V shaders, and just went straight to GLSL? Tisk tisk, the Zig community needs your work on this compilation pathway! :P Another way of getting consistent reflections is to upgrade your game to 3D and use screen-space raymarching (a very simple shader that requires you to render your whole screen to a RenderTexture, and then render that texture to screen with the raymarching shader active on the reflective parts; look up "G buffer" and "deferred shading" if this all sounds unfamiliar and wild), but this truly requires the depth buffer to exist (3D land) so it doesn't fit into your current state super trivially. But you may find it less difficult than it sounds at first. The depth buffer will also alleviate the need for weird hacks to get your player to stop "climbing trees" (i.e. not going behind them). You can then use e.g. the stencil buffer to cut a little hole around the player if you wanna be able to see through trees but only with a limit when he's obscured. That stencil will however interact non-trivially with the screen-space raymarching algo... Shader/gfx programming goes *deep* my friend, I hope you enjoy learning about the topic as much as I have in the past. With respect to your question about aesthetics, I have to admit I think you're landing solidly in "amateur pixel art" land. Not incredibly attractive, and it's going to be difficult to break out of. I think if you're not planning on trying to study up on the theory of traditional visual art (I haven't either hehe so maybe I'm not the right one to be judging), the only way I can imagine of making yourself *stand out* is in the integrative aspect, the creation of juicy muchness of interaction in all components of the game, two examples: 1. A gust of wind plays (audio), the trees all get pushed aside in a great wave (shader), your player character falls over (animation state machine), and all the enemies start arriving from the side of the map the wind came from and they're running faster with the wind behind them (game logic)! 2. The big monster arrives with its enormous club. The club swings, it hits the ground, and a shader makes the earth literally shake around the point it hit. Some monsters/minions get knocked over temporarily and have to get up. These things make good Steam page videos that *stand out* . Anything shy of these kinds of things, I don't see how to *stand out* without just... being a better artist. :P No offense intended, I wouldn't be any better than you at pixel art to be fair, and I don't think your art looks bad, just very normal. Also I think pixel art is harder to enjoy when it's being rendered at 1:1 scale to screen pixels on modern displays. Using nearest neighbour scaling with careful discretization of positions to match perfectly with the screen's pixels, to render game textures larger but retaining maximum smoothness of camera- and game object- movements is a popular and pleasing thing in modern pixel art games that keeps the art on display without weird aliasing artefacts. Terraria is an example of this, as is Magicite. I assume you've also seen this kind of thing in other 2D games.

  • @mel0ndev

    @mel0ndev

    5 күн бұрын

    Oh yes, absolutely the art sucks at this point, thank for you trying to be nice tho. Avoiding pixel art is simply an angle for the video, I will have to eventually muster up the strength to dedicate a month or so to drawing better sprites. If that doesn't work like I hope I will hire an artist. Thank for the suggestions with regards to alternatives to reflections, unfortunately I think transferring the engine to work with 3D might be more trouble than it's worth, but I will keep it in mind if the engine eventually requires more complex effects. And not to worry! The player passing in front of the trees is an easy fix, I am just simply not sorting the player sprite at the moment because the sprite renderer lacks any kind of animation support, and I just like the walking animation lol. But that is very high on the list of things to be done next! Keep the gfx stuff coming, bro, I love this stuff.

  • @CatwaiiYT

    @CatwaiiYT

    3 күн бұрын

    Wow this comment is gold

  • @btwfh97
    @btwfh973 күн бұрын

    Uniformity and theme is something I look for when I buy a game (does the art have a consistent style) and one example that really popped out at me was the edges between land and water. The edges that separate the land from water horizontally are thicker than the vertical edges. Another thing I noticed (that might just be because of the first topic) was that those edge tiles are in different perspectives, to clarify, it's as if the camera is looking at the horizontal edges on a slant but somehow also looking at the vertical edges at a right angle, which bugs the eye because it doesn't abide by the laws of our euclidean world.

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    ah, that is something that I did not consider. Tile placements are a little borked rn due to not handling some edge cases, but I did not consider the perspective. Thank you for the insight, I will see if I can remedy that for the next video since I am going to be spending a lot of time in aesprite.

  • @ColdBlueLight
    @ColdBlueLightКүн бұрын

    can you adjust the brightness and contrast to help the colors pop more its a little too pastel and things look to blended together to me. otherwise the shader idea is neat but wont it eventually hit a wall where too many draw calls are being made?

  • @mel0ndev

    @mel0ndev

    Күн бұрын

    I think you're right about the contrast. I hoping when I get around to lighting it will help alleviate some of the issues. I am going for a pastel feel, but I have also been considering that it might be a bit too pastel. Post processing should help a bit with contrast, as well, but that won't be implemented for a while. I am not too worried about draw calls at the moment, as long as I can batch everything being drawn with a shader together, but I won't know for sure until I write or implement some kind of profiler. Thanks for the idea about contrast.

  • @antoniojimenezperez50
    @antoniojimenezperez5020 сағат бұрын

    The only bad mistake is the shadows of different elements are of different intensity but they should all be close to the same intensity for all the elements because they are all light by the sun. The green trees and the pink trees look like different things. The pink trees are difficult to see because they look the same intensity as the grass. If i was drawing this, i would copy paste the pink and the green trees next to each other and try to somehow change the shading to match one another. And is good to do it with everything or else it looks "like a collage" as KuroNK said.

  • @mel0ndev

    @mel0ndev

    8 сағат бұрын

    good points, thanks for the insight. I am still experimenting with aesthetics atm as it is still very early in development. A lot of people seem to think the colors aren't quite right, and I think I agree overall. Collage feeling I've pinpointed to lack of shadows in the world I think, makes everything look flat and lifeless. This will be addressed when I get to the lighting system. But first, building and gathering mechanics are needed!

  • @antoniojimenezperez50

    @antoniojimenezperez50

    3 сағат бұрын

    In my opinion it's not the colors. Any colors are ok, but more like the style for the game is still undefined, as you said. I would like to give you a little hand but KZread won't let me write my email adress in here. I don't know how to send files to you. If you have a way to send and receive files I would like to help you out if you want

  • @baranjan6969
    @baranjan69693 күн бұрын

    On a sidenote what's your desktop window manager called? It looks awesome.

  • @Starflight44

    @Starflight44

    3 күн бұрын

    Looks like it's berry

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    running the classic Hyprland + waybar combo. Hyprland is awesome, you get some sweet animations out of the box.

  • @foxtrot596

    @foxtrot596

    3 күн бұрын

    imo awesome is pretty awesome too

  • @mathijswy

    @mathijswy

    3 күн бұрын

    ​@@foxtrot596 especially if you use a nice compositor like certain picom forks

  • @foxtrot596

    @foxtrot596

    3 күн бұрын

    @@mathijswy I haven’t used it yet but it looks well.. awesome and I’ll definitely give it a go with void when I get myself a thinkpad in a week!

  • @Kosin-zs9il
    @Kosin-zs9il2 күн бұрын

    Everyone keeps saying "Shaders are so hard" but when you dive into it a bit its actually pretty easy to get decent shaders going without much effort.

  • @mel0ndev

    @mel0ndev

    2 күн бұрын

    @@Kosin-zs9il I think the hardest part was getting started, and then once I got my feet under me it was less complicated than I expected. These shaders here are very basic, and you can get a lot out of them for sure, but really they are just scratching the surface.

  • @magni319
    @magni319Күн бұрын

    I don't want to shock you, but the difference between the first one and the second is the amount of trees. No player would notice or care about some twinkling leaves

  • @mel0ndev

    @mel0ndev

    Күн бұрын

    maybe you don't, and that's ok. I wanted to learn about shaders and add these effects in and so I did.

  • @foxtrot596
    @foxtrot5963 күн бұрын

    Looks very nice! Never seen a yt gamedev use Linux or Zig. What distro u using btw?

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    @@foxtrot596 arch btw. gotta love the aur.

  • @A_I_X
    @A_I_X3 күн бұрын

    Nice video!

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    Thanks! Much appreciated.

  • @ivanstepanovftw
    @ivanstepanovftw3 күн бұрын

    Which DE are you using? Looks beautiful.

  • @mathijswy

    @mathijswy

    3 күн бұрын

    Hyprland (on Arch)

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    Hyprland! and the theme is catpuccin if you like the colors, both for vim and for kitty (terminal emulator)

  • @user-lm1fd3kt2c
    @user-lm1fd3kt2c3 күн бұрын

    What OS are you using?

  • @mel0ndev

    @mel0ndev

    3 күн бұрын

    I am using linux, specifically arch linux.

  • @misterguye
    @misterguye5 күн бұрын

    👍

  • @mel0ndev

    @mel0ndev

    5 күн бұрын

    👍

  • @doce3609

    @doce3609

    5 күн бұрын

    @@mel0ndev 👍

  • @mehmeh8883
    @mehmeh88832 күн бұрын

    He uses arch btw

  • @mel0ndev

    @mel0ndev

    2 күн бұрын

    @@mehmeh8883 btw

  • @luccadeahl5340
    @luccadeahl5340Күн бұрын

    :)

  • @RedBackBite0677
    @RedBackBite06772 күн бұрын

    The shaders dont add anything if the art is still bad, learn pixel art.

  • @mel0ndev

    @mel0ndev

    2 күн бұрын

    @@RedBackBite0677 yes, that is the joke

Келесі