[Sigma Tau] Dev Log 04 - Entity Types
The most recent objective was different entity types with different shapes and sizes.
This required more work than you might expect. I had to make entities store information about their look. I updated the Radar Port to send deltas, so that the shape on entities would not need to be sent every time. In the process I also improved and abstracted a fair amount of the port code. It is even easier now, than it was, to work with!
While I was at it, I also added and improved some other ports. And I added a Missile Tube component for the ship which spawns missiles when you press a button.
The current Ports I have are:
(Ports are a channel of communication with the terminals, they are basically a synced value)
- "Bridge": Sometimes treated as a port, sometime treated specially. It basically manages what other ports exist on the ship. The Bridge is guaranteed to exist on a ship as id 0.
- "Wire", "WireIn", "WireOut": are just basic numerical values, used for communicating thruster power levels and such.
- "PingOut": is just a valueless ping, it is used for the missile tube fire.
- "Radar": shares a view of entities.
- "Spawner": is a debug port for sending 2D positions for debug spawning entities.
The current Components I have are:
(Components are parts of functionality of a ship, they see/effect the world. They communicate with the terminals through ports, which they create.)
- "DirectThruster": A temporary thruster which thrusts in a centered thrust or a torque, as opposed to a positioned thruster.
- "Radar": Sees the world from the prospective of your ship.
- "Spawner": Debug component which spawns entities.
- "MissileTube": Spawns missile entities!
The next objectives on the short list are:
- Proper collision response, not just a 0 of velocity.
- Ships taking damage / blowing up from missiles.
- Some sort of mission to actually be able to play.
Comments
Question, do your "wire" ports also contain any meta data? Like min/max value? Units?
No, it doesn't, it just has the value. It is expected to remain between -1 and 1, although, I havn't (yet) forced that in the code.
I guess what I should say is that the Wire is a basic numerical percentage.