Weekly Update #48

AI
  • Enemies are now positioned towards player within available slots to avoid clutter around him
UI
  • Implemented IncomingDamageComponent into enemies healthbars
Internal
  • Localization support added. The game is now prepared for translation into multiple languages. Some proof-of-concept translations have been implemented in both the UI and code.

Developer’s Note:

It’s about time! Localization is finally in – late, maybe, but not too late. The infrastructure is now in place, and I’ve seeded a few early translations to prove it works. From now on, I’ll be using the „Scout’s Method”: whenever I work on a feature, I’ll hunt down any unlocalized strings and get them into the system. This way, localization will grow organically with development instead of being a monstrous task later.

That said, I’m fully aware that some areas will be a pain – abilities and mastery descriptions, I’m glaring at you. But I’d much rather tackle localization now, when only 27 talents are implemented (many without masteries), than wait until I’ve finished all ~90 planned talents. That number is still moving, and it’s definitely creeping upward.

  • WorldState is now built with a singleton pattern
  • Status VFX are now created via pooling, beside optimization this fixes several errors for objects destroyed too fast
  • Damage objects are now pooled to reduce GC spikes
  • Damage objects now support „Contributing Sources”

Developer’s Note:

Previously, most talents did not deal damage directly but instead applied effects through proxies (e.g., buffs, debuffs, or secondary effects). This made it difficult to understand the real source of damage. For example, analytics might suggest that „Call Lightning” is overpowered, but its effectiveness was actually amplified by other factors like „Conduit” or „Overload.”

To improve visibility, damage events now include a list of contributing sources. This allows better analysis of what truly caused the damage.

Note: This system does not yet fully resolve cases where talents indirectly increase damage, such as „Relentless,” which boosts critical strike chance over time. These indirect effects are still harder to trace accurately in damage metrics.