I'm an ex-long time "AAA" game programmer, now solo indie developer making GearBlocks, a game all about creative building, interactive machines, and gears - lots of gears!

Report RSS GearBlocks 8797

Posted by on

Hey everyone, time for a long overdue update!

Combustion Engines - Not Ready Just Yet

By this point, I was hoping to have combustion engines done. I tried a purely physics based approach, using separate cylinder, piston, con-rod, & crank rigidbodies, and applying a force to the piston based on the current angle of the crank. This worked reasonably well, but had problems with "phantom forces" whereby the engine got torque applied to it, sometimes flipping over the vehicle it's in. Also, using physics for all the parts like this has RPM limitations, and doesn't scale that well for sim performance.

So I've decided to change tack slightly, I still want to keep the appearance of the moving parts (i.e. pistons and con-rods), but my plan is now to procedurally animate these in code. There's not really any need to use physics as these parts can't collide with anything when inside an engine. To apply torque to the crankshaft, I'm working on something similar to the electric motors, but with a different torque curve.

Hopefully I'll be able to get this done soon, but in the meantime I thought it would be good to get a small update out. Here's what's in it...

Parts

There are now some slider versions of the 1-Hole and 2-Hole connectors, some new "angle axle" connectors, and a larger centrifugal clutch.

Also, the rounded beams can now be resized one unit smaller than before.

Part Behaviours

I've improved how the invert option works for parts with a single key bind (e.g. brakes), adding a separate invert option for the joystick axis.

You can now type in values for any part behaviour slider, by right clicking it. Even values beyond the normal slider range can be entered (but no guarantees the physics won't blow up with higher RPMs or torques!)

No Collide Tool

For those who want to bypass part collisions in their builds, I've added a new "PartCollision" script mod tool that can be used to disable part collisions. Parts with their collision disabled will still collide with the ground, but nothing else.

Here are the full release notes:-

  • New parts:-
    • "1-Hole Slider" and "2-Hole Slider" connectors.
    • Angle axle 90, 180, 3 x 90, & 4 x 90 connectors.
    • Centrifugal clutch x3.
  • Rounded and half rounded beams can now be resized one unit shorter.
  • Added "invert axis" option to part behaviour joystick axis settings.
  • In brake, clutch, and differential part behaviours, replaced "invert direction" option with "invert control", which properly inverts their control behaviour.
  • By right clicking a slider in the part behaviour settings, it's value can now be edited by typing in a number.
  • Shortcuts (Ctrl+C and Ctrl+V) for copy and paste in part behaviour settings.
  • A construction can now be unfrozen (via the construction UI) while the player is seated in it.
  • Lowered minimum mouse sensitivity values.
  • Added methods to IConstructionOperations to set whether parts are collidable (and added IsCollidable property to IPart interface).
  • Added new PartCollision script mod.
  • Bug fixes.
  • Upgraded to Unity 2021.3.34.
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: