GearBlocks Demo Changelog

What's new in GearBlocks Demo Build 0.4.6095 Pre-Alpha

Sep 9, 2016
  • New desert map:
  • At long last, I have done away with the old procedurally generated terrain. I decided that it made more sense to have a few decent “hand crafted” maps in the game, rather than an almost infinite number of crappy ones!
  • So, now in it’s place there is the new desert map. This is still a work in progress, I have a lot of details still to add to it, but the main thing for now is that it at least has a flat area to build on without stuff rolling away. In the full game I plan on adding other maps based in different settings (e.g. forest, grassland, salt flat, snow / ice, etc. haven’t quite decided yet).
  • Rendering improvements:
  • Having upgraded to Unity 5 this allowed me to make the switch over to physically based rendering (PBR). Besides making things look pretty, PBR serves a practical purpose in that you can now visually distinguish materials (e.g. metal actually looks like metal now). It also makes it much easier to achieve consistent lighting across the whole scene.
  • I’ve also upgraded the time-of-day system, and tweaked the post effects too.
  • Saved game format:
  • The saved game format has changed slightly, so old saved games won’t work in this build. However, saved constructions from the previous build version (0.4.6034) should still load OK. If you have saved constructions from versions earlier than that, I’d recommend loading them in build 0.4.6034, then save them back out, they should then load properly into the new build.

New in GearBlocks Demo Build 0.4.6034 Pre-Alpha (Jul 11, 2016)

  • New world tool:
  • There is now a “world tool” in the game (that can be activated by pressing 0), and with this tool active, holding / pressing Q brings up the world tool UI. In this UI you’ll find the world constructions tab (moved over from the builder tool UI). You’ll also find a new “settings” tab that allows global settings to be changed during gameplay. You can change things such as the current time of day, but perhaps more interesting are the new simulation settings.
  • These allow you to adjust the trade off between physics simulation accuracy and performance. For example, if you have a slow computer, you can reduce accuracy to get a better frame rate. Or, if you have a model that requires higher physics accuracy, you can increase it at the expense of performance.
  • Here’s a brief explanation of these settings:
  • Update rate - This slider sets the number of times per second that the physics simulation is updated. The higher the update rate, the smaller the time step from one update to the next which gives greater accuracy, at a higher performance cost. The sim time step is particularly important for constructions that have parts with high velocities, especially large angular velocities (i.e. high RPMs). In these cases, it may be necessary to increase the update rate to prevent instability or “glitching”.
  • Constraint accuracy - This slider controls how tightly rotary bearings, linear bearings, and so on are constrained (how little they “sag”). It also affects how much torque gears can transfer without slipping. If a construction has parts that exert large forces between moving attachments or gears, this may need to be increased (again, the downside being reduced performance).
  • A science experiment:
  • As (I think) an interesting aside, it turns out that actually two factors affect how accurately constraints are resolved. Increasing the number of physics solver-steps-per-update increases constraint accuracy, but so does reducing the simulation update time step. However, I want the player to be able to adjust the sim update rate without also affecting constraint accuracy. For me PhysX is a black box, I can’t look at how it works internally, so I did an experiment in the game to try and figure out how to keep a consistent level of constraint accuracy while varying the time step
  • I built a construction that put some gears under torque loading (using a lever and a big weight on the end to provide the torque loading). At various sim update time step settings, I adjusted the number of solver-steps-per-update to just the point where the gears no longer slipped.
  • Plotting these results out on a graph showed what looked to be some kind of power relationship. With a little help from Wolfram Alpha, I found that yes indeed the number of solver steps required was proportional to the time step raised to a power - a power of 2 in fact, handily enough!
  • So, now I set the number of solver-steps-per-update equal to the square of the time step multiplied by the constraint accuracy value that the player can adjust, and this gives a nice consistent behaviour.
  • Collision behaviour improvements:
  • You can no longer accidentally deselect or unfreeze constructions under the ground or inside other constructions (this used to generate large impulses as the physics engine tried to resolve the collisions, flinging stuff all over the place). For the same reason, I have also prevented collisions between frozen constructions and the player or other non-frozen constructions. This has the added benefit that you can now walk inside frozen constructions to get a different perspective when building them!

New in GearBlocks Demo Build 0.3.5971 Pre-Alpha (May 9, 2016)

  • New part alignment search system (used when player is attaching parts together), this is more efficient and has less bugs than the old implementation based on physics collider contacts.
  • Implemented "world" tab in builder tool UI. This contains a list of constructions currently in the world and provides the ability to pick a construction and then remotely: select it, activate / deactivate all of its behaviours, toggle it frozen / unfrozen, clone it, save it, or delete it.
  • Added buttons to construction menu that activate / deactivate all of a construction's part behaviours.
  • Added help window summarising game controls (accessed by holding / pressing F1).
  • Increased servo motor peak torque value.
  • UI improvements and bug fixes.
  • Upgraded to Unity 4.7.1.

New in GearBlocks Demo Build 0.3.5893 Pre-Alpha (Feb 22, 2016)

  • This build tweaks the way parts align together during construction, the servo motor now has a configurable torque value, and some of the part models have been updated, along with new sfx.

