Unloaded combat lazy solution

    Joined
    Aug 17, 2014
    Messages
    34
    Reaction score
    11
    • Purchased!
    • Legacy Citizen 3
    Soo i heard that unloaded combat is not planned right now, and for me the main reason for it seems to be the complexity of such mechanic.

    As it was mentioned in comments on the last newspost, player-built ships can have complex structure, thus having largely varying efficiency of blocks, which renders various 'score-based' combat power estimates inaccurate.
    This naturally leads us to a conclusion that 'unloaded' and 'loaded' combat types have to be of a similar nature. Direct copying is not an option, since this can lead to significant drops of performance, as the number of 'unloaded' in-combat events does not depend on the number of players anyhow.
    There is, however, an important feature of 'unloaded' combat -- it doesn't have to look pretty. This peculiarity makes it possible to mess with the engine in quite a few ways, but the most interesting are: making time slower, making space discrete, making time discrete. Let me explain those possibilities:
    • Slower time, obviously, means that engine updates certain sector slower, taking breaks to free cpu time for sectors with players (lazy & not very cpu-saving)
    • Discrete space means that ships can occupy only those coordinates that lie on a grid (the grid spacing can vary from 1 block to.. whatever convenient. i imagine it to be 1/2 of a chunk == 16), and, optionally, the rotation of ships (and turrets on ships) is also limited to a grid of values. The ships and turrets will now move by 'warping', and remain stationary most of the time, making it easier to calculate collisions with relatively fast projectiles.
      Note, that this applies to ships/turrets and their blocks, but the projectiles can have any position and direction. (less lazy, saves cpu by making most battles a simple particle experiment with a static target and emitter vs moving target and moving emitter)
    • Discrete time means ship/turret/projectile movements are warps, and the exit point of such warps are calculated using current velocity and "time delta" -- the interval of single time "step". (not lazy at all, but must be able to save cpu, and even more if combined with discrete space)
    These were my thoughts on the subject. Hope the devs take them into consideration.