Devlog 24.41


It has been about 3 weeks since my last post.

Code Maintenance: I started maintenance on the user interface components (screens, layers, inputs, asset management, render pipeline) around October 4th, and I have nearly completed the refactor as of writing. I cut a couple dozen extraneous objects, merged a few together, and overall improved readability & maintainability.

IIRC this is probably the 3rd or 4th refactor of the UI since I started November 2022. *shrug* We learn as we go.

Performance Improvements: I modified Star System data loading to use an asynchronous process, dramatically improving an already-absurdly-fast process. I suppose I could make further improvements if I streamed the data, but I think this will do me for the next year, at least.

I identified some rendering processes that could be batched, which led to an order-of-magnitude improvement in performance: instead of rendering an entire sector (650~ star systems) at 90 FPS, it sits around 900 FPS, which is just... stupid. It's a lot. It's like, "theoretical" FPS. I would kind of like to know what is causing the drop from 2700 (maximum) to 900, but I think 900 FPS is pretty good.

Memory usage is also down from like, 12 MB to about 8 MB. I think this is an improvement. I forget if previous benchmarks were 9 or 12 MB. Anyway, I updated some things and fixed some stuff. Cut some chaff. That sort of thing.

Gamepad updates: I finished refactoring gamepad integration... I can now easily map inputs on a per-scene basis and even designate like, individual inputs for small or one-off UI components. It's probably overkill, but I apparently don't settle for less. I don't know, you tell me.

Interface updates: I mentioned interface updates last time, and they're all complete. There is a new quality-of-life feature that enables the player to alternate between a zoomed-out perspective of the entire Sector versus focusing on individual Subsectors & cycling through them.

I've isolated most of the input features into modular functions so I can move them around, make on-the-spot adjustments, and reuse them to my heart's content. Creating new ones is pretty easy, too. I'm just so happy with how clean & easy it is to read and work with now,

Next Steps: We're almost to the two-year mark and I've started implementing a handful of the core mechanics like travel, timekeeping, and trading. Once the bones of these are done, we'll have a gameplay loop and I can provide the "Alpha" release. The game will move into Beta and I'll begin refining the mechanics I've added now that I've dealt with like... most of the work of getting the UI and backend complete.

Another feature of Beta will of course be adding in the Factions, the Cultures, and a whole bunch of other stuff that I've been designing over the last two years while I was developing the engine.

Let me tell you, it's really hard to work on an engine when what you want to be doing is designing scenarios and characters and world-building and stuff. I mean, it's so hard I had to stop writing the "design" segments and focus on technical stuff because I was getting depressed about "progress."

Another "next step" that I've been putting off has been persistence... you know, "saving and loading." I have implemented this a bunch of times before and I have had an opportunity to refine my approach over multiple iterations. But, you know. I gotta do it again.

That will mean a lot more once I've handled some of the other stuff above, like travel, timekeeping, and trading. Ultimately, the stuff that gets "saved" will depend a great deal on what the player can do, and what is worth persisting.

Leave a comment

Log in with itch.io to leave a comment.