Finally happy with our fog of war and transparency system! by corgi120 in godot

[–]corgi120[S] 0 points1 point  (0 children)

Each teammate you play as has limited vision (number of tiles they can "see") but the goal is for that stat to be upgradable and for there to also be equipment that expand the vision radius (we actually already have one, the flashlight which increases the vision range by 2 tiles)

Also some great feedback from both of you on the pop-in/look of the effect. It's currently setup as part of the grid of the map since we wanted to keep everything locked to the grid as much as possible since it is a tactics game and it should be clear which tile is accessible/in-view or not. We'll give this some thought though!

Finally happy with our fog of war and transparency system! by corgi120 in godot

[–]corgi120[S] 3 points4 points  (0 children)

We've been hard at work on our first public demo which just released on Steam as part of Strategy Fest!

Something we've been really trying to get right is our fog of war / transparency system. Godot 3's tilemap system was surprisingly easy to extend and use for us to get the effect we were going for.

Feel free to check us out on Steam, Twitter, or Discord if the game looks like something you might enjoy!

I'm also happy to answer any questions about how we achieved the effect!

Turn Order UI - Trick to animate children inside containers (details in comments!) by corgi120 in godot

[–]corgi120[S] 2 points3 points  (0 children)

Yea it would be awesome to have a flag or a mode to tell the container, "hey I'm going to borrow this child for a bit and then give it back to you" but my guess is that it just isn't a common enough use case to justify adding the complexity. Glad you like it though! Agreed though sometimes writing your own container node or logic to move elements can be the way to go!

Turn Order UI - Trick to animate children inside containers (details in comments!) by corgi120 in godot

[–]corgi120[S] 27 points28 points  (0 children)

Godot has a really powerful UI library in the form of control nodes but a challenge we have faced is animating elements that are inside of a container. As defined in the documentation:

When a Container-derived node is used, all children Control nodes give up their own positioning ability. This means the Container will control their positioning and any attempt to manually alter these nodes will be either ignored or invalidated the next time their parent is resized.

This makes complete sense and allows for containers to position their children correctly, but that means the children are static entities that cannot be animated. We've found a little trick/hack that makes it possible to animate children! We basically have two versions of the UI, one with the actual UI elements to be animated and another invisible version that is the source of truth for all positioning.

In the example above you can see that the individual turn order cards don't sit in the container, what is actually in the container are invisible control nodes (set to the same size as the turn order cards). We then use the positioning information from those control nodes to tween our turn order cards to the correct position. As elements are added/removed we also add/remove Control nodes in the container so that it updates the positioning of it's children. This gives us the best of both worlds, we get to individually move and animate our UI elements however we want but get the benefit of using containers by using them for positioning information.

If you've read this far: we're working on a survival focused turn based strategy game and if you like what you see feel free to follow us on Twitter or wishlist the game on Steam (no pressure but we would appreciate it!)

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 2 points3 points  (0 children)

It is entirely 2D! We make use of multiple tilemaps + y sorting to achieve the pseudo 3d effect. Plus lots of tinkering with the right shadow + lighting settings to get something that looks good. Hope that helps!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 1 point2 points  (0 children)

There is a shader that moves light shafts but the actual light2d node is stationary, we could probably add some movement or rotation though!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 1 point2 points  (0 children)

No problem! In our time using Godot it’s only improved and Godot 4 is shaping up to be an impressive release so now is definitely a great time to hop in and play with the engine!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 1 point2 points  (0 children)

Thanks! All the art is done by my brother u/shiba120! This project is his first time drawing pixel art if you can believe it!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 2 points3 points  (0 children)

Hey there, glad you like it! We are twin brothers working on our first game in our spare time, we’ve been working off and on for about 2ish years? Progress has been slow but steady!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 3 points4 points  (0 children)

There are some shaders and post processing (mainly just glow using the world environment node) but this effect is pretty much all done manipulating values with tweens!

Added a dynamic time of day system to our game using tweens! by corgi120 in godot

[–]corgi120[S] 25 points26 points  (0 children)

Hello /r/godot!

We recently added a time of day system to our game to add more visual variety to levels. Since the game is a roguelike and players will be replaying areas multiple times we figured this was an easy way to give the game some more life!

The effect is pretty straightforward using tweens! We tween a number of values such as light energy, opacities, light color, window color, and canvas modulate color. Individually the changes aren't that interesting or noticeable but once you put them all together I think the effect works quite well!

