Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Ship Control

Build your ship. Tweak your ship. · By ThaiCat

Changelog Sticky

A topic by ThaiCat created May 15, 2016 Views: 594 Replies: 32
Viewing posts 1 to 33
Developer (11 edits)


fixed shield synchronization and initial state

default ship is now selected by default

fixed camera follow wrong player object

improved network synchronization

health bars performance increased by (their count-1) times (it's up to 1000 times!)


improved network synchronization

reduced CPU usage by network synchronization of ship objects on clients by 50-60%

physics is now unaffected by network synchronization on clients

collisions for blocks being build on moving objects on remote clients now properly resolved by physics


improved network synchronization (fixed constantly random increasing velocity and angular velocity of ships when out of sync for too long)


improved network synchronization (fixed constantly random increasing velocity and angular velocity of ships when they collide on clients)

fixed inertia tensor synchronization

balanced energy preset is now set by default for all ships


fixed client always trying to join default domain and port no matter the settings

added "stop" button for ships, x by default


added music, sound and particle effects

fixed heath bars still being disabled after turning them off and on again

improved network synchronization


added some new block types

improved collision detection for projectiles, they should not penetrate blocks or shields anymore

minor changes


new weapon type: missile

added description windows for block selection buttons (I did not cared about correct info there yet)


new weapon type: beam

cannons of some types will not shoot if they do not face target

added some placeholders(asteroids, mining beam(very limited, don't expect to see it working), text, limitations)

fixed build menu button count

minor network sync improvement

very minor bug fixing


made interface for inventory system

mining beam now works properly

mining beam can store copies of other ship blocks in inventory, that's a feature

changed creation buttons menu a bit

you can create blocks directly inside inventory (they cannot be used yet) (this is not yet done in terms of multiplayer)

new block: container

each container has its own inventory, but interface for individual containers is not yet done, but if container gets destroyed u will lose it's content (you can see that)


inventory now properly synced

added in-game chat

minor network sync improvement (movement, lag reduction)

ship can now automatically aim and shoot multiple targets around it, you can set this behavior on per ship basis

added damage digits, it will be reworked later


damage text now works for all blocks

returned back sphere shield

returned back asteroids

returned back ship status UI

minor network sync improvement (it is still not good enough)

fixed missile behavior

improved chat UI and behavior


Version 0.25.2016-07-26

improved network synchronization (for movement) (it seems it can not be better with current control scheme and complete server authority)


Version 0.25.2016-10-08

Collision damage no longer applied twice

fixed damage text behavior (correct damage amount, better responsibility)

hidden block components that should not be visible on currently selected block when building

damage that kills block is now visible

added block death explosion

sound and particle effects are now played on block death (collision effects etc.)

collision point calculated far more precisely (for VFX)

added damage text fade effect

fixed error on turret destruction/removal if it has cannons attached

some very minor changes

Web build no longer updated


Version 0.26.2016-11-11

added in-game settings menu (video, audio, controls and game options)

health bars option moved into settings menu

audio volume no longer auto adjusted on gameplay and must be set in settings menu

default unity settings dialog is now hidden by default


Version 0.26.2016-11-20

fixed clicking on another button while waiting for current button input in controls menu

fixed bug with controls always stay default

added option to disallow to assign multiple actions for a single button

reworked main menu

game now remembers last server port and address

added button for external ip detection when starting a host (will not work if my site is down)

fixed error on rejoin/rehost a game after manual disconnection


Version 0.26.2016-11-25

added in-game help panel and option to disable it

asteroids are now stylistically the same as ships

fixed asteroid spawn error on clients (caused multiplayer to be unplayable)

added more asteroid models

Developer (1 edit)

Version 0.26.2016-11-27

fixed bug with controls options do not spawn if there is no game settings file exists, basically every 1st launch was unplayable due to this.

asteroids have collision sounds now

asteroids receive collision damage now

projectiles do hit asteroids too now

Wow! Very good game! I'm excited to see this further develop!


Version 0.27.2016-12-30

fixed bug with game settings path on Linux

asteroid generation now takes almost 2 times less time, meaning less lag at the beginning

asteroids are now invulnerable during world generation

multiple asteroid parameters no longer sent during world generation

world can now be saved and loaded (just asteroids without minerals data yet)


Version 0.28.2017-01-21

reworked network manager

removed lag on world generation on the server completely, reduced lag on client connect

added loading screen

on clients scene loading happens behind a loading screen, on the server both scene loading and world generation happens behind a loading screen.


Version 0.28.2017-01-22

removed interface glitch in the game scene

removed input keycode debug info


Version 0.29.2017-02-15

you can have multiple save files now

fixed save path bug

changed save path on Linux

fixed missing quality presets bug

removed save and load buttons from game scene

game now has autosave feature

ship design can be saved and loaded now (but not yet applied, there is some work with the network to do, to make it possible, I will make it in the next update in about a week)

each loaded ship design has a preview now


Version 0.29.2017-02-21

ship designs can be spawned and applied over network now.

fixed error on loading ship designs, those have turret or cannon type blocks

changed internal ship design file format, previous is not supported any longer (future versions of the game will have compatibility with it)

changed internal world file format, previous is not supported any longer (compatibility with this world format most likely will be broken few more times)

turrets and cannons are no longer separate objects (that was way too unclear for new players how does this work (e.g. place this turret mount there, place turret on it at specific angle, and finally place gun in there), worse performance-wise and harder to develop)

reduced network traffic on block spawn

improved block spawn method (not the same as above or below)

reworked internal ship design (blocks relationships), adding, removing and destruction of blocks should be faster now, idea of sockets on blocks is obsolete, there will be new one.

turrets can no longer be built too close to each other

broken beam cannons


Version 0.29.2017-03-01

fixed and reworked beam cannons, improved beam cannons performance and reduced network traffic consumption by beam cannons by ~2 times as result of merged cannon design

fixed cannons not shooting if they are rotated by more then 30 degrees

removed lag when drawing many ship design preview images

added graphics for block and inventory buttons

updated blocks description and tool-tips

game settings no longer reapplied each time scene changes

new world and ship designs will be given default names if they are empty

world and ship design selection menus UI is now consistent, overall UI is still a mess

broken inventory


Version 0.30.2017-03-05

fixed inventory

simplified inventory (containers no longer have their own inventory that had to be synced saved and loaded on per-container basis, instead only ships have their inventory now, without possibility to access each container's inventory and choose where to store what, it was a nonsense anyway)

inventory UI only updated when inventory changes now

improved UI

minor fixes


Version 0.30.2017-03-06

default player ship consists of multiple blocks now instead of one

fixed beam and mining cannons not being loadable from file

selected ships have square frame attached instead of capsules in the middle

minor fixes

Developer (1 edit)

Version 0.30.2017-03-07

fixed empty block connections data when saving ship design on remote clients (saving ship design now syncs ship design with server)

fixed log file warnings when draw ship design preview buttons on clients (removed some lags)

fixed ship not being controllable after applied new ship design for host/server

minor fixes


Version 0.30.2017-03-08

fixed bug that prevented some block connection calculations on server

fixed ship not being controllable after applied new ship design for remote clients

reduced network traffic at block creation

fixed bug with ship size calculation at game start

fixed bug when ship design was saved by everyone when one of the players saved it

world saving no longer triggered on clients

minor fixes


Version 0.31.2017-04-19 (experimental)

implemented floating world origin (practically unlimited world size)

server no longer has authority over client movement and collision detection (victimized to above)

broken movement controls of ships on clients as result of local authority over movement (because engines is server-side logic now)

changed network sync algorithm (now uses twice as much network traffic)

minor changes in sector saving algorithm

sector savedata is now ignored when world loads, instead only one asteroid is spawned.

autosave will save that, breaking any proper sector data

possibly broken external ip detection and connection over internet.

updated ship size calculation and fixed ship size calculation bug on clients that caused error messages spam in logs

fixed ship status shaking

realigned main camera with calculated ship center by default

ship center is now shown by green capsule

more bugs?


Version 0.31.2017-04-25(experimental 2)

much more reliable client authority calculation on server-side

improved movement sync algorithm (better floating world origin handling, less traffic, more precision)

fixed movement controls of ships on clients

much more responsive controls on clients

improved energy settings calculation, fixed table values and sliders

energy parameters are now calculated on both server and client sides, client only performs simplified calculation for his authority objects

client now calculates ship movement for his authority objects

minor fixes


Version 0.32.2017-05-31(completely experimental)

fixed external ip detection

external ip detection is now performed in separate thread

broken object creation (completely) as result of major networking rework, see more in announcement (soon)


Version 0.33.2017-06-30 (still experimental, 3)

updated network backend

collision detection is now done on clients with authority over colliding object (This way it can be used in cases, in which server can not detect collisions properly. As disadvantage it provides less accurate results in the case when collision happens between objects with different authority.)

projectile hit detection now performed only for objects with corresponding client authority. (same advantages/disadvantages as above, plus significantly reduced server CPU load)

precalculated turret dead angles (reduced cpu load on server when shooting, uses some cpu time when building a ship)

particulary fixed block block creation

improved block destruction and removal, it now uses less traffic to sync results, and less time to calculate separated ship parts in total, but a bit more in one frame.

reduced network traffic for objects spawn in general, only data that is changed on spawn will be sent now instead of all networked variables, only 16 bits of data is used instead of 128 bits networkhash as a unique asset id now to spawn objects. (avg traffic reduction ~2x-3x for this specific case)

reduced network traffic for variables sync for objects with multiple QoS channels, only data that has to be sent on specific channel is sent, instead of duplicate data being sent on every QoS channel (avg traffic reduction ~1,5x-5x for this specific case)

minor fixes

Developer (1 edit)

Version 0.33.2017-07-24 (still experimental, 4)

fixed teleportation between sectors

skyboxes are now generated for each sector and saved on sector save

fixed movement sync for clients without authority

velocity and angular velocity are not being sent when movement sync occurs, in case they are not changed

player position no longer synced and only calculated locally

minor changes


Version 0.33.2017-07-29 (still experimental, 5)

changed sector save file format, new and old sector saves are no longer compatible

changed movement sync, it now uses global position instead of local sector position to sync position, this way it is independent from sector and sector position sync, and allows to keep position precise when objects are far from sector origin (it’s not the world origin, it’s different)

doubled amount of data sent to sync positions due to global position sync (192 bits instead of 96)

position and rotation no longer sent on spawn for all objects

sector coordinates only synced for sector objects now

fixed default collision state for client ships on server

authority assigned to player (not to his objects) can not change anymore until player reconnects now

fixed health bars being too long if health>max health

minor changes


Version 0.33.2017-08-09 (experimental-6)

4x times reduced amount of data sent to sync rotations (32 bits instead of 128), but when building no compression is used and all 128 bits of data is sent, to keep maximum precision when positioning blocks in ship

fixed ship energy settings sync regression caused by network backend update (now energy settings sync no longer uses old workarounds to sync variables from client to server via player object, so no additional data is sent at each and every parameter change, greatly reducing network traffic for this specific case)

turrets no longer sync their target position (this way each turret only sends 8 to 40 bits of data when turret behavior changed by player or turret target changes, instead of (8 to 40)+96 bits of data each time target changes position, avg traffic reduction for this specific case ~30x-100x times)

fixed turret incorrect sync regression

fixed projectile hit explosion particles and sound position sync

fixed ship save/load regression caused by network backend update

when saving a ship, ship design data will only be sent to player which requested it, instead of everyone

Engine particles state is now calculated on server regardless of authority and synced to all clients. Client with authority ignores this state and uses his own, as more up-to-date. This way client with authority no longer needs to send his state to the server.

minor changes


Version 0.34.2017-08-29 (experimental-7)

Changed collision detection algorithm for blocks being created, collisions are now determined using single physics update, instead of 2, and takes <0.02 seconds (old one took in between 0.02 and 0.04 seconds). Also new one provides much more reliable results and this should fix old bug with not being able to build new blocks in some cases.

Ship building now works with client authority, this means server no longer checks the data that client sends to it when building blocks and creates block instantly after the data is received. This way it works for ships those are very far from the server’s world origin (server could not calculate proper data for them). Amount of data sent is increased to let the server skip the checks and calculation of that data.

ship building is now in 3d space

added scaleable blocks

new inputs for movement system (added key to toggle ship stabilization, implemented 2 movement control schemes: using keyboard for steering, using mouse for steering) right now inputs are hardcoded and no visual feedback is provided to the player

minor changes


Version 0.34.2017-10-31 (experimental-8)

reworked controls configuration

Developer (1 edit)

Version 0.35.2017-12-23 (experimental-9)

updated inventory and chat code to use unet LLAPI instead of HLAPI to sync data over network (regression fix)

game will now generate very simple world map, based on visited sectors (server only, clients will have an empty map for now, i will fix it soon)

updated save/load code to store map data, compatibility with old saves is broken

forced system cursor when navigating in menus

minor internal fixes

Due to error in my network code reliable messages are not being properly enqueued, thus causing bugs with too many objects in the sector in multiplayer. It is recommended to set sector object count to “few” when creating new world for now for testing.


Version 0.35.2017-12-24 (experimental-10)

world map updates as soon as new sector is loaded now

fixed world map network sync


Version 0.35.2018-01-03 (experimental-11)

fixed shaking of grid and block being build

changed algorithm of resolving relationships between blocks in ship (in post within a day or 2)

blocks with mesh colliders removed from the build list

some blocks with compound colliders temporarily removed from the build list

scale of blocks now affects their health, mass, power, thrust.. etc.

minor internal fixes


Version 0.35.2018-01-12 (experimental-12)

implemented buffering for network messages, small network messages will be packed into one big network packet, reliable network messages will no longer be lost and will be buffered if needed.

Added station that does absolutely nothing in every sector at exact same position.

updated save algorithm, it now saves ships and stations including ownership and together with health and shield values for every block. Each player must have his own unique id set up in main game screen in order to be saved and loaded (id will be automatically generated and will not be saved if left empty).

minor internal fixes


Version 0.36.2018-02-22 (experimental-13)

implemented sector unloading

implemented network visibility system

changed player spawn order

world no longer needs to be moved locally while sector respawning

improved world movement algorithm

improved authority management, players only receive authority for objects withing their network visibility scope

improved movement sync, it no longer requires to load sectors first and is far less likely to bug out

removed unnecessary monobehavior method calls (mostly server side now)

asteroids and ships are the same thing internally now

asteroids now have multiple blocks but single mesh generated at runtime (right now server only)

particularly improved target selection

broken saving and loading

minor internal fixes and optimizations


Version 0.37.2018-03-31 (experimental-14)

Implemented mirror mode for building

implemented block painting

changed controls for building mode, system cursor is now always forced for building mode

changed sector generation algorithm, it generates save data in memory now instead of sector objects, then immediately loads it. It is very unlikely to get broken now with upcoming sector data generation changes.

changed save files format, they now use compression, compatibility with old save files is broken due to this

removed minimap & ship status windows, as they make no sense

minor bugfixes & changes