There is something to show, but that can wait. Today we'll talk about the complicated parts. First, preparations for the season have begun and I can devote less time to coding now. Nevertheless, something that was only a distant plan, and refused to work even in earlier iterations, has finally succeeded.
I managed to create a flat, hexagonal map made of hexes. Every hex is accounted for and can be changed in many ways: texture, height, and essentially any rules and variables. This is the foundation for the colony map and, in effect, for the terrain map inside a planetary hex.
For the enthusiasts: all the hexes use cube coordinates, making it possible to calculate vectors and other useful things such as pathfinding and navigating around obstacles. That's needed for units to move properly across the map: troops, reconnaissance groups, explorers, major roads, and power grids. Yes, it is that serious, if you didn't already know.
Next: the entire project has been moved to a source build and now also works with modules written in C++. It took three days of suffering, but it works. Why?
In C++, you can write absolutely anything. With nodes, you can use only what the developers and plugin makers have provided. Sometimes that isn't enough, sometimes it's awkward, sometimes it's expensive, and sometimes it simply doesn't exist. In other words, you have to make it yourself. C++ code also runs five to seven times faster than nodes.
I'm now building C++ generation of a planet from hexes. It moves, but not all the hexes are in place yet. In short, the algorithm needs more work and debugging.
Most importantly, C++ will let me write my own modules for communication, encryption, and packet compression. I have working examples. These modules matter with large data volumes. For now, we work without encryption and send JSON strings, which isn't efficient, though it works. Encryption through Blueprints seems impossible altogether. The communication module, supplied by a plugin, is firmly stuck on an earlier engine version, and nobody knows whether it will be upgraded. It has been on 5.4 for half a year while the engine is already at 5.5. I can't upgrade because communication would fail: the plugin won't work with a different version...
In short, it isn't boring and it's very interesting, though occasionally accompanied by swearing.
Oh, and a self-compiled engine lets us build a dedicated server application. We'll need that badly once we reach ship combat. The client exists; I made it last year. We don't yet have the proper server, but now we can build one.
That's the news.
