Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

GaranLorn

9
Posts
3
Topics
1
Followers
A member registered 1 day ago · View creator page →

Creator of

Recent community posts

v0.1.9 — Crash Fix

If you hit a silent freeze or crash between years 18–24, this update is for you.

What was happening

The event log panel used a RichTextLabel with fit_content = true. That sounds innocuous, but it meant every character the typewriter animation drew triggered update_minimum_size(), which cascaded up through the entire UI tree — scroll container, events panel, main layout, all five tab panels, 200+ nodes. At 60 FPS in watch mode, that's roughly 30 full-tree layout recalculations per year. Over a 20-year run, the engine's internal message queue filled up and died with Container::_sort_children — Message queue out of memory.

A secondary culprit: the drift threshold glitch effect was calling add_theme_stylebox_override() with varying content margins, which kicked off the same cascade 8 more times per threshold event.

What was fixed

  • fit_content = false on the event log label. Text changes now call queue_redraw() — a cheap repaint with no layout impact. The label fills its container via size flags instead.
  • Glitch effect rewritten to use modulate tinting only. No style overrides, no margin changes, no cascade.
  • Choice button removal is now properly deferred. The previous free() call was causing signal-emission crashes during decision handling.
  • Message queue ceiling raised to 256MB as a secondary safety net.

Minor layout change

The decision choices panel now sits below the event log rather than scrolling inside it. Choices are always visible without scrolling — which is an improvement regardless.

Thanks to Efflixi and waterSticksToMyBalls for the reports.

Crash log:


handle_crash: Program crashed with signal 11 Engine version: Godot Engine v4.6.1.stable.official Still crashing year 18

Summary

The game freezes (indefinite hang, not a hard crash) when pressing Advance Year somewhere between years 18 and 20. The window remains open but becomes unresponsive. This is distinct from the CPU-spike issue addressed in 0.1.7, which was a gradual slowdown over a longer run — this one is sudden and reproducible at a consistent point in the timeline.

Steps to reproduce

  1. Start a new game (or load a save — see notes below)
  2. Advance through years normally
  3. At approximately year 18–20, press Advance Year
  4. Game hangs — no further output, window does not close

Expected behaviour

Year advances normally; event for that year is processed and displayed.

Actual behaviour

Game freezes. Based on the output captured during the session, the freeze appears to be an infinite loop rather than a crash, which is why the window stays open.

(1 edit)

What: Users reporting freeze in game with spiked CPU still occurring between Year 18-22. Confirmed myself on Mint machine 4x.

Root Cause: Most likely something with the colonist system. Checking current loop errors.


Fix: Check certain event scripts designed before more dynamic scripting.


Estimate: 3-4 hours.

Update: Done and pushed in 1.6. See release notes.

Spike: Gamepad Input Feasibility for Dead Reckoning

Goal: Confirm that Godot 4's input system can support controller navigation for a menu-driven terminal UI, and identify any rough edges before we commit to it.

Questions to answer:

  1. Can InputEventJoypadButton / InputMap actions coexist cleanly with the existing keyboard bindings, or do they conflict?
  2. Does Godot's built-in Control focus system (d-pad → ui_up/down/left/right) work well enough for navigating our terminal screens, or do we need custom focus logic?
  3. How reliable is hot-plug detection (Input.joy_connection_changed)? Does it behave on Windows, Mac, and Linux without extra configuration?
  4. Does Input.start_joy_vibration work on common controllers (Xbox, DualSense) without a plugin?
  5. Can we detect "last input device used" reliably enough to swap keyboard vs. gamepad prompt glyphs at runtime?

Definition of done: A throwaway scene with two focusable buttons and a label. Plugging in a controller navigates between them, A confirms, B cancels, prompts update to show gamepad glyphs, and a short rumble fires on confirm. Hot-plugging during the scene doesn't crash or freeze.

Time-box: 2 hours.

I'm new to this, so I've just installed Butler for better bumping and changelog information. Thanks again for this community's patience while I work out the kinks for playtesting. Once again, any feedback is useful.

And it should be fixed! Version numbers didn't change but it should now be fully playable. Tear it apart. Enjoy!

Signal 11 bug...crashing as soon as the tutorial is done. I'm on it....for anyone out there :D