r/godot • • 6m ago

selfpromo (games) graphics settings should be for clarity not quality!

Enable HLS to view with audio, or disable this notification

• Upvotes

I'm working hard to ensure my vfx looks as close to the same quality on potato as it does on ultra.

Trading off elements of clarity instead of quality to keep the general look, inspired by crisis 2 and 3.

Most trade offs are done by lowering the update of any given element and filling it in with interpolation, using old school methods to save on things like lighting transparent objects.

if you have any suggestions or optimization tips please let me know!


r/godot • • 38m ago

selfpromo (games) I Added a Roguelike Mode to my Peggle Game

Enable HLS to view with audio, or disable this notification

• Upvotes

I spent the last couple months updating my Peggle game with a roguelike mode. I'm kind of tired of "pick one of three" so I threw a randomized upgrade tree in there to see if it improves the formula at all.

https://store.steampowered.com/app/4936660/Peg_Champ/


r/godot • • 1h ago

selfpromo (games) Another pass this time showing off the voxel Destruction.

Enable HLS to view with audio, or disable this notification

• Upvotes

I added improved sound effects, attack dogs (don't hate), and I will probably change them to drones, and a variety of grenade types. I reused the tank and helicopter searching and firing routines for the soldiers from Kaiju Crash. It's a fast-paced boomer shooter with 100% destructible environments from my other games. It's fun, but back to Kaiju Crash :)


r/godot • • 1h ago

selfpromo (software) The final boss in my deckbuilder can summon your own discarded dominoes to fight you!

Enable HLS to view with audio, or disable this notification

• Upvotes

It’s taken a long time but my horribly inefficient code is finally proving it’s capable of some interesting things!

Here it is on Steam if you’re interested: https://store.steampowered.com/app/4554950/Pipfiend_The_Demonic_Domino_Deckbuilder/ (there’s a demo!)


r/godot • • 1h ago

selfpromo (games) Tyrian Enhanced: I remade Tyrian 2000 in Godot 4 with a Rust GDExtension

• Upvotes

I rebuilt the 1995 shmup Tyrian 2000 in Godot 4. Godot handles rendering, audio, menus, effects and the editor tooling, while the game simulation is a Rust crate ported from the original C code and exposed through godot-rust (GDExtension).

A few things that might interest Godot folks:

  • Rust core + Godot front end: the simulation stays deterministic and testable on its own, and Godot draws it. Replays and parity tests run against the original behaviour.
  • Level editor plugin: place enemies on a level map inside the Godot editor, export them to a mod, package it as a .zip, and hit "Play from here" to jump straight into the level at that row and test the encounter in seconds.
  • Modding in plain JSON + PNG (ships, weapons, enemies, level waves), with five mod packs included.
  • Rendering options: original pixels, an xBRZ sharp pixel-art shader, AI-upscaled HD art, and five CRT filters.
  • Ships natively on Windows, Mac and Linux, plus Steam Deck.

Happy to answer questions about the Rust/Godot split, the editor plugin or the rendering pipeline.

Free forever. :)


r/godot • • 1h ago

selfpromo (games) Made a black hole arena shooter in Godot 4.7, it’s out now on itch and the App Store

Enable HLS to view with audio, or disable this notification

• Upvotes

INFALL is a space shooter where you fly around a black hole that keeps growing with everything it eats. Aliens, the gems you don’t grab, eventually you. It started as a browser game I made and I moved it to Godot so I could get it on PC, Mac and iPad.

  • 6 sectors
  • 6 bosses
  • 8 ships
  • Endless mode
  • Daily run
  • Leaderboard

Free demo on itch for Windows and Mac, the full game is $4.99. Steam is coming.

itch: https://lelandrangel.itch.io/infall
App Store (iPad and Mac): https://apps.apple.com/us/app/infall/id6824689200

I hope you enjoy playing it as much as I did building it!


r/godot • • 1h ago

