Magic Sword

Magic Sword Alpha.31 - Minor Memory Fix Patch

Version
Alpha.31 - Minor Memory Fix Patch
Version Date
Aug. 22, 2025
Links

Patch Notes

Alpha.31 - Minor Memory Fix Patch

Hi everyone,

It’s been a while since the last patch, and I wanted to take a moment to share where things stand and where I’m hoping to go next.

Over the past few weeks, I’ve spent a lot of time trying to optimize the backend, especially around memory usage. After many tests and investigations, here’s what I’ve found:

1. Backend limitations – I originally built the game in Python using Kivy, which is not really designed for game development at scale.
2. Memory issues – Text in Kivy is rendered as images, which eats up memory. Even worse, widgets often don’t clean up properly unless manually killed.
3. Animations – These add a lot of silent memory strain, especially when loops are involved.
4. Hard limits – Realistically, fixing this deeply would require months of rewriting core systems.

That said, I’ve made a couple of improvements:

- Widgets now clean up a bit more often (a small 2–5% reduction in RAM).
- You can now toggle the Seasons overlay animation off before starting the game, which gives another ~3% reduction.

These fixes are admittedly modest, and I’m sorry I couldn’t bring bigger improvements here.

Over the past year, I’ve also run into some other challenges with Python/Kivy:

1. Sound paths – If your computer used Mandarin paths, some sound files wouldn’t load.
2. Frame timing – Sometimes fast machines outpaced the loading frames, causing crashes (rare but frustrating).
3. Image quality – Rendering, especially when shrinking assets, often didn’t look as sharp as I wanted.

So why am I sharing all of this?

Because I’ve been thinking a lot about the future of this project. I love what we’ve built together, but I want to push the game further than this engine realistically allows. Which is why I’m leaning toward ending active support for this version (keeping it free), and instead focusing on building a Version 2.

Here are a few ideas I’m considering for Version 2:

1. A new backend – Built in Godot, a proper game engine.
2. Real-time gameplay – Instead of rounds, time flows in 60-second “days” (possibly with day/night cycles).
3. WASD movement – Think classic 2D Pokémon style movement, exploring and traveling across the map.
4. Map interaction – Roads, resources, and city travel would feel more like exploration rather than clicking tiles.
5. Combat – Still debating between turn-based and real-time. In a real-time system, enemies could pop up and fights would use keyboard/mouse inputs with varied moves and styles.

The core objectives and aptitudes (Combat, Knowledge, Capital, Reputation, Fellowships, Titles) would remain, along with the same world, cities, and characters. But the feel of the game would be very different—more immersive, more fluid, and hopefully more fun.

To be clear: I haven’t started building this new version yet. Before I do, I really want to hear your thoughts. Does this sound exciting to you? Would you prefer I keep working on the current version, or should I take what I’ve learned and rebuild from scratch in a way that better supports everything I’ve always wanted to add (like NPCs and global servers)?

It’s a lot to take in, I know. But I wanted to be upfront about where my head’s at and where this journey might go next.

As always, thank you so much for playing, supporting, and sharing your feedback. This community means a lot to me, and your input will help shape where the game goes from here.