Gamecraft

Gamecraft MAJOR UPDATE: Copy & Paste, Logic, Inventory Upgrades & Much More - LIVE NOW!

Version
MAJOR UPDATE: Copy & Paste, Logic, Inventory Upgrades & Much More - LIVE NOW!
Version Date
March 12, 2020
Links

Patch Notes

MAJOR UPDATE: Copy & Paste, Logic, Inventory Upgrades & Much More - LIVE NOW!

Hello Gamecrafters,



We have another colossal update to share with you all! Most of the new features in this update are heavily focused on the ‘building’ aspect of Gamecraft, so you can look forward to a host of tools to make building quicker, easier and so much more powerful! We’ve also thrown in some new parts, more optimisations and other QoL changes to top it all off! Read the full patch notes below.

Box Select - Delete, Cut, Copy & Paste


The first massive feature we’re going to talk about is the “Box Select” tool. This powerful tool can be used to copy parts of games and prefabs, either your own or other members of the community, and paste them wherever you want!



To use this tool, simply select the “Empty Hand” slot on the hotbar. From there, you’ll have a handy new cursor when aiming at a surface, to show you that you’re ready to start a selection. Box Select works much like Non-Uniform Scaling, or creating a new Trigger volume. Hold LMB to start a selection, then drag in the first two perpendicular axis. Release LMB to start dragging in the final axis. When you’re finished, you can click LMB again to lock this selection in, allowing you to move around and check out the selection.

Everything that is completely within the boundaries of this box will be highlighted, up to a limit of 2000 cubes.This means that a single cube that has been scaled up to 2x2x2 will only be included if the whole block is inside. A single block of this cube will not highlight the entire thing.

Pro Tip: Clicking either mouse button, or using an action like selecting a cube will cancel the selection if you change your mind



With this selection in place, you now have three options! We’ll cover each of them now.

Copy
By pressing the default keybind of Ctrl+C, you’ll create an exact copy of the contents of the selection - everything coloured blue. Everything inside the selection will remain as it was, but you’ll now have a new “clipboard” slot to the right of the hotbar.



You can then look around and position this part as if it were any regular block!

Any existing connections, wires and stats will be copied too, so copying a car will create an exact duplicate, with its own controls, ready to go!

Pro Tip: When you’re trying to place a clipboard item, the “placement cursor” will be the center of the selection box. If you want to place something with an offset, try extending the selection box to move the center point further forward.

Cut
If you no longer want the contents of the selection box to be present, but you maybe wanted to shift them over a few blocks, you could instead choose to “cut” the selection with CTRL+X. Doing this will create a copy in the clipboard, but also completely delete everything inside the selection.

Delete
If you want to quickly clear out a mass of parts that you no longer care about, you can simply delete everything in the selection box with the default key DEL.

Once you have something saved into your clipboard it will remain there for the rest of the session (until you close the game), so you can swap back to other cubes, swap back and paste as many times as you want and even carry the clipboard over to another save! For example, you could take a car from the Prefab Workshop into your own save file, make some edits and then take that improved car into a multiplayer race with other players!

Pro Tip: If you select another Inventory part and want to switch back to the clipboard, you can do that by pressing the default keybind of CTRL+V.

Part Picker Improvements


In addition to being able to copy stats and wires with the box selection tool, we’re also adding this functionality to the “part picker”, which can be used by clicking MMB when aiming at a part. Now, picking a part this way will copy the part, scale, colour and any stats or wires! With this, you’ll be able to quickly place, tweak and wire a Motor, then copy it and paste three more copied to create a car. This also applies to Text Blocks and Command Computers, which will have their contents copied.

Logic & Math Blocks


The extremely powerful Logic & Math blocks are here! These new parts are going to open up whole new worlds of possibilities when it comes to crafting games, vehicles and loads of other contraptions.

Logic Blocks



Each Logic Block performs a standard “Logic Gate” function, such as AND, OR or XOR. For those that aren’t familiar with these, we’ll cover them below.

Most Logic Blocks have two inputs. These two inputs will take any signal between -1 and +0.5 as 0 (or false). Any signal greater than +0.5 will be treated as +1 (or true), with anything over +1 clamped down. In the case of the AND Logic Block, both inputs would need to be “true” for it’s condition to be met.

The output of these blocks is a fixed 0 (if the condition is not met) or 1 (if the condition is met). For an AND block, this means that it will output a signal of 0 if either input is false, and will output a signal of +1 if both inputs are true.

The full list of current Logic Block functions are:
  • AND - If A = 1 AND B = 1 then the output = 1. Otherwise, the Output = 0 (Both inputs must be true)
  • OR - If A = 1 AND/OR B = 1 then the output = 1. Otherwise, the output = 0 (At least one input must true)
  • NOT - If A = 1 then the output = 0. If A = 0 then the output = 1 (The output is essentially the opposite of the input)
  • NAND (Not AND) - If A = 1 AND B = 1 then the output = 0. Otherwise, the Output = 0 (Unless both inputs are true, this will output 1)
  • NOR - If A = 1 OR B = 1 then the output will be 0 (As long as either input is true, the output will be 0)
  • XOR (Exclusive OR) - If A = 1 OR B = 1 then the output will be 1 (As long as only one input is true, the output will be 1, but if both inputs are true the output will be 0)
  • XNOR (Exclusive NOR) - if A = B then the output will be 1 (As long as both inputs match, the output will be 1)