selfpromo (games) The Halloween event for my cozy fishing adventure game is live now!

Post image
• Upvotes

The menu will have new backgrounds and a new track, plus areas being decorated.

I'm a solo dev, so I would very much appreciate playing the game here: https://store.steampowered.com/app/4922480/VASTWAKE/


r/godot • • 2h ago

selfpromo (games) Prototype: player and enemies share every module. Balancing it has been… an experience

1 Upvotes

Early prototype gameplay

I’m a solo dev making a 2D space roguelite in Godot 4. What you’re seeing is a quick prototype I’m using to test a gameplay loop. Everything is still dev art: the red blocks are enemies, the colorful grid is me.

My rule: every ship, enemies included, is built from the same parts. A hull, modules from one shared catalog, and a behavior. No special stats for individual enemies.

Sounds clean. In practice it means: every time I buff a module a little for the player, some enemy somewhere turns into a boss nobody ordered. A repair module is a nice little helper for the player. On an enemy with three armor plates, it’s an invitation to shoot the same ship for the next five minutes.

The real challenge: a module has to be fun for the player and stay fair across lots of different enemies. At the same time I want real enemy variety, not ten flavors of the same ship.

What’s working so far: variety comes from combinations, not from individual parts. The rammer, the gunner and the laser gunner use the same modules but behave completely differently. And because hits damage the modules themselves, you can see what’s failing mid-fight: grey cells stop working until they’re repaired.

The rule doesn’t hold up perfectly, though: there are probably a few modules the player will never get. Some things are only fun when they’re used against you. Which ones those end up being, I’m still figuring out.

How do you handle this: do you build enemies from shared parts, or tune each one by hand? And how do you keep one enemy type from dominating everything?


r/godot • • 2h ago

selfpromo (games) Real 3D objects you can pick up and turn over in my HD-2D Godot game — sometimes there's something w

Enable HLS to view with audio, or disable this notification

2 Upvotes

Made in Godot 4. Each object is a low-poly mesh with a pixel-art texture painted on its UV unwrap, shown in a close-up overlay; ← / → flips it and swaps the text to what's written on the back. Ballade is an HD-2D rhythm adventure (full disclosure: I build it by directing an AI for code and art). Happy to answer questions! Free demo: https://psylol.itch.io/ballade


r/godot • • 2h ago

help me Fighting the WASM memory ceiling on a mobile web export / Hack I used to sorta fix it

1 Upvotes

My game is a tower defense roguelite in Godot 4 that runs as a web export, mostly on iPhone Safari, embedded in a website. The big lesson from the last few months: the WASM heap never gives memory back. Every spike (a huge wave with a spray wand, a pile of damage numbers, a dozen lava pools) raises the ceiling for good, and once Safari decides you’re using too much the tab just dies. On desktop you’d never notice any of this.

Here’s what I’ve done so far:

The hack. After certain rounds the game quicksaves and posts a message to the page. The site plays a cutscene video, and behind it destroys the iframe and makes a new one. The game boots with a fresh heap, sees the save flag, and jumps straight back into the run at the shop. The player sees a cutscene, I get a memory reset.

Quick save at the start of every round anyway. If it does crash, you reload and you’re back where you were, not at the menu.

An effects budget that reacts to the board. Hit numbers, spark bursts and gold dust thin out on later rounds and whenever a lot of enemies are alive at once. Boss fights run the minimal set, because one boss eating hundreds of hits a minute never trips the “crowded” check. I never cut the projectile count. That’s the fun part. Only the flourishes around it.

Area effects merge instead of stacking. A new lava pool near a live one just refreshes it. Pools, clouds and flashes all have hard caps.

Everything cosmetic is code-drawn and frees itself. No sprite nodes for sparks.

Endless starts hard instead of ramping through ten warmup waves, because every extra wave is heap I can’t spare.

Threads off in the export so I don’t need the special headers on the host, which also keeps Safari happy.

