3d building and movement

About half a year ago on another site I mentioned in the planned features that this is going to be a 3d game at some point. I guess many of you probably noticed that the game used all 3 coordinates in space for movement instead of 2 and quaternions for rotation instead of a single angle around an axis (this was noticed in change logs), so it should not be way too unexpected design change for you, but if it is, I'm sorry for that.

In this update engine behavior slightly changed to allow movement in 3d, most changes there are related to the input system, because back then in the past I could not to just stick with the simplest 2d solution for this, and coded more universal solution that can handle 3d rotations, so i felt more confident in future design changes.

Magenta & white lines on the picture below do not represent amount and direction of force added to the engines, but only the direction of the desired force. Actual forces applied to them are calculated as dot product between engine direction (blue) and shown vector and affected by energy available to the engines.

Regarding other stuff, I feel too lazy to make dozens of differently sized and shaped blocks, so I decided to leave only 4 main shapes of blocks in the game: cube, wedge, corner and tetra, but make them scaleable (there still will be much more meshes for them, to make different purpose blocks look very different e.g engines should differ from batteries, armor or turrets).  This should serve multiple purposes: reduce amount of colliders to be processed by physics (better performance), reduce amount of work put into them in the future to keep them updated, allow much easier building of bigger ships.

I should probably have fixed major bugs before recording the video that shows 3d movement and building, but then I said to myself: not today.

So here it is

It is also planned to let building of new blocks on every side of corner and wedge blocks (not done yet) and  make something with the rotation arrows, maybe show them at new block position when some key is pressed, or hide them at all? It's not decided yet.  Another undecided thing is should I add rotors and pistons in the game now, later, or at all? This type of feature requires compatibility breaking changes in ship save file format, so it is better to be done early (in fact compatibility can be kept but requires too much effort to be worth it ).

Currently the game uses following hardcoded inputs for movements in 3d :

Tab key - press and hold to show system cursor in game mode, to press GUI buttons

Left Ctrl key - toggle free camera view & keyboard steering

U key - toggle stabilization mode, in which ship's engines will try to compensate any unwanted rotation

In mouse steering mode: WASD to move, QE to roll, leftAlt and Space to move up and down

In keyboard steering/free camera mode: WS - accelerate/decelerate, AD to turn left/right, leftAlt and Space to turn up and down

In building mode WASD, leftAlt and Space to move the camera like in mouse sterring mode, RTY to rotate a new block, FGHJ to scale it.

This version is still utterly bugged and unplayable mess, so it’s called “experimental”


build-linux-x86-experimental-7.zip (55 MB)
20 days ago
build-win32-experimental-7.zip (49 MB)
20 days ago

Get Ship Control

Download NowName your own price

Leave a comment

Log in with your itch.io account to leave a comment.