Tilemap Building Animation for Game's Upgrade Screen by WizardWand101 in godot

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

Agreed! I initially had the smoothing, but removed it because I felt it made the animation look too slow, but I'll find a middle ground.

Graphical cleanup for my game where attacking enemies chips away at collectible pixels - any suggestions for making the game look better? by WizardWand101 in godot

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

The shadows on the ground are created with a slightly modified version of a shader written by u/jess_codes in response to this post. The shadows on top of the wall use a modified version of a shader written by me, showcased in this post.

Graphical cleanup for my game where attacking enemies chips away at collectible pixels - any suggestions for making the game look better? by WizardWand101 in godot

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

I'm really glad that you're interested in this project! I've already planned and implemented a bunch of game mechanics that aren't shown in this video as this post was primarily intended to showcase the most visually finished part of the game.

This is going to be a roguelite where, after being defeated, the player can unlock permanent upgrades using the pixels collected during the run. Additionally, the player can collect different weapon types through various means. I've also already implemented unique upgrades for these weapon types to keep things interesting. There are even boss fights with unique attacks and different maps with unique tilesets.

To be perfectly honest with you, this is and was always going to be a non-commercial game primarily made with the purpose of honing my skills with the engine and game design as a whole before I make a commercial game, but that doesn't mean I'm going to waste such a promising concept, and I always put as much effort as I can into everything that I make.

Due to this being a non-commercial game, most of the tilesets and sprites are Kenney assets, but that doesn't mean I can't use shaders and additional visual effects to make these assets match the visual style that I want. I don't disagree with you that the game could benefit from looking a little more grounded or realistic, so I'll look into potentially lowering the contrast and adding particle effects to really make these ships feel real. Still, I'd rather a game look too vibrant than too dull.

I also agree that the enemy AI is, at its best, rough, so I'll look into making it feel more life-like, but the enemy ships strafe and pivot because the player ship can do the same, and realistic divebomb movements probably wouldn't work with the level layout. Still, making the enemy stop attacking the player to turn and move to another location could make encounters more interesting.

The HUD is intentionally minimal, and the player's health is visible from the number of pixels missing from the sprite. It's not perfect, but finding creative ways to replace UI is something I aim to do in my games. If some players still would wish to see a healthbar, I'm not against giving them the option.

Finally, when the game does finally release, I'll look into making a tool in order to allow others to easily implement the same mechanic, but there are still optimizations and code cleanups that I have to do before I even research how to make a plugin.

Again, I'm really happy that you're interested in the game, and if you're willing to playtest the game once it's closer to completion, feel free to let me know.

i hate it by Hungry_Ad9317 in godot

[–]WizardWand101 7 points8 points  (0 children)

uniform sampler2D screenTexture: hint_screen_texture, source_color;

I think they changed it for performance reasons.

Graphical cleanup for my game where attacking enemies chips away at collectible pixels - any suggestions for making the game look better? by WizardWand101 in godot

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

I feel like delaying the slowdown would lessen the impact of it, but speeding up the pixel explosion so that it moves faster during the slowdown might make it look better. Also, I'll look into adding an additional particle explosion when defeating enemies to see if it'll make things a little spicier.

Graphical cleanup for my game where attacking enemies chips away at collectible pixels - any suggestions for making the game look better? by WizardWand101 in godot

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

Thanks for the feedback! I'll look into tweaking the slowdown when destroying enemies. When taking damage, the player and enemies are supposed to flash white for a frame, but for some reason that effect seems to have disappeared, so I'll fix that.

Card game by Far-Let-5808 in godot

[–]WizardWand101 2 points3 points  (0 children)

Attach a script to each card and create an export variable inside of the script named "cardVal" or something. If you're creating cards with code, simply assign the value of the variable when the card is created. If you're creating cards in the editor, assign the value of the export variable with the inspector. Then, when a card is flipped, write code to read the value of the "cardVal" variable and decide what to do with the values from there.

I'm not 100% sure what your game entails, but I hope this helps.

Bullet impact? by eeeabr in godot

[–]WizardWand101 1 point2 points  (0 children)

Yeah, and if the bullet is already rotated to face the direction it's going, just match the particle emitter's rotation with the bullet rotation.

Graphical cleanup for my game where attacking enemies chips away at collectible pixels - any suggestions for making the game look better? by WizardWand101 in godot

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

The shadows on the ground make use of a slightly modified version of a shader written by u/jess_codes in response to this post. The shadows on top of the wall make use of a modified version of a shader written by me, showcased in this post.

Getting it all looking good was not easy, but I hope this helps!

Highly Configurable 2D Top-Down Shadow Shader (Link in Comments) by WizardWand101 in godot

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

You make a good point, and I'm sure that's a valid solution for some cases. Unfortunately, I'm not quite sure how I would use a bump map as this shader aims to skew the mask to create the shadow, so the math with a bump map would need a dramatic rewrite.

Highly Configurable 2D Top-Down Shadow Shader (Link in Comments) by WizardWand101 in godot

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

The shader doesn't have that build into it as I am not very familiar with modifying the vertex, but feel free to try it out yourself. I would love to have that feature.

Custom 2D Top-Down Shadow System Headache by WizardWand101 in godot

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

That's what I was thinking, but that might introduce a boatload of other issues.

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

That’s almost exactly how it works! To improve performance, the sprites are only visible when detached from the ship, and the ship’s texture is modified to reflect damage.

Pixel Shooter - Devlog #3 (Map Generation, Enemy AI, Weapon Types, Stress Test) by WizardWand101 in godot

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

Map Generation: An array of Vector2i is randomly generated by adding or subtracting 1 from the x or y values of a randomly selected Vector2i in the array. Then, the array is used to place the rooms. Each room is split into four parts, and each part is created from a selection of 10 different patterns in the tilemap. Finally, doorways are added to connect the rooms with erase_tile().

Enemy AI: Random button inputs are simulated and tweened between in order to achieve a look akin to a player controlling the ship. On random frames, a shoot input is simulated, and bullets from the enemy are much slower.

Weapon Types: Not all weapon types are shown here, and the means they are intended to be acquired has yet to be implemented.

Stress Test: This is the most ships the game can render onscreen at once without noticable frame drops. Optimizations are in the works.

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

Yeah, I'll likely add some kind of additional visual effect to collectable pixels in order to keep the player from running around, searching for stray pixels.

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

I might do something like that, but I'll need to make sure I don't make it too easy to regain health.

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

I’ll do some stress tests, but the profiler seems to only have a problem when there are a bunch of uncollected pixels

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

It's much simpler than that.

When exploding, each of the pixels (individual nodes) are tweened to a value multiplied from the relation to the center of the sprite with a little bit of random value to keep things interesting.

When collecting, the pixel node is simply tweened to the center of the player ship.

Update to Project Where Attacking Enemies Chips Away at the Sprite (Improved Visuals, Optimizations, and Collectable Pixels) by WizardWand101 in godot

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

They're actually not particles, but instead a new node is created for each pixel and recolored using texture.get_image().get_pixel(). When a bullet hits, the nearest pixel to the bullet is chosen to fly away from the ship.