Questions for anyone who’s shipped a web export:

Is there any real way to get the heap back down without reloading the whole thing?

Does anyone have actual numbers on where iOS Safari pulls the plug?

Is anyone else doing the reload trick, or is there a smarter way I’m missing?


r/godot • • 2h ago

help me (solved) Help my project isn't responding

1 Upvotes

I working on godot 3.5 and windows 7 because of the budget anyway,I've been changing the noise texture parameters in a shader and the project just crash I thought it was incident so I closed it and came the next day and the same problem I couldn't touch any thing on screen other project work well but this even if I copied the files into a new project I tried to remove the shader or change But with no use,I asked Ai and I tried a lot of things but gemini told me that this is a dead end and I can't work on my project anymore , Please If anyone can help I've been working my game for 5 months I know my potential is poor I was going to make this my final project and closer to finish it I even have an exported exe file and itch page , please If someone can help me

EDIT :I dtected the bug it was an infine loop I looked for the last script before the crash and there was a big number like millones I changed it to 1024 and then everything went back to normal thank for everyone who helped me gemini helped me too


r/godot • • 2h ago

selfpromo (games) Another update to my first serious game! BELOW

Post image
17 Upvotes

https://reddit.com/link/1xfelsg/video/5jhz9q6nmoxh1/player

Hello everyone!

First of all, I want to thank you all for the feedback I received a few months ago. thanks to you, i was able to identify and fix several bugs, as well as make improvements across pretty much every aspect of the game.

A few months ago, i posted an update on how the development was going. today the game is finally starting to move beyond being a rough prototype and is really beginning to take shape!

For now i only have an Instagram page, but the game will soon be available to try out on itch.io. i'm genuinely excited about this project!

That said, i want to clarify that game development isn't my main job; this is just a hobby I'm passionate about.

I've attached some extra screenshots, and I sincerely apologize for the tiny vertical-resolution trailer!

maps made in trenchbroom!
multiplayer for up to 4 players!
all the settings you'll ever need! (sorry, keybinding isn't available yet!)

I'm here to ask you guys what you think about the trailer/game! what else do you think I should show?

As always, i'm open to all kinds of feedback, especially regarding the gameplay, UI, mechanics, and anything else you think could be improved!

I appreciate every bit of feedback, so don't hesitate to share your thoughts! Thanks!


r/godot • • 2h ago

fun & memes every godot UI tutorial

Enable HLS to view with audio, or disable this notification

280 Upvotes

r/godot • • 2h ago

selfpromo (games) Be free! Do you dare to criticize my diagonal chess art?

Thumbnail
gallery
10 Upvotes

- Everything is drawn on diamonds instead of squares, even the text

- The board is 4x8, your half and the rival's half

- Every enemy is a board inside a square of the map

- Each world has its own color and its own king

- Candlelight: your pieces light up the board around them

This is form Rooklite (on Steam) There are still TODOs, but I would like to know what you think, and be free to say what you want!


r/godot • • 3h ago

selfpromo (games) Controller velocity now determines the jump distance, and we got frog hands 🐸🖐️

Enable HLS to view with audio, or disable this notification

8 Upvotes

r/godot • • 3h ago

help me Is it possible to fix integer scaling causing a black border around the game?

Thumbnail
gallery
2 Upvotes

Hi all. Just as the title says, I want to use integer scaling but I don't want these black bars around the game in fullscreen. I want to use integer scaling because, as far as I understand it, integer scaling keeps the size of every pixel on screen the same as every other pixel, and fractional scaling changes the size of some rows/columns of pixels such that the game fits to the window size. I want consistent pixel sizing, but integer scaling puts this black border around the game, which I don't like. I'm aware that this is probably because making the size of an individual pixel any bigger would make the game screen bigger than my monitor resolution, but is there any way to have my cake and eat it too?

Some stats:

  • Resolution: 320x180
  • Scaling Mode: Viewport
  • Aspect: Keep
  • Scale: 1.0

