This patch includes several bug fixes as well as one important new feature.
Link priority option Every variable now has an option that controls how links affect the variable. You can access this option in the 'set value' menu.
If set to 'link has priority', the variable will always be overridden by the controlling variable's value (if one exists).
If 'link can be overridden' is selected, the value of the variable can be overridden, either in the 'set value' menu or by other means (e.g. manually opening a door). This means that the value of the variable will not necessarily always match the value of the controlling variable. Links will still replicate values from one variable to another, but only when the 'controlling' value itself changes (e.g true -> false, red -> green), or if manually done by using a 'value controller' or 'value branch' function.
By default, this new option is set to 'link has priority', which is the exact behavior as before this update. Meaning, none of your existing code will change until you manually change the aforementioned setting.
This option may seem a bit confusing, but I think if you experiment with it you'll have an intuitive understanding of it quite quickly. Otherwise, you can simply ignore this new option and the game will behave exactly as before.
I hope this feature is useful for everyone, Tyler
Mechanica 1.2.3: The Programming Rework
Hey everyone, After over 2 months and 2 major revisions, Mechanica's programming rework is finally complete!
Programming is Mechanica's most fundamental gameplay aspect, and I've put every effort into ensuring the new system is an objective improvement - I rewrote the entire programming system from scratch (twice) to get it right, and I'm really proud of the new system.
With that being said, humans are resistant to change, and I know some people will not be happy with such a big change. All I ask is that you keep an open mind - it'll take some getting used to, but I think you'll find that the new system is easier, faster, and more intuitive to use, whilst still being as powerful as the old system.
It'll be difficult to explain every aspect of the new system in text, so I'd encourage you to jump in game to see the new system for yourself. Here's the most notable changes:
There is now a 'programming mode' in which all of your programming is performed. Toggle it by pressing caps-lock (by default).
Functions, variables and events and now represented in world space by little round ports found on the associated object's model.
When in programming mode, click and drag on the aforementioned ports to create a link. For variables, links replicate a value from one variable to another. For functions and events, they transport execution signals.
For all advanced programming purposes, you use the newly added computers. These contain all of the advanced functionality (logic functions, math functions, timing functions, etc). You can lead links in and out of these computers.
Important info about this update
This update includes a total rewrite of several of the game's major systems. The way programming functions, both from a player's point of view, as well as internally, is totally different from the old version. For this reason, games created on older versions of the game are not compatible with this version.
You may notice a few objects missing. Most notably the Speeder and the Buddy-Bot. The Speeder is being replaced by totally customizable vehicles (see below) in the next update. The Buddy-Bot is being replaced with a much more capable and flexible robot in the near future.
For the reasons listed in the first dot-point, creations made with the Creation Tool on prior versions of the game are not compatible with the new version.
If you wish to keep playing with the old programming system, you will be able to opt-in to a 'Mechanica classic' version. You can do this by right clicking on Mechanica in your Steam library -> properties -> betas -> clicking on the dropdown. Keep in mind I will not be maintaining this version of the game going forward.
I've been running this update in open beta for a while now, and I think I've ironed out most issues. However, please expect a couple of minor bugs here and there - I'll fix those ASAP.
Tutorials I've made the new system as intuitive as possible, but I understand programming can still be a little overwhelming at first. I'll be adding tutorials to the game within the next month or so.
What's next? It's been a while since Mechanica has gotten new content, so that'll be the main focus for the next few updates. The next update will add mechanical objects such as pistons, motors, springs, etc. This will really open up the possibilities of what you can build in Mechanica. You'll be able to make your own cars, flying vehicles, elevators, etc.
The following update will include an entirely new map, as well as major graphics improvements, performance optimization, UI redesigns, and more.
Following that, I'll be adding some sort of core focus/objective to the game. I haven't finalized it yet, but I can guarantee it'll add some much-needed direction and progression to the game.
Thanks for the patience, everyone! I hope you enjoy the update. Tyler
Mechanica v1.2.3.1: Programming Rework (2) Open Beta
Hey everyone,
I got a lot of great feedback from the programming open beta. I've been spending some time reworking it yet again to address some key concerns:
Allowing the creation of complex programs compactly and efficiently.
Avoiding the clutter introduced by physical wires.
Minimizing the amount of space required to display functions, variables, and events.
This is an open beta and as such I'm not going to be providing a massive writeup on every change made. So here's a rough outline:
Introduced 'programming mode'. Any programming-related activity is only available when programming mode is enabled. It can be toggled by pressing caps-lock (this will be rebind-able shortly).
Links are now only visible when programming mode is enabled.
Links can now be created and destroyed only when programming mode is enabled.
General-purpose functions are no longer massive physical objects - they are now contained within the newly added computer. See below for more detail.
Added 'computers'. These are a necessity for advanced programming and allow access to general-purpose functions. These can be viewed and edited when programming mode is enabled.
Variables no longer have a separate port for getting and setting. They now only have one port - click and hold this port to view a radial menu. From here you can choose to get or set (if possible) the variable.
Please keep in mind this new system is still in a very early state. Here are some important things to keep in mind:
There are many temporary textures and models in use - none of the new stuff looks pretty yet, but it will.
To get this update out ASAP I have not yet modified the appearance of objects to accomodate the reduced size of functions, events, and variables. I will do this shortly.
At the moment there is only a 4 input, 4 output computer. I will be adding more computers with varying input/output amounts. Computers with more ports will have larger workspaces.
Newly introduced features do not yet have finalized appearances, feedback audio, or nice smooth animations. Everything should work, but it might feel a little janky for now.
Games created prior to this update are not compatible with this version of the game. This includes games created with the existing open beta.
There's probably going to be quite a few bugs! I made the mistake of spending too much time refining and bug fixing the last update, only to throw all of that work away when I found that people did not like the update. I'm not going to make that mistake again.
I hope everyone enjoys this revised version of the programming system. I'll continue taking feedback and further refine it over the next week or so. I'm aiming for a full release in early February.
Thanks for reading, Tyler
Mechanica v1.2.3: Programming Rework Open Beta
Hello everyone,
I've been working on the programming system rework for the past month, and the open beta is now ready! You can opt into this beta by right-clicking on Mechanica in your Steam library -> properties -> betas -> select 'new_programming_beta'.
In this update, I've focussed on reworking the programming system so that it is faster, easier, and more intuitive to work with. On a basic level, It functions similarly to the old system, except that instead of functions, events, and variables existing abstractly and only being visualized within the programming menu, all of these now have physical visual representations - an object's functions/events are represented as a physical 'block' that you can find attached to the object. Variables are represented as input/output ports (depending on if it is read only, set only, etc) that are also physically located on the object.
You can link events and functions together by wires - these work just like the white curvy links from the old programming menu. Variables are also connected via wires, and their values automatically replicate to each other - for example, connecting a buttons 'is on' variable to a point light's 'is on' variable will cause the light to switch on or off depending on the button's on/off state - no more fiddling around with event listeners, and no more manually executing 'set light on, set light off, etc' functions. It all happens automatically.
This is probably the most comprehensive change I've made to Mechanica, and with change comes resistance - I know that some people may be unhappy to see the most fundamental aspect of the change so significantly. I'd like to assure these people that no one is more hesitant to changing the programming system than I am - it was the first thing I designed/coded for Mechanica and it took months of hard work. I would only replace it if I were 100% confident that it's successor was an objective improvement, and I truly believe this new system is. As far as I am aware, everything that could be achieved with the old system can also be done with the new one - simplicity and intuitivity has not come at the cost of flexibility.
With that being said, I'm doing this open beta to iron out bugs, but more importantly, to gather feedback. I'm willing to make any changes necessary to refine this new system and make it as pleasant as possible to work with. Please let me know if you have any ideas for improvement.
You may notice a couple of objects missing in this version of the game, namely the Buddy-Bot and the Speeder. The Speeder will be replaced in the next update by the introduction of various mechanical objects. This will allow you to build fully customized vehicles from scratch. The Buddy-Bot will be replaced in the future with a Drone that transports small quantities of items long distances. It will also have the ability to refuel machines.
The creation tool is also temporarily disabled for the beta. It will be available in the full release.
This update will remain as an open beta until New Years (approximately). I've rewritten probably at least 25% of Mechanica's codebase for this update. There are significant user-facing changes, and even more changes under the hood (mostly related to saving, loading and networking). Save times are significantly faster, but I expect there will be a few bugs at first. I'll get these sorted during the beta.
This post will not include a proper list of additions, changes and bug fixes - that will be in the full release update post. I'll also make a video outlining how the new programming system works.
Thanks for the patience. I really hope you guys enjoy this update, I've worked super hard on it and I think it's a massive improvement. Nonetheless, let me know what you think - I'm happy to make changes :)
Thanks for reading, Tyler
Mechanica v1.2.2: Electric Manufacturing
Hi everyone,
This is the third and final manufacturing overhaul update, introducing new electric manufacturing machines. These machines are 25% faster than petrol machines and can be powered by a connection to an electricity network. They can be unlocked via research.
I have also redone several severals existing objects - the incinerator, vacuum, and power bank. The incinerator and vacuum have been redesigned and now have the new manufacturing input/output. The power bank now operates automatically, charging when there is an excess of power in the network and discharging when there is a deficit. The old versions of these objects will remain in the game for compatibility, but you'll receive the updated version when you pick them up.
I have also made changes to the power system - power requirements are now expressed in power per (in-game) hour. For example, an electric Autominer requires 50 power per hour, and a generator produces 50 power per hour. This integrates nicely with the new power bank, which has a capacity of 3000 power and a max charge/discharge rate of 250 power per hour.
Battery ports have been redesigned, and unused batteries can now be removed.
Power lines now curve slightly downwards, giving them a more realistic appearance. In addition, power lines now cost 1 copper wire each. They also have a limit of 50m. If a power line is stretched beyond this, it is destroyed and copper wire is dropped.
I've also reanimated the baseball bats to be a bit snappier and aggressive because why not.
Additions
Added electric Autominer.
Added electric Furnace.
Added electric Autodigger.
Added electric Autocrafter.
Added electric Water pump.
Added electric Pumpjack.
Added electric Chemical Crafter.
Added coal-powered generator.
Added new incinerator.
Added new vacuum.
Added new power bank.
Improvements/Changes
Changed how the power system is quantified.
Reduce petrol usage of petrol-powered manufacturing machines by 30%.
Added power line 'droop'.
Added power line length limit.
Added power line cost.
You can now right-click to cancel creating a power line.
Redesigned battery port.
Recolored petrol-powered generator to yellow.
You can now view a machine's inventory by hovering any part of the panel that houses its screen, lever, etc.
Adjusted generator crafting recipes.
Reanimated the baseball bats.
Reduced baseball bat power attack cost (25->15 stamina).
Increased Tesla coil damage (20->25 per second).
Slightly reduced research station volume.
Increased detection area of power nodes, making it easier to start/complete power lines.
Bug fixes
Fixed various conveyor belt multiplayer sync issues.
Fixed furnace, autocrafter, chemical crafter screens incorrectly displaying 'no power' in multiplayer.
Fixed the tutorial stating that the campfire is in the wrong crafting category.
Removed conduit from Buddy-Bot.
Fixed some multiplayer object position sync issues.
Fixed some issues with the new Autocrafter and Chemical Crafter.
This update concludes the manufacturing overhaul - I think the new system is much more cohesive and intuitive.
The next update is going to be big - I won't spoil anything but I'm going to be making changes to the programming system. The new system will be much faster to work with, more intuitive, and still able to achieve everything the existing system can. This update will take a bit longer than usual (3-4 weeks), but I promise it will be worth it!