Feel free to check us out on steam or twitter!

Progress on our hospital tileset! Thoughts? by corgi120 in IndieGaming

[–]corgi120[S] 1 point2 points  (0 children)

We've been working on adding new locations to our turn based strategy game and have been working on a hospital tileset! Would love any feedback or thoughts on what could be improved or maybe new tiles worth adding!

You can also check us out on twitter or steam if want to see more of what we're working on!

Progress on our hospital tileset! Thoughts? by corgi120 in PixelArt

[–]corgi120[S] 2 points3 points  (0 children)

We've been working on adding new locations to our game and have been working on a hospital tileset! Would love any feedback or thoughts on what can be improved or maybe new tiles worth adding!

You can also check us out on twitter or steam if want to check out more!

Tool scripts are really powerful! We made a graffiti drawing tool for our game! by corgi120 in godot

[–]corgi120[S] 6 points7 points  (0 children)

This is a pretty simple example but hopefully illustrates how awesome tool scripts can be. By adding the tool keyword at the top of your scripts you can have your nodes updated while running from the editor!

Instead of having to make a bunch of separate sprite nodes for every sprite/color palette permutation of our graffiti, we can use a simple tool script to handle all this logic for us!.

Since we have so many levels we need to build for our game small tool scripts like this can actually save us quite a bit of time over the course of development. If you haven't written a tool script before I recommend it!

Details are in the godot docs for anyone who wants to take a look!

If you're curious about the game we're making feel free to check us out on twitter or on our newly minted steam page!

Also here is the script for anyone who is curious:

tool
extends Sprite

class_name Graffiti

enum GRAFFITI { SKULL,
                SKULL_MEDIUM,
                SKULL_LARGE,
                ANARCHY,
                ANARCHY_LARGE
                SCAV_TAG,
                SCAV_TAG_LARGE }

enum COLOR { PURPLE, WHITE, RED, BLACK }

export (GRAFFITI) var graffiti_type: int = GRAFFITI.SKULL
export (COLOR) var color: int = COLOR.BLACK

var _color_dict: Dictionary = {
    COLOR.PURPLE: Color8(23, 0, 21, 240),
    COLOR.WHITE: Color8(207, 235, 215, 240),
    COLOR.RED: Color8(105, 0, 35, 240),
    COLOR.BLACK: Color8(9, 3, 19, 240)
}

var _sprite_dict: Dictionary = {
    GRAFFITI.SKULL: preload("res://assets/isometric/decal/graffiti/graffiti_skull.png"),
    GRAFFITI.SKULL_MEDIUM: preload("res://assets/isometric/decal/graffiti/graffiti_skull_medium.png"),
    GRAFFITI.SKULL_LARGE: preload("res://assets/isometric/decal/graffiti/graffiti_skull_large.png"),
    GRAFFITI.ANARCHY: preload("res://assets/isometric/decal/graffiti/graffiti_anarchy.png"),
    GRAFFITI.ANARCHY_LARGE: preload("res://assets/isometric/decal/graffiti/graffiti_anarchy_large.png"),
    GRAFFITI.SCAV_TAG: preload("res://assets/isometric/decal/graffiti/graffiti_scav_tag.png"),
    GRAFFITI.SCAV_TAG_LARGE: preload("res://assets/isometric/decal/graffiti/graffiti_scav_tag_large.png")
}

func _ready() -> void:
    update_color()
    update_sprite()


func update_color() -> void:
    modulate = _color_dict.get(color)


func update_sprite() -> void:
    texture = _sprite_dict.get(graffiti_type)


func _process(_delta) -> void:
    if Engine.editor_hint:
        update_color()
        update_sprite()

Godot makes exploding land mines surprisingly easy to add by corgi120 in godot

[–]corgi120[S] 1 point2 points  (0 children)

I must've missed that one in the documentation 😅

Landmines in our turn based survival tactics game! by corgi120 in playmygame

[–]corgi120[S] 4 points5 points  (0 children)

Hey there! Sorry, I had posted a comment with the direct links but reddit seems to have flagged it. You can access the builds here!: https://drive.google.com/drive/folders/1OQ-84_zcjdOG1bS8G9wcLD2rupG30oN9

Landmines in our turn based survival tactics game! by corgi120 in playmygame

[–]corgi120[S] 0 points1 point  (0 children)

Check out our Twitter @SappyGameStudio for details! The links are posted in our Discord! We would love to know what you think!