New weapons and models in action. Here some fighter class ships attack three frigate class ships. They do an “aggressive attack”, meaning that they only maximize their damage on the enemy. First they attain the same velocity as their target, when that is achieved they continue to shoot at the enemy. The frigates just move here until they are ordered to attack the ships. There are no enemy AI yet to give commands to the ships.
Took some time to divide weapon and turret models into size classes, but here you can see some of the results. There are turrets of four different sizes. Bigger turrets are needed for bigger weapons, but smaller turrets are much faster to move and will track small targets better.
Some testing of the missiles. They are driven by the same physics based control system as the ships are. Compared to the ships, missiles have much bigger acceleration values so the control system had to be tuned a bit. It is not necessary for their control system to be so detailed, so a simpler control system could be made for them if needed. But if no problems arise they are fine as is.
In terms of coding the weapon logics, there will be three types of weapons: beam, projectile and missiles. Gamewise these will still be further classified into kinetic and energy weapons. All beam weapons will be energy weapons but a projectile weapon could be either one. Anyway, here you can see some beam weapons testing.
Some testing of a bigger number of ships. Two hundred to be exact. Flying them to different locations and giving waypoint and attack orders.
One essential feature of the game is to be able to design your own ships. Here you can see the ship designing tool. Currently you can only choose between a few hulls and weapons but that is enough to test the principle. The projectile effects used in the videos are placeholders and I don’t think they will be replaced anytime soon. The weapons can be put only on predetermined locations depending on the hull used. In the future there will also be weapons of different sizes and bigger weapons will respectively need bigger mounting positions.
Some initial testing of combat with fighters. The fighters do attack runs at each other and try to take the needed lead when aiming to hit the target with the projectiles. Hp bars also work and the ship loses controls and continues drifting when it is destroyed.
Combat speed can be changed to make a nice slow motion effect while giving orders. One can also pause the combat by setting the time modifier to 0.
Using realistic physics allows for nice tricks. In the video, you see how one ship flies and floats around while another ship tries to follow it by matching its own velocity and location to the target ship. Once it has achieved the same velocity as its target, it is free to rotate towards the target ship, in order to shoot at it, for example. Using realistic physics also gives rise to many nice side effects like the crash with an asteroid at 1:07. There is also a third ship following the second one to make the video more confusing.
It was time to add thruster effects. Not only because it looks cool but because it is a nice way to get visual cues on how the AI is flying the ship. Thus, it is also like a debugging tool to see that the ship behaves correctly in the dragless space. The ships basically have six degrees of freedom when moving. The right, up and forward axes are ones they can accelerate along and around. Based on the inputs on each of these controls, each thrust effect should be either played or not played. This can be very complicated and laborious to set up manually, and because I’m a mathematician, I try to avoid all work. That is why I created a system to automatically detect all thrust effects and determine how they should be played depending on the inputs and how they are situated in relation to the ship.
Since the controls are set up this way, it means that the AI flying the ship is using the same controls a human would use. The ships also have togglable assists to decelerate any existing linear or angular velocity. This is very helpful for human pilots. In the video, I’m flying the ship manually to test the effects. In the last clip, seven AI driven ships also emerge.
Making a good UI is necessary for a full 3D tactical combat. In an RTS game or, for example, a Total War game, you usually command your units to some strategic locations depending on what you want to achieve. However, since space is quite empty, there are no fixed reference points like most RTS games have, and it may be cumbersome and hard to order units to some specific location in an empty 3D volume. The only reason to move your ships there would be because that location is somehow meaningful related to the enemy ships’ locations, and I think that is an essential observation when creating easier-to-use UI for this kind of game. But I’ll jump off that bridge when I get to it.
In the video, I’m showing drag selection of ships. Like many other things, that is quite different to do in 3D than in 2D. You can also see some testing of UI markers like selection boxes and health bars on ships.