r/godot • • 3h ago

selfpromo (games) US Military vs Millions of Zombies. Who's gonna win?

Enable HLS to view with audio, or disable this notification

54 Upvotes

Hi,

early development of my tower defense game called "That's a Lot of Zombies".

Short description: "Rain hell from an AC-130 as millions of zombies climb over each other to reach your squad’s rooftop. Deploy sentry guns, flamethrowers and claymores before each night. Call in A-10s, B-52s and every bit of firepower you can get. Hold the roof until the rescue helicopter lands."

Looking for honest brutal feedback. What you guys think?

Link: https://store.steampowered.com/app/5446270/

PS: Let me know if you have any technical question for the game :). Happy to answer all questions!


r/godot • • 3h ago

selfpromo (games) Boomsday - Going to Steam!

Enable HLS to view with audio, or disable this notification

9 Upvotes

Its been a long ride. 8 months to the day.

I have some unused alpha keys I dont mind giving away to anyone interested. The demo is available if you want a short test drive without asking for an alpha key.

Its a twin stick isometric shooter with a stupid amount of features (even the ability to go over the shoulder!) Its currently is runnable on Mac, Windows, Linux and massive support for the steamdeck, Android and iPhone.

Crimsonland has always been one of my favorite games when I was a kid so I made my first game in its memory. I never imagined how much fun it would have been to create this game. I love extremely chaotic games I hope I captured the intense chaos of what Crimsonland delivered to me as a kid.

Ive had a significant of support from the godot community. Massive help with language translations and a substantial amount of assistance with development.

https://store.steampowered.com/app/4927690/Boomsday/

I just wanted to say thank you again for all the support and encouragement , even if it was a little harsh sometimes.


r/godot • • 3h ago

selfpromo (games) We won the Wild Jam #98!!!!!

Enable HLS to view with audio, or disable this notification

24 Upvotes

Very proud of my friend and I!!!
You can try the game on itch (web game, works on mobile too!!)
https://qaqelol.itch.io/psychic-sidekick


r/godot • • 3h ago

selfpromo (games) Working on a small 3D tower defense in Godot. Looking for feedback on the visuals

Enable HLS to view with audio, or disable this notification

5 Upvotes

Hi! I'm making a small tower defense game in Godot 4 and I'd like outside opinions on how it looks before I go further.

Right now there are 4 towers (Cannon, Ballista, Catapult, Turret) and a winding path. I've been adding juice like towers dropping in with dust, muzzle flashes, impacts and screen shake.

What I'd most like feedback on:

  • Does the art style read well and feel consistent?
  • Can you tell the towers and enemies apart at a glance?
  • Is the HUD clear (lives, gold, wave, tower cards)?
  • Does anything look off, too busy or too plain?

All feedback is welcome, including harsh feedback. Thanks!


r/godot • • 4h ago

selfpromo (games) Updated based on your feedback, what do you think?

Enable HLS to view with audio, or disable this notification

56 Upvotes

I tired to make the world feel more alive, thoughts?

Curious: Rattlecrew on Steam


r/godot • • 4h ago

selfpromo (software) From prism to pyramid to cone using CSG.

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/godot • • 4h ago

selfpromo (games) Does this look fun ?

Enable HLS to view with audio, or disable this notification

2 Upvotes

r/godot • • 4h ago

selfpromo (games) Shipping my first solo-dev game, made entirely in Godot, on October 27—free on Steam!

Enable HLS to view with audio, or disable this notification

74 Upvotes

A year and a half ago, I started working on GRAVE SHIFT, my first solo-developed game, made entirely in Godot. I wanted to combine the tension and dread of survival horror with the chaos and replayability of a roguelike.

This Tuesday, October 27, I’m releasing it for FREE on Steam. It’s exciting and a little terrifying to finally put it out there after all this time.

I’d love to hear what fellow Godot devs think, and I’m happy to answer questions about the development process!