New in GearBlocks Demo Build 0.3.5834 Pre-Alpha (Dec 23, 2015)

  • Part type pairing:
  • Over the past few weeks I’ve totally reworked the system that decides which types of parts can be attached to other parts. Previously there was a predefined list that explicitly specified the legal pairings between the various part types, including which set of attachment points to use, and what attachment types to allow (e.g. fixed, rotating, sliding etc.) This made it awkward to add new part types. When adding a new part type, you had to make sure any existing part types that you wanted to connect to it be updated too, essentially meaning the list would grow exponentially the more types you added. Unwieldy now, totally unworkable in the future.
  • So I scrapped the predefined list, and now legal part pairing is determined implicitly, simply by what attachment points each part exposes. For example, if a part has at least one fixed surface attachment point, it will attach to any other part that has a matching fixed surface attachment point (an example being a block attaching to another block). This opens up the possibility of parts now being able to attach together that previously couldn’t because a pairing relationship happened not to be explicitly specified.
  • This task took a bit longer than I was expecting because it exposed some workarounds that were relying on the old explicit part type pairing. I managed to get around most of these, but there’s one I still need to go back and address properly.
  • New attachment types:
  • The attachment types have been renamed (”rigid” to “fixed”, “hinge” to “rotary bearing”, and “slider” to “linear bearing”). In addition there’s a new attachment type: “linear rotary bearing”, this allows parts to slide relative to each other along the sliding direction, and rotate relative to each other at the same time.
  • Axles can now be attached to blocks with the “linear bearing” and “linear rotary bearing” types (as well as “fixed” and “rotary”, as before). Gears can now be attached to axles with the “rotary” type (as well as “fixed”, as before).
  • Construction controls changes:
  • Finally, there have been some tweaks to the controls. In the builder tool mode, pressing Q while highlighting a part now clones that part. In the painter tool mode, right click now removes paint from the highlighted part, and Q now samples the paint colour from the highlighted part.

New in GearBlocks Demo Build 0.3.5796 Pre-Alpha (Nov 30, 2015)

  • Keys can now be assigned to control part behaviours (for motors, servos etc.)
  • Added "brake" option to electric motor to stop spinning when switched on but not activated.
  • Added RPM setting to servo motor to allow its speed to be adjusted.
  • Construction UI improvements.
  • Individual constructions can now be saved and respawned at any point later on.
  • Example constructions added.
  • Bug fixes.

New in GearBlocks Demo Build 0.3.5771 Pre-Alpha (Oct 21, 2015)

  • Painter tool:
  • There is now a new tool in the game that allows you to apply colour to the currently highlighted part (if it is paintable). Paintable parts can be identified in the part spawner menu as the ones with the colour icon in the top left corner of their preview images.
  • The numeric keys select which tool is currently active, 1 for the builder tool (i.e. the pre-existing construction controls) and 2 for the new painter tool. The currently active tool is indicated in a new toolbar at the bottom of the screen (you can also select a tool by clicking on the icons in this toolbar). When the builder tool is active, using Q will bring up the part spawner menu as before, but when the painter tool is active, Q brings up a different menu, one that lets you choose a colour to paint with. Note that in the demo, some of the paint colour controls in this menu are disabled, but you can still choose from a fixed palette of colours.
  • When the painter tool is active, the following controls are available
  • Left click to apply paint to the currently highlighted part (if it is paintable).
  • Hold shift + left click to remove paint from the currently highlighted part (if it is currently painted).
  • Right click to sample paint from the currently highlighted part (if it is currently painted) and make it the current colour for painting.
  • Other improvements:
  • Also in the latest build, Q can now be optionally made to toggle the tool UI, instead of having to hold Q. To activate this, there is a check box option in the input settings.
  • The electric motor peak RPM and torque are now configurable from the part behaviour configuration dialog, which allows the motor to be fine tuned to better suit the construction that you’re building.

New in GearBlocks Demo Bild 0.2.5712 Pre-Alpha Demo (Aug 24, 2015)

  • This build introduces resizable block, plate, axle and slider rail parts. There have been some slight changes to the construction controls to support part resizing (see Readme.txt for details)

New in GearBlocks Demo Bild 0.2.5711 Pre-Alpha Demo (Aug 22, 2015)

  • This build introduces resizable blocks, plates, axles and slider rails. The construction controls have been changed slightly to accommodate resizing of parts (see readme.txt for details on the controls), and there are also some bug fixes. To install, unzip into any folder. See Readme.txt for keyboard / mouse controls and release notes

New in GearBlocks Demo Bild 0.2.5682 Pre-Alpha Demo (Jul 24, 2015)

  • Tweaks to reduce gear slip under high torque loads.
  • Increased motor peak torque level.
  • Changed value ranges for spring damper spring rate and damping.
  • UI tweaks and improvements.
  • Fixed bug where spring damper parts could be attached to axles in the wrong orientation.
  • Fixed bug where slider rail would change to wrong sliding direction after cycling attachment type.
  • Fixed bug where motor rotation direction could be different depending on which order the motor and axle were attached together.
  • Fixed bug where, after turning off a servo motor, an axle attached to it wouldn't rotate freely again.
  • Reduced tolerance on gear engagements to prevent some invalid gear arrangements.
  • Upgraded to Unity 4.6.7.

New in GearBlocks Demo Bild 0.2.5649 Pre-Alpha Demo (Jul 10, 2015)

  • This build brings new spring damper parts that can be used to build working suspension, plus improvements to reduce loading times. To install, unzip into any folder. See Readme.txt for keyboard / mouse controls and release notes.

New in GearBlocks Demo Bild 0.1.5623 Pre-Alpha Demo (May 27, 2015)

  • This update has a bunch of UI improvements, as well as several bug fixes (see release notes for details).

New in GearBlocks Demo Bild 0.1.5581 Pre-Alpha Demo (Apr 14, 2015)

  • Over the last week I (hopefully) fixed some of the physics bugs that were a point of frustration for people:-
  • Fixed bug where hinge attachments would sometimes drift from their correct orientations, causing incorrect physics behaviour (where the construction would jump about all over the place).
  • Improved behaviour when exiting a seat, to prevent the player from colliding with the construction.
  • Also added new 3x3 plate, slider x3 and slider x5 parts.