Geometric Internals Progress #6

Sprocket

Carefully balance mobility, firepower and armour in a dedicated tank designer. Then uncarefully put them to the test in a series of combat scenarios progressing through the ages of the tank. Here, your limit is what you can fit inside your hull and turret while still being able to move forwards.

Hi all, V0.2's been steadily moving back to a stable build. Work continues updating features to work with 0.2 systems. [h2]Placeholder models removed[/h2] Discord server moderator and community contributor Víðarr has been hard at work for the last few months creating the models to replace the placeholder internal parts. [img]{STEAM_CLAN_IMAGE}/40992535/5d7e051d2d1501fd4e280437a161f3e1db9164f8.gif[/img] [img]{STEAM_CLAN_IMAGE}/40992535/97bb4b85eaa60f3a793e592cc8965d16c5d0104c.png[/img] [img]{STEAM_CLAN_IMAGE}/40992535/17c112df8b46c9ad70dd08d1ab85f20665c968b4.gif[/img] [img]{STEAM_CLAN_IMAGE}/40992535/890ce1a273692a2ba116bd064341ea26c6efdf69.png[/img] [h2]Crew Role Reworks[/h2] An iteration on crew role assignment changes the way crew members perform their duties. The current efficiency percentage acting as a multiplier for time taken to perform a task has been removed. Now, each role has its required limbs defined. Crew members will only be able to have one limb working on one task at any one time. [b]For example,[/b] The gunner role requires use of the legs to press the pedal to fire the cannon. The gun layer role requires use of an arm to aim the cannon. A crew member with these roles assigned will be able to perform all tasks at once with no penalty. The driver and loader roles require all limbs, so if the driver role is then assigned to the same crew member, they will have to switch the tasks based on priority. This lets a one man tank work fine, though you'll need quite a bit of time after stopping to allow the poor driver to climb into the gunners seat to aim, fire and load the cannon. The switch time taken depends on distance, so a small, basketless secondary turret above the driver's seat could be effective. Role prioritization will be pre-set initially, with control coming in a future update. [h2]Part File-Definitions[/h2] While the part loading changes discussed in [url=https://store.steampowered.com/news/app/1674170/view/3650784879026716878]this[/url] post had achieved their main goal of loading parts synchronously. There were a few issues with the approach I took to assigning part assets to parts, which needed to be sorted sooner rather than later. So I took another look. Parts are now entirely defined in human-readable files, outside of the game engine. In addition to solving the main issue, it add some additional benefits: [list] [*] It's a large step towards part mod support. All part limits are defined here, so you can change the limits of a part if you disagree with it, though your changes might get reverted with a game update. You can even define your own parts - which isn't very useful until you can add custom models, textures and behaviour. [*] They let me switch out the code associated with each part behaviour much more easily. The part simply defines a 'model' and doesn't care how it's implemented. [*] Parts can be tweaked/fixed without having to recompile the game. [/list] [h2]Open Compartments and Physical Holes[/h2] Parts previously had a series of points spread throughout the part's volume. Each of these points were checked to see whether they were inside the compartment. If all points were inside, the part was unobstructed. If a few points were outside, the part was intersecting with the compartment's plates. This meant parts could avoid having to check collisions with every plate and, most importantly, it allowed the fake turret ring hole to work. As long as a part had all points inside the turret or the turret's basket, it would be considered valid, even though it would be technically intersecting with the plate between the turret and the basket. The damage model had to have 'portals' defined. Which were volumes where projectiles would ignore plates completely. One of these portals was placed where the turret ring met the turret body. This solution relied on compartments being fully enclosed, not ideal when they're scheduled to be opened up come open hulls and turrets on the roadmap. The damage model portals were far from perfect, and would result in inaccuracies if the turret's bottom wasn't flush with the top of the turret ring. Allowing the new thickness on plates to obstruct other parts turned out to be the final straw for this system. Parts now check whether they intersect with every single plate. Which isn't as performance intensive as it sounds, with some heavy optimizations. [img]{STEAM_CLAN_IMAGE}/40992535/acd1a18b44f2fddfc41a4d17a42766deed3420d3.gif[/img] [i]Visualizing the boxes built around each plate to simplify the intersection checks.[/i] Generated hulls can now have a physical hole in the top, intended to slot turrets into. Turret have a physical hole between them and the turret ring, removing the need for the aforementioned damage model portals. [img]{STEAM_CLAN_IMAGE}/40992535/96f5494b269f9241673ff66cbe0193dfa8a734e5.png[/img] Multiple turrets and tall commander cupolas will require new holes to be added in freeform. The rewritten freeform allowed me to make a dedicated hole creation tool. Simply select a face or a few points, and press a button. [img]{STEAM_CLAN_IMAGE}/40992535/0630f03a136d58796e3ab534064580d2ed6304f0.gif[/img] [img]{STEAM_CLAN_IMAGE}/40992535/526c3aa8cb436256661ed245d87c7649daf209ed.png[/img] There's now no difference between internal and external parts. It's just parts and steel plates. Part's don't need to be contained and there's nothing stopping you from putting your engine outside the vehicle and threading the driveshaft through a hole in the hull, should you so desire. [b]This is basically open hulls and turrets come early.[/b] [h3]Dirt closer to the ground[/h3] A small day-project when I needed to get away from the tricky stuff. Dirt is now heavier as it nears the ground. Tracks can become [i]even[/i] more dirty than before. [img]{STEAM_CLAN_IMAGE}/40992535/18f93cae9ce08003179b5a77f429cea443234709.png[/img] [b]A V0.2 public experimental branch release is looking reasonable for the end of March.[/b] - Hamish