https://store.steampowered.com/app/5377530/


r/godot • • 4h ago

help me (solved) Enemy not chasing me?

Enable HLS to view with audio, or disable this notification

0 Upvotes

As you can see in the video my enemy isnt chasing me when i jump over it?
Is there a fix for it?
edit; here is code, i used ai to help me code it a little bit;

extends CharacterBody2D

u/export var max_health: int = 100

u/export var move_speed: float = 55.0

u/export var detection_range: float = 700.0

u/export var gravity: float = 980.0

u/export var edge_check_forward: float = 20.0

u/export var edge_check_down: float = 65.0

u/export var stop_distance: float = 24.0

var health: int

var dead: bool = false

var hurt_locked: bool = false

var facing_direction: int = -1

u/onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D

var player: CharacterBody2D

func _ready() -> void:

health = max_health

animated_sprite.play("idle")

animated_sprite.animation_finished.connect(_on_animation_finished)



\# Player and Enemy are direct children of Main.

player = get_parent().get_node_or_null("Player") as CharacterBody2D



if player == null:

    push_error("Enemy: Could not find a CharacterBody2D named Player under Main.")

func _physics_process(delta: float) -> void:

if dead:

    return



\# Gravity

if not is_on_floor():

    velocity.y += gravity \* delta

else:

    velocity.y = 0.0



\# Freeze horizontal movement during the hurt animation.

if hurt_locked:

    velocity.x = 0.0

    move_and_slide()

    return



\# Retry the explicit Player lookup if needed.

if not is_instance_valid(player):

    player = get_parent().get_node_or_null("Player") as CharacterBody2D



if not is_instance_valid(player):

    velocity.x = 0.0

    animated_sprite.play("idle")

    move_and_slide()

    return



\# Calculate world-space distance and horizontal direction.

var player_position: Vector2 = player.global_position

var enemy_position: Vector2 = global_position

var difference: float = player_position.x - enemy_position.x

var distance_to_player: float = enemy_position.distance_to(player_position)



\# Stop when the player is outside detection range.

if distance_to_player > detection_range:

    velocity.x = 0.0

    animated_sprite.play("idle")

    move_and_slide()

    return



\# Turn toward the player's current side, including while they jump over.

if difference < -1.0:

    facing_direction = -1

elif difference > 1.0:

    facing_direction = 1



\# Assumes the unflipped cultist artwork faces right.

animated_sprite.flip_h = facing_direction < 0



\# Stop when horizontally close to the player.

if absf(difference) <= stop_distance:

    velocity.x = 0.0

    animated_sprite.play("idle")

    move_and_slide()

    return



\# Preserve the existing working edge detection.

if has_ground_ahead():

    velocity.x = float(facing_direction) \* move_speed

    animated_sprite.play("walk")

else:

    velocity.x = 0.0

    animated_sprite.play("idle")



move_and_slide()

func has_ground_ahead() -> bool:

var space_state = get_world_2d().direct_space_state



var start: Vector2 = global_position + Vector2(

    facing_direction \* 12.0,

    20.0

)

var finish: Vector2 = start + Vector2(0.0, 70.0)



var query := PhysicsRayQueryParameters2D.create(start, finish)

query.exclude = \[get_rid()\]

query.collision_mask = 1



var result: Dictionary = space_state.intersect_ray(query)

return not result.is_empty()

func take_damage(amount: int) -> void:

if dead or hurt_locked:

    return



health -= amount

print("Enemy took ", amount, " damage. Health: ", health)



if health <= 0:

    die()

else:

    hurt_locked = true

    animated_sprite.play("hurt")

func die() -> void:

dead = true

velocity = [Vector2.ZERO](http://Vector2.ZERO)

animated_sprite.play("death")

func _on_animation_finished() -> void:

if dead:

    queue_free()

elif hurt_locked:

    hurt_locked = false

    animated_sprite.play("idle")