WIP Brawler

Casual Garage CoderCasual Garage Coder Posts: 54Member
edited September 2021 in Projects

Hello all,

I'm currently developing a local pvp brawler with godot. I'm a dev, not an artist so the assets (except the gorgeous blob ;p) are coming from itch.io (for more coherence, from the same artist). I've also integrated neat shaders from pend00 (https://godotshaders.com/author/pend00/). The gameplay is loosely inspired from jump'n'bump (but a bit more fast paced). So far, I've managed to code main gameplay, two "finished" levels, one "placeholder" avatar (The Pink Blob).

Working with godot has speed up a lot of stuff. I still have to insert more content, polish menus (lots of placeholder graphisms), add controller support (for now, gamers share keyboards, which can be convenient if you connect more than one keyboard to your computer).

Here are screenshots from the two "finished" levels.

My 8yo daughter is currently my main feedback (and the fact that she's enjoying the game is a good sign for me. Her suggestions are very insightful too !).

I hope to post back some animations or videos in the future.

Regards,
The Casual Garage Coder


Tags :
«13

Comments

  • GogetaXGogetaX Posts: 106Member

    nice work so far..
    and i couldn't help noticing the water shader. amazing! even though its not yours. still amazing shader!

    overall the map is gorgeous!

    looking forward for more progress :)

  • Thank you. As I've said, i'm not an artist. I've only managed to make the ugly blob and terrifying placeholders for menus.
    So, I rely on assets pack from itch.io (for which I make donations - the quality of those assets is worth it) and borrow some shaders from godotshaders. Which make me think about the mandatory credits section !

    My next step is to implement different winning conditions and a true end game stat screen.
    I've also a big piece of work to do to replace the placeholders in my menus ... perhaps I should hire a graphist.

  • GogetaXGogetaX Posts: 106Member

    @Casual Garage Coder said:
    Thank you. As I've said, i'm not an artist. I've only managed to make the ugly blob and terrifying placeholders for menus.
    So, I rely on assets pack from itch.io (for which I make donations - the quality of those assets is worth it) and borrow some shaders from godotshaders. Which make me think about the mandatory credits section !

    My next step is to implement different winning conditions and a true end game stat screen.
    I've also a big piece of work to do to replace the placeholders in my menus ... perhaps I should hire a graphist.

    can I suggest an Asset Store?
    I recently discovered a good Asset Store https://craftpix.net/
    where you can pay something like 36$ for a whole year and you can download and use everything..

  • Cool store. I recognize some of the assets in several games :smile
    I'm currently using https://szadiart.itch.io/paltformer-fantasy-complete

  • Casual Garage CoderCasual Garage Coder Posts: 54Member
    edited September 2021

    Still progressing on the project. I won't show the ugly menus placeholders, but my work environment. I develop under linux (with the latest Godot 3.3.3) on a desktop computer. It's not a war machine (i7 4th gen, 32GB RAM, Nvidia 1060 6GB) in order to keep an eye on early performance issues if any. This system is displayed on 2x27'' 1440p screens.
    On the left, a recent acquisition. Asus TUF gaming F17 running with Windows 10 to test windows export and to manage all the social media/network stuffs.

    (for the record, on the photograph, I was working on a 2D shader of my own for the sake of testing a gameplay feature : when this kind of fighter -the blob- is close enough to attack, a blue halo is displayed, pointing to the nearest opponent in range. When an attack is possible, it turns to red. I'm not sure if i'll keep it. If I keep it, it will be specific to this character)

  • I've only work on my project for less than 8 hours in two weeks ... A lot of "bills-paying" work to do ...

    BUT !

    Behold the ugly placeholders ! I am the antichrist of the UI/UX ... and I'm a really bad graphist. All the screens you're about the see are 100% made by me, except for the (poorly chosen) font.
    Time to roast in 3, 2, 1 ....

    First, a look to the controls configuration. There's no controller support yet. It's in the roadmap and a matter of one or two hours.

    The playing menus. Select a level and the winning conditions.

    Then select the players and names (there's also a lot of polishing to do).

    After a playing session, here is the leaderboard. Again, lots of polishing awaiting ...

  • If you have any advice for UX/UI and font selection, don't hesitate !

  • TwistedTwiglegTwistedTwigleg Posts: 5,348Admin

    My only minor suggestion for UI/UX is to maybe put the labels in a texture box or something so it stands out a bit more from the background, as sometimes it can be a little hard to see. I think that would especially make the text over the leaderboard/win section a little easier to see, as right now it can be a little difficult at a glance to see.

    Or if you don't want to use boxes, then I would just move the leaderboard/win section text to a clear section so it's over the light blue background, like on the left or right.

    That said though, it is just a suggestion and I should add that my UI/UX experience is more on the implementation side than design side, so please take it with a grain of salt :smile:

  • Casual Garage CoderCasual Garage Coder Posts: 54Member
    edited September 2021

    Currently working on replacing menu placeholders with real menus.
    Here is the controls menu. I've added controller support.

    As you can see, the number between parenthesis (like Left Stick Y (0)) designate the controller identifier (not GUID obviously). I was thinking of putting the controller full name in little, under the axis/button description.
    First, I was thinking about spanning a label in the grid container, but it doesn't appear to be possible.
    Finally, I'll certainly use a VBoxContainer with two labels, the second one being empty if the control is from keyboard.

    (Changing the color scheme and the font is a big changer)

  • Small update. Added the controller name.

  • This time, it is the character selection. I'll stick with the dark edgy scheme.

  • And "finally" (-ish), the level selection/winning condition screen. More colorful as I use a zoomed+blurred part of the level as a background. Font has been changed too.

    After the session, the leaderboard is displayed with fireworks (from godot shaders. Mucho thx !)
    BUT, my daughter doesn't like the black background (even if I said to her that fireworks are fired at night - "Well, so, where is the tree-line ?" ...).

    Again, my daughter is not very happy with the character selection screen : "It's too dark. You need something more colorful, like this bokeh thingy". Great, a shader to re-think due to licensing ... but then, she comes with another idea : "Let the selected characters fight in the background on a very simple level !". Great, here comes the AI. I don't know what we'll be the easiest : make bot or rethink a shader ...

  • MegalomaniakMegalomaniak Posts: 4,822Admin

    She is right, night sky is not pitch black. ;) Just really, really dark to the naked eye.

  • Long time no see. I've been busy with surgery but I'm back on tracks. Modified some code to mutualized processing, made a input event processing hub, corrected some weird movement issues (I still have one left). No, I'm adding content, meaning new places (not to be shown yet), new characters and also, special moves.

    https://youtu.be/EK61RMFQXKI

    It's somewhat beautiful in slow motion :smiley:

    https://youtu.be/glmqjfuUGGY

  • MegalomaniakMegalomaniak Posts: 4,822Admin

    It's probably too big and too visually overwhelming, IMO. Looks good, but just takes up too much of the screen for a single effect perhaps?

  • The effect will be used for a special move that repel other players in proximity. But yeah, I'll make it smaller.

  • Some improvements. Mainly hidden because it concerns coding (mutualization, optimization).
    Added some sound and visual effects.

  • AsthalisAsthalis Posts: 96Member

    Wow ! How do you do this ??

  • Casual Garage CoderCasual Garage Coder Posts: 54Member
    edited October 2021

    You mean the explosion ? I've got inspired by an explosion shader from godotshaders.com and added a pseudo chromatic distortion. The sound of the explosion has been done using sfxia (which can be found in itch.io). Godot-wise, the explosion effect (as any other level-wide effects) is instantiated on demand, "executed" and then removed. Given than such an effect has a cooldown of several seconds, it's still safe to proceed that way (there's no risk too overflow the engine).

  • AsthalisAsthalis Posts: 96Member

    @Casual Garage Coder said:
    You mean the explosion ? I've got inspired by an explosion shader from godotshaders.com and added a pseudo chromatic distortion. The sound of the explosion has been done using sfxia (which can be found in itch.io). Godot-wise, the explosion effect (as any other level-wide effects) is instantiated on demand, "executed" and then removed. Given than such an effect has a cooldown of several seconds, it's still safe to proceed that way (there's no risk too overflow the engine).

    Thanks for all the details. It does looks nice !

  • Casual Garage CoderCasual Garage Coder Posts: 54Member
    edited October 2021

    New special move. This one is a bit overpowered, so the cooldown will be much longer (even if succeed in doing the special move with moving foes might not be easy).
    Got issues with the placement which seems to be odd (over the head of the players) and scaling is not done right (the closer you get, the smaller the beam is - but i know how to correct this).
    Once again, the beam effect is a shader from godotshaders.com, which parameters are animated through an AnimationPlayer. The parameters needs to be tweaked to make the beam more pleasant.

  • Credits for the shaders :

  • Casual Garage CoderCasual Garage Coder Posts: 54Member
    edited October 2021

    For the deathray special move, I've proceeded the same way as the explosion. Instantiated scene on the fly, with an animation played then flush it. I got issues with positioning them properly. For this, i got to use the collision layer center of both player (emitter and receiver). I've fixed the beam size issue by fixing the Y scale of the effect node.

    I'm opened to suggestion about the noise, color, parameters animation of the beam :)

  • It took me a while to figure out how to make a multi-pass multi-source 2D shader pipeline in Godot. Using Viewports with HDR, CanvasLayers, Sprites (with RGBA32 texture built by script) and mostly ViewportTextures as sampler2D, I've finally manage to make a fluid simulation entirely on GPU. For this, I use Navier-Stokes equation as described in this fabulous papers from the INRIA. I've also attempted to incorporate another equation described in this paper from the University of California, Irvine in order to make the fog a bit smoky, with mitigate success.

    One "big" step was to use the walkable tilemap and its associated collision shapes to compute an extruded normal map that provides fluid emission. A bit of gravity has been added too, as well as fixed emitters, acting as smoke guns.

    But ! It's not finished yet. The final step is to add perturbation induced by the players, so they can "play" with the fog, or at least interact with the fluid.

    Given the simplicity of the Navier-Stokes fluid simulation (due to its approximations), the whole effect doesn't slow down the rendering. The lag you will see in the beginning of the video is due to poor video encoding.

    My biggest concern is that it need to initiate and stabilize before looking great. It takes ~ 10 seconds. Perhaps it could be resolved with a waiting screen and a progress bar :sweat_smile:

    Many things are not shown here. For the moment, all the characters have their super abilities that can be triggered by double tapping in certain directions. One of them needs to be revised as it's a bit overkill.

    See you in a couple of days to show the final result of the fog with interaction with players.

  • cyberealitycybereality Posts: 5,341Moderator

    Are you kidding me?!?! That looks sick. Nice job.

  • Erich_LErich_L Posts: 702Member

    @Casual Garage Coder said:

    See you in a couple of days to show the final result of the fog with interaction with players.

    I can't wait for this.

  • Thank you :smile:
    The player interaction with fog is planned for this evening (in my time period, it will be in 7 to 8 hours).

  • CalinouCalinou Posts: 1,391Admin Godot Developer
    edited November 2021

    Note that if you need a 32 bpc viewport, there's a proposal for it (with pull requests for both master and 3.x): https://github.com/godotengine/godot-proposals/issues/2935

  • @Calinou said:
    Note that if you need a 32 bpc viewport, there's a proposal for it (with pull requests for both master and 3.x): https://github.com/godotengine/godot-proposals/issues/2935

    Oh, good to know, thank you ! For the sake of testing, I've already patched a version of Godot 3.4 to have GL_RGBA32 texture as backbuffers. But in fact, there's only a few visible artefacts between GL_RGBA32 and GL_RGBA16H (with is weird ...).

    By the way, here is the promised player interaction with fog. As always, I have to adjust it, perhaps add some color modification.

    For this level I don't want to rely on a single effect. I'll add some grim lights and perhaps fireflies. The background is already moving (clouds scrolling, trees swinging).

  • Erich_LErich_L Posts: 702Member

    that is sooooooooooo cool. I hope you add ranged attacks that wisp through the fog. In another map if the fog is generated from a single point it would create quite a fun place to hide and wait

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file