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.

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.

Twitter

Latest tweets from @badyolkgames

Project is ramping and time to add the last few pieces to the puzzle. We're interested in talking to industry exper… T.co

Oct 8 2021

Main Assembly now on sale at 50% off on #steam until Sep 27. Lets go create! 🤖🏃‍♀️ #indie #indiedev T.co

Sep 21 2021

👏 @Gamingaktier for setting up a fundraiser together with the charity @AbleGamers with the goal of helping to impro… T.co

Sep 17 2021

Throwback to the Cartwheel robot. What are you creating in #mainassembly? 👨‍🔬👩‍🔬🤖 #indiegame #indiedev #robots T.co

Aug 26 2021

Hej! Welcoming our newest Yolker, Ludwig to the team 👋. Ludwig will lead the charge as Game Designer and we're very… T.co

Aug 26 2021

Resharing for all the new inventors 👇 T.co

Aug 12 2021

RT @BadYolkGames: Looking for a new opportunity working in a studio run with employee health at the core of our culture? Look no furt… T.co

Aug 11 2021

Looking for a new opportunity working in a studio run with employee health at the core of our culture? Look no furt… T.co

Aug 11 2021

Inventors! Patch 1.1 is now available on Steam. Patch notes and instructions below 👇. Thank you for all the feedbac… T.co

Aug 11 2021

Two more days of money well spent with 50% off! #indiegames #SteamDeals #steamgames T.co

Aug 6 2021