• Register


Take on the role of a drone with the ability to design and build robots for your everyday needs! Find unique ways to overcome various challenges in singleplayer or jump into the Sandbox and craft and play alone or with other players.

Create

Challenge yourself and your friends to create the most exciting looking robot using a freeform crafting tool and modular parts! Change your robots color palette to make it your own!

Create

Customize

Put your personal touch on your drone through different paint jobs and collectible cosmetic items earned by playing the game!

customize logo

Control

By using the nodes in the powerful visual programming interface, you can set up controls for your robot. After getting the hang of it, you can dig deep into it and use Sensors to make logic for different types of automation.

Control

Crashl

Your robots will take damage if they crash, fall, or take a hammer to the face! Advanced destruction systems enable bending chassis and damage that effects robot behavior. But don’t worry, you can iterate to improve and respawn your robot as many times as you like.

destruction without boxing bags

Collaborate

Join in on the multiplayer fun to create and play with others in an open sandbox environment. Load any robot you create in singleplayer or build completely new ones under the watchful gaze of your friends.

gif11 without tank resized 70

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Devblog: Programming Robots

News

Hi folks, [BYG]Watts here. This is my first devblog and we're going to talk about something near and dear to my heart: programming!

Happy drone, programmer drone!


In Main Assembly, we want to allow players to control elaborate contraptions and make cunning devices, but in an approachable and enjoyable fashion. Not everyone enjoys writing code, after all!

The brain of any bot is either a Docking Station where your little drone avatar can directly interface with the robot, or a Processor which is designed to operate without direct control. While your drone is docked, your controller inputs (mouse and keyboard or gamepad) are available for you to use in programming. Both Docking Stations and Processors can also use inputs from sensor parts, such as proximity and orientation sensors, get feedback from powered parts, and generate their own signals such as waves and noise.

Advanced docking station


As an important aside, Docking Stations are available in two flavours. The Simple Docking Station has reduced capabilities but can automatically program itself to control robots that look a bit like a conventional car. The Advanced Docking Station is, well, much more advanced!

When you have a docking station or processor on a robot, you can use a shortcut to enter Programming Mode at any time during crafting.

The programming itself uses a node- or graph-based representation. Signals carrying fractional values (normally between -1.0 and +1.0) enter the Docking Station or Processor, from inputs or sensors, and can then be combined with simple math operations (addition, multiplication etc.), tested against each other (minimum, maximum, equality etc.), used with very simple memory systems (take the mean value, delay the input for some time, etc.), and finally sent to powered parts!

One of the simplest such parts is a Motor. If the programming sends a value of 1.0 to a motor, it spins at its maximum speed. If it instead receives 0.25, it will spin at quarter speed. And if it is sent -0.5, it will spin backwards at half speed. Most parts accept this kind of continuous input and respond accordingly.

Programming a drive motor


Slightly more complex is the Drive Motor. This combines a simple motor with a mechanism for turning the wheel, a brake and a suspension assembly. Turning and braking are controlled through independent outputs. As the name hopefully suggests, this part is designed to get robots up and driving around with minimum fuss.

Successfully programmed!


Parts such as Servos and Pistons treat the values they receive as a target position, based on their limited range of motion. For example, if a servo can turn from -90° to +90°, a value of 0.5 corresponds to +45°. It will then turn until its actuator is aligned with this target angle, assuming it is not blocked.

Combining all these features allows for a remarkable level of control! Chaining servos, pistons, hinges and motors permits many degrees of freedom, and the programming lets you adjust these parts with as few or many inputs as you need.

Advanced programming


You can even make a crab bot with just a handful of servos!

Crab!


Comments
Guest
Guest

This comment is currently awaiting admin approval, join now to view.

Guest
Guest

This comment is currently awaiting admin approval, join now to view.

DexicD
DexicD

hey if you bad yolk read this can you just tell when will you reliese the game i love it and im watching your main assembly videos and waiting for the game to reliese sorry but you made a perfect game its that perfect that i cant control myself when i see it because everytime i want to play it

Reply Good karma Bad karma+1 vote
Guest
Guest

This comment is currently awaiting admin approval, join now to view.

Guest
Guest

This comment is currently awaiting admin approval, join now to view.

KumaGK
KumaGK

Will definitely be watching this one. Combining two of my favorite game mechanics: Kingdom Hearts' Gummi Garage, and Final Fantasy XII's Gambit system.

Reply Good karma Bad karma+1 vote
BadYolkGames Creator
BadYolkGames

KumaGK Don't forget to wishlist it :)

Reply Good karma+1 vote
KumaGK
KumaGK

Way ahead of ya

Reply Good karma Bad karma+1 vote
BadYolkGames Creator
BadYolkGames

Fantastic! Also! There is a discord channel.

Discord.gg

Reply Good karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Icon
Main Assembly
Platforms
Windows
Developer
Bad Yolk Games
Contact
Send Message
Homepage
Badyolkgames.com
Release date
Game watch
Follow
Share
Style
Genre
Adventure
Theme
Sci-Fi
Players
Multiplayer
Project
Indie
Boxart
Boxart
Twitter

Latest tweets from @badyolkgames

The #MainAssembly closed beta is LIVE! If you signed up, check your email inbox for your Steam key! We've put tog… T.co

Feb 14 2020

A Valentine's Day treat for those of you who signed up for the #MainAssembly Beta...​ ​Your codes will be landing… T.co

Feb 14 2020

BETA SIGN-UPS CLOSE IN UNDER ONE HOUR! Want to get hands-on with #MainAssembly and try your hand at inventing cool… T.co

Feb 14 2020

The second Beta for Main Assembly goes live today! Check out the latest Dev Blog for information on what’s new!… T.co

Feb 14 2020

We’ve assembled some news for you..​ ⏰ A limited time beta is on the way!​ 🤖 Main Assembly will be entering Early… T.co

Feb 7 2020

Happy Friday! If you were already excited to get creative in #MainAssembly, prepare to be even MORE excited! Ch… T.co

Jan 31 2020

Hey everyone! We've been hard at work applying your feedback from the closed beta to #MainAssembly! Find out how… T.co

Jan 24 2020

We stumbled upon a couple more brilliant screenshots on Steam!​ Check out the rest here: Steamcommunity.com ​… T.co

Jan 18 2020

Embed Buttons
Link to Main Assembly by selecting a button and using the embed code provided more...
Main Assembly
Statistics
Last Update
Watchers
3 members
Articles
1
You may also like