Math Blocks



Math Blocks are basic arithmetic operations, such as addition, division and making a value “absolute”. We’ll cover the current operations below.

Most of these blocks also have two inputs. One of the main differences here is that these blocks allow uncapped values! This means that you can give one of these blocks an input greater than +1. Adding two inputs of +1 together will output +2, which can then in turn be multiplied even higher. These blocks support full floating point precision, so you could even multiply/divide your inputs together to get tiny values like -0.054, for fine tuning on your joints!

The full list of current Math Block operations are:
  • Adder - Output = A + B ( i.e A = 6, B = 2, O = 8)
  • Subtractor - Output = A - B ( i.e A = 6, B = 2, O = 4)
  • Multiplier - Output = A * B ( i.e A = 6, B = 2, O = 12)
  • Divider - Output = A / B ( i.e A = 6, B = 2, O = 3)
  • Mean - Output is the Average of A and B, or Output = A + B / Input ( i.e A = 6, B = 2, O = 4)
  • Absolute - Converts any negative input into a positive output ( i.e A = -2, O = 2)
  • Sign - Flips the sign of the input ( i.e A = 6, O = -6)
  • Min - Output = The lowest value between A and B ( i.e A = 6, B = 2, O = 2)
  • Max - Output = The highest value between A and B ( i.e A = 6, B = 2, O = 6)
Currently we’re not supporting loops with these blocks. If you try to connect an output back into an previous part in the sequence, causing a loop, you’ll see a message stating that this cannot be done. We plan on supporting loops later, which will have infinite loop protection and further optimisations. We’ll share more on those as they reach development.

Simple Connector

With all of these new parts to wire, things are bound to get a bit hectic, so we’re adding in a Simple Connector to help tidy things up. This part will allow you to wire the “LMB” output of a Pilot Seat to a Simple Connector, which can then go to 4 Motors, rather than having the seat go directly to each of these.

New Landscaping Parts




Building games isn’t just about the cool logic and functionality, it’s also about the look and feel. To help with this we’re adding some new Landscaping Blocks in the form of Cliff and Grass blocks. These new parts can add some real depth and character to your worlds.



Inventory Categories & Search




With all of these new parts, we wanted to give the Inventory a much needed overhaul. The first thing we’ve done is to slip the Inventory into different categories. These categories are:
  • All Parts - The default category which includes absolutely everything
  • Shapes - All of the standard Cubes, Edges etc. in all of the current materials
  • Machines - Joints, Controllers, Wheels and other “contraption” related parts can be found here
  • Logic - Triggers, Command Computers and all of the new Logic & Math Blocks
  • Special - Parts that don’t quite fit into the other categories go here, such as Spawn Points and Text Blocks
  • Cosmetic - Trees, Rocks and other Foliage is in this category
Clicking the handy little buttons on the left of the Inventory will filter to the corresponding category, meaning you’ll only find a specific subset of parts in each one.

To make things even easier to find, we’ve added a search bar in the top right. This search can handle partial searches too! For example, if you wanted to find a certain type of Axle, while in the “All Parts” category, you can simply type “Ax” or even “le”.



This will return any parts that include these letters, so “le” would also show you the Lever, Telescopic Joint and a few other parts. If no results are found, you’ll see a message in the center explaining this.

Multichannel Wiring


As part of our ongoing multiplayer prep work, we’ve taken the opportunity to start updating the current wiring system to handle multiple players a bit better. The Multichannel Wiring System now handles input from individual players. In short, this means that it can now tell the difference between “Player 1” touching a button, or entering a trigger and “Player 2”.

Previously we had to disable teleport commands in multiplayer when fired from Command Computers as there was no way to tell who should be teleported. Now, when Player 2 enters a character trigger that is connected to a Command computer, it will know who to teleport. We’ll be adding to this over time, with support for more commands, object IDs, team IDs and much, much more. Single player games remain unchanged, as these commands can always act on “Player 1”.

Optimisations & Limit Increases


We’re still working through some of the outstanding optimization work that we started a few updates ago. This time around we’ve heavily increased the “limits” in Gamecraft (we’ll go over those shortly) as well as optimising loading and saving times.

Loading Optimisations
We’ve identified a few problem areas with the initial loading sequence. With this update, everyone should reach the main menu much faster. This change is going to be more noticeable on low-end machines.

Joint count increase
One limit we’ve been aware of is the combined total of Joints allowed before errors start cropping up. Previously we had a limit of ~500 powered joints (Servos, Pneumatics etc.). Now, we’re not even sure there is a limit! You’ll now be able to place thousands of powered joints without running into errors. Although the limit now is your hardware, as that many parts will still have a performance hit. We’ll continue to work on optimising these as we go.

Single cube instance increase
When Gamecraft first launched, we were extremely limited on how many instances of a single part could be placed (which is part of the reason we had a count in the early Inventory system. This limit has slowly increased over time, as it’s been hit. From 2000 cubes, up to 20,000. Now, we’re able to support a theoretically infinite number of instances! This means you’ll be able to place hundreds of thousands of a single Aluminium cube.

Total cube instance increase
Following on from the above change, a total of 20,000 specific cubes would be fine, but after 20,000 Cubes, Edges, Corners and Spheres, more limits would be hit. As with the single cube instance limit, we’ve completely removed the cap on total parts. Again, the only limit now is the hardware you are using, but we'll continue work on optimizing this as we go.

Ongoing Multiplayer improvements
We’ve started some work to improve the connection phase of multiplayer. Loading should now be less error prone now, as everything is synced together correctly now, although it might take a little bit longer to connect to massive saves, as will likely run into other issues with memory or ping, but it will now load “as expected”.

We’ve also slightly improved the transition from Stasis to Simulation (and back). This should be a bit quicker and less ugly.

We’ve managed to fix a bug with joints that caused a lot of unintended intersections and collisions. This should improve some of the “jittering” and twitching some of you have been experiencing, but will need further work to prevent parts shooting off in other situations.

We’re committed to planning each new feature with multiplayer in mind and making sure it works as much as possible when it launches. While we’re not actively focusing on multiplayer development right now, we’re planning on spending a bit more time getting it up to scratch so that it’s playable, and more importantly enjoyable in its current state. Over the next few updates we’ll be trying to clean up some more problem areas and optimise what we can.

Other Changes


Signal Averaging Support Ended
As we’ve mentioned over the last few weeks, we’re dropping support for the old “averaged” signal model in favour of the “summed” model. Games that relied on the “averaged” model are not guaranteed to work the same on the new model, so some tweaks might be necessary.

Damped Spring Tweakable stats
Damped Springs have been added to the list of tweakable parts now. You can now tweak the “Stiffness”, which affects how freely it moves and the “Damping”, which affects how quickly it settles. These stats should offer a lot more control over your creations.

Console Blocks now trigger when the input is greater than +0.5
Previously, Command Computers would only trigger when they received an input of +1. We intended for this to happen on signals greater than +0.5, to match the Logic Blocks so this is just a small correction.

Ghost Cube Update
The Ghost Cubes has also had a bit of an overhaul to work with the new Box Select feature. The ghost cube is a little brighter and more opaque than before. This change was necessary to allow us to handle a collection of parts (trust us, it was confusing to look at 2000 overlapping and intersecting transparent cubes).

Pilot Seat changes - Ghost, Stasis & Simulation
We’ve also taken this opportunity to rework the Pilot Seat visuals a bit. The new ghost cube didn’t play well with the current setup, so we’ve created an entirely new “ghost” version of the Seats, with a smaller outline. The Stasis version of the Seat remains unchanged but the Simulation version now correctly loses it’s grid-like effect.

Empty Hand in Colour Mode takes you back to Parts Model
With the new Box Selection tool being an “Empty Hand” tool, we felt that it didn’t make much sense keeping the Empty Hand functionality as it was for Colour Mode,as you couldn’t interact with controllers or even delete parts. Now, pressing ‘H’ in Colour Mode will place you back in Parts Mode, with the Empty Hand selected, ready to start highlighting your selection.

Spawn Point Changes - Player ID, Team ID & Spawn Limit
As part of the Multichannel Wiring System, Spawn Points have received a few updates.

Each Spawn Point now has a fixed Player ID linked to it. The first one you place will be 1, the second, 2 etc. This will be shown above the Spawn Point and will later be used to allow player specific commands.

Spawn Points now have a tweakable stat in the form of “Team ID”. For now, this isn’t used anywhere in-game, but it will come into play when we add some more multiplayer functionality.

We’re limiting the total number of Spawn Points in a single save to 100. We feel like this is more than enough for now, but we’ll see how things go.

Bug Fixes

  • Fixed a bug when teleporting the player while they are in a seat
  • Fixed a bug where closing a wire panel while holding a slider could trigger an error
  • Fixed a bug where deleting large cubes near wireable parts could lead to an error
  • Fixed a bug that stopped the list of Games/Prefabs from loading when switching to Trending/All for the first time
  • Fixed a bug that prevented the multiplayer host from interacting with a button after another player had pressed it
  • Reduced the distance at which Pistons come to rest, which makes the gap left when a Piston retracts smaller
  • Fixed a visual bug with Pistons that caused the top plate to appear in the wrong place in some cases
  • Fixed a bug that prevented detached controllers from colliding with each other
  • Fixed some visual issues with layered wire/stat panels
  • Fixed some inconsistencies with the Text Block placeholder text
  • Fixed a rare error that can appear when copying a Prefab Workshop save
  • Fixed a couple of bugs with loading and entering simulation in a completely empty save file
  • Fixed some inconsistent naming of Aluminum parts
Phew, that covers everything in this gigantic update! We hope you all enjoy these amazing new features and as always, we’re looking forward to seeing some really outstanding creations soon.

The Gamecraft Team