Roboteers, stand by!
We are pleased to announce the next update for Robot Rumble 2! This update is a real game-changer as it introduces the much anticipated Weightfix to the game, alongside a whole heap of new featues! A full changelog is available at the end of this post, and it's a long one so be sure to get comfy before settling down to read it!
Death Heaven sends Built Like a Tank flying! Both bots built by @0iqdude from the RR2 Discord. Ro-Bots community arena built by our very own Liam.
What is Weightfix, and what took so long?
Whilst we have talked about the upcoming Weightfix - back then still referred to as the Scaling Bug Fix - in this Dev Diary when we first started working on fixing it all the way back in June, I thought I should give a quick refresher on what exactly the Weightfix is, and a bit of history on why this took so long to come out.
Since the beginning RR2 has been plagued by a Unity quirk in relation to how the volume of a shape/component/part is calculated. By default Unity uses the surface area of a shape to approximate the internal volume of a shape. This works ... somewhat ... for basic shapes with no scaling however once you start getting more complicated shapes such as hollow or highly convex objects the approximation falls apart, especially when you then throw in the ability to freely scale these objects as you can in RR2. This has led to years of all robots being completely out of whack with reality in regards to weight when compared to real life combat robots. To fix this a custom system was built that more accurately calculates the volume of a part in a similar vein to how actual CAD programs work this out, with much much more accurate results and eliminates the unintended effects that scaling was having.
Now, this was not a light change to implement, from both a technical perspective (requiring large amounts of rewriting core architecture of the game), and - maybe more importantly - from a gameplay perspective. We found when first fixing the bug that some bots ballooned on average 150-200% their pre-weightfix days, with some reaching 500% of their previous weight! This meant, in essence, a total reset of the board, and whilst some bots were able to be salvaged via careful material changes, a vast majority needed to be rebuilt from scratch.
This gameplay consideration is the main reason for the long delay in finalising the Weightfix. Of course, as with any major change, there came a slew of all new bugs that needed to be squashed, but the main deciding factor was the fact we were functionally erasing the massive roster of bots built by our community. We needed to be 110% certain that this was the right call and so began our Experimental testing phase. During the start it was rocky, with many being disappointed - understandably so - at the prospect of needing to rebuild their library of bots, however over time we have seen mass adoption of the Weightfix branch both on Discord and Steam to the point that it is now the default version being used in the tournament scene, and by a majority of our players. This has led to thousands of man hours of testing which has allowed us to collect so much feedback and helped us come to the realisation that the decision to push Weightfix is the right one for the game.
Raptor takes an explosive hit from the mighty spinner of Halo. Both bots built by @nerdgamer26 from the RR2 Discord.
Apart from the Weightfix, what else is coming?
Whilst we have teased many parts of the next Major Update, I just want to manage expectations and let you know that these features, such as the new OST or new Stock Bots, are not yet ready for this update. However, that doesn't mean that all you are getting is the Weightfix!
One of the other big new additions is the new STL Exporter in the Bot Lab, allowing you to export your creations from the game as individual parts ready to be opened in a 3D modelling or printing tool of your choice. We've already seen some big names in RR2 tourney scene come to life as 3d prints and it has been amazing!
Visions, known as "The final boss of RR2", built by @drola from the RR2 Discord, brought to life as a 3D print directly exported from the game!
We are also introducing the first pass at a dynamic Action Camera mode for battles. This is activated with the 0 key and will act closer to a traditional fighting game camera, moving around independent from the arena cameras and zooming to keep the bots centre stage even during the most chaotic of action! We hope this brings a whole new level of dynamism for watching your creations brawl.
Speaking of cameras; the Bot Lab camera has also had some tweaks to make complex creations easier to work with. Clicking the mouse wheel with the cursor over a part will now shift the camera to focus on that part, allowing for the camera to get in to all sorts of new nooks and crannies. Pressing Z will reset the camera to the default position.
Finally rounding out the big changes are a new set of shapes to help expand out the current selection and allow for more design opportunities going forward. These new shapes include the commonly requested Inverted Wedge Corner, hollow cylinders and wedges, and Half/Quarter variants of a couple of the existing shapes.
Of course, the wonderful revamps of the Eye of the Storm, US, and UK Arenas as mentioned in this Dev Diary are included, alongside one brand new arena we've been keeping a secret: The RR2 China Arena!
The brand new RR2 China Arena, inspired by the Chinese heavyweight robot combat scene. Features a pair of flippers, spinning drums, powerful floor pistons, and deadly killsaws!
What is next, and how long will the wait be?
This update will spend approximately a month in the Unstable Beta channel just in case of any last minute bugs before moving on over to the Stable (normal) channel.
Please be aware that due to the robot save file version being updated, if you do decide to switch to Unstable before this is pushed to Stable, any bots you have will not work in pre-weightfix versions of the game if you decide to switch back.
Work on the other parts of the next Major Update is continuing on, and we can't wait to show more in future Dev Diaries. Robot Rumble 2 is developed by a small passionate volunteer group of robot combat enthusiasts, and whilst we would love to be able to provide deadlines we unfortunately are not able to at this time. Just know that we will continue to work hard making RR2 the best robot combat simulation we possibly can!
As always, we are eternally grateful for your support, and we cannot wait to see you in the arena!
- The Robot Rumble 2 Team
https://discord.gg/RobotRumble2
This updates header features Destiny, built by @nerdgamer26 and Big Chappy built by @reyin, fighting in the community Ramplified arena built by @cutiepatootie on the RR2 Discord.
Full Changelog Below:
\ SCALING BUG FIX / WEIGHT FIX!
\ Incremental control! allows speed or position control with two buttons! SingleIncremental only moves in one direction where DoubleIncremental moves in both directions, currently driven by a 2.5s timer to go from low to high.
\ Telemetry now lists the motor input value.
\ Telemetry now also lists ESC voltage, which is whatever the ESC limits the battery voltage to.
\ Telemetry now lists motor voltage as what the ESC outputs to the windings based on the amount of current limiting, this multiplied by the current gives the electrical power of the motor in watts.
\ Telemetry now lists general robot stats! This includes name, speed and rotational speed. Can't wait for people to pull test area top speed drag races!
\ Shape_Info_Plated and Shape_Info_Simple changed some functions to Statics to decouple and use in other scripts.
\ Version notice to Build_Text_Updater.
\ STL Exporter!
\ STL Export GlobalDirectory.
\ Export STL Button to Overview tab in BotLab.
\ Open STL Folder Button to Overview tab in BotLab.
\ Open Screenshot Folder Button to Green Screen tab in BotLab.
\ Tweening Library to start sprucing up the UI.
\ Simple animations to Countdown and Win text in battle.
\ Small delay to tooltips opening.
\ Pressing Enter on Win screen will return to main menu.
\ Middle clicking a component in BotLab will cause camera to focus on and rotate around that component.
\ Pressing Z in BotLab will reset camera.
\ Move Attached in BotLab.
\ Rotate Attached in BotLab.
\ Angled Cylinder and Hollow Cylinder shapes.
\ Inverted Wedge Corner shape.
\ Smaller, scalable Free Axle.
\ Volume (weight fix) support for materiable components to match up with shapes.
\ New Shapes:
- Sphere - Quarter/Eighth
- Cone - Half/Quarter
- Cone Frustrum - Full/Half/Quarter
- Pyramid - Half/Quarter
\ Action Camera in Battle Mode, currently set to 0 to activate.
\ RR2 China Arena.
\ Rewrote a whole part of Motor_script, slight performance increase.
\ Servo control of motors now always draws maximum allowed current when a position is held, allowing proper torque on position control.
\ Motors are now speed controlled instead of torque controlled, like how motors are generally controlled in robot combat.
\ Merged incrementalControl with analogControl, incremental functions are now used when you are using analogControl with a keyboard, good luck binding all your spinners to analogControls!
\ Removed anything incrementalControl, its functionality now lives on as analogControl
\ AI can now freely control motor speeds or positions using analogControl
\ Halved the size of all hinges (fully backwards compatible, sizes are saved in the botfile)
\ Removed right click deselecting the current component, so right click can be used to move the camera while having a component selected
\ BotLab UI now shows the fill percentage of a shape, alongside the equivalent (though inaccurate) wall thickness for comparison with the old weight calculations. This will most likely be either reworked or removed for Stable release to avoid confusion.
\ Wall thickness label now rounds to 1 significant digit.
\ TwoPlayerSceneController is now aware of the instantiated prefab in Arena scene.
\ When scaling parts the Fill% will remain constant instead of trying to maintain the Wall Thickness.
\ Shapes default to full Fill% when placed instead of minimum.
\ Deco, Glowing Deco, Fur, Polka Dot Fur, and Vinyl materials adjusted to use Cutout rendering.
\ All Deco materials adjusted to use 1x1 Texture scaling.
\ Removed debug spam from Undo/Redo system.
\ Resized elements of the Bot Select menu.
\ Chassis Editor now creates non-plated shapes.
\ Adjusted mouse wheel scroll speed on Bot Select Menu to make it usable.
\ STL Exports now export as a series of STL files, one for each group in the bot construction.
\ STL Exporter now opens the folder for the export once complete.
\ Shapes now contain their default volume for debugging.
\ Overhaul of how weld strength is calculated in regards to volume of shape.
\ Discord RP no longer shows number of bots in a battle.
\ Support for STL Export to toggle if Components are exported or just Shapes.
\ Removed Pause menu from Botlab Bot Select and Battle Bot Select screens.
\ Stock Heavyweights are no longer automatically added.
\ Button to proceed at end of fights changed to Enter.
\ Photomode Camera Move Up changed back to Space.
\ Screenshots taken in BotLab go to a Bot Screenshots folder.
\ Screenshots taken in Photomode go to a User Screenshots folder.
\ Max manipulation distance in BotLab changed 1.5m->100m.
\ Removed log spam from RobotSelectController.
\ Adjusted Countdown text in battle.
\ Changed weld calculations for stock shapes to be more accurate.
\ Old Free Axle marked as Dev Only.
\ Updated Unity Version to 202.3.49f1.
\ CoM indicator now follows CoM of active group if Hide Groups is enabled.
\ Motor smoke now scales properly with the size of the motor.
\ Multimotor torque is now propery counted up, reducing torque when a single submotor breaks.
\ Joystick input now works properly and no longer draws maximum current even when no input delta is present or when requested speed is reached.
\ Telemetry motor watt now displays the correct value.
\ Fixed current limiting to work correctly with any control input.
\ Motor current now properly calculates based on the requested speed instead of maximum speed for any control input.
\ Fixed some small logic bugs in the way motors break.
\ Custom shapes with more then one collider will no longer generate an insanely high weld strength due to having more then one collider intersecting!
\ Fixed a small issue where motors could sometimes apply torque without drawing any current.
\ Fixed an issue where motors would burn out on spawn.
\ Fixed broken reconstruction of pre RobotSaveFileVersion bots.
\ Corrected Density of some materials to reflect real world properties.
\ Corrected Dual Scooter Motor weight.
\ Arena Damage multiplier will now be set to 0 if settings can not be found. This includes in the BotLab test boxes pending settings rewrite.
\ Arena Damage setting now actually updates Arena Damage when changed mid-match.
\ Arena Damage will not activate until countdown has been completed.
\ Component Weight in BotLab does not properly update when smallest axis is adjusted until selected in Materials Tab.
\ Sometimes BotLab would lock-up when creating a new Chassis.
\ Weld strength increasing when a part is rotated.
\ MiniscriptHandler causing excessive frame drops during bot count outs.
\ Crash to desktop when selecting non-Shape parts in Materials tab.
\ Wall Thickness not updating properly.
\ Framerate becoming unlimited when in BotLab.
\ Fill% resetting on Shapes when selected multiple times.
\ Wall Thickness not updating properly part 2 electric boogaloo.
\ Collider Count not accounting for all Colliderless materials.
\ Undo/Redo buttons are now hidden in Chassis and Custom Shape tabs.
\ Cloned shapes not correctly setting Fill%.
\ Tidied up some text formatting tags.
\ Custom Shapes using old Weld calculation leading to much higher weld strength than expected.
\ Thickness Percent not being properly set during Robot Reconstruction. (Cloned Shape Bug)
\ Thickness Percent not being properly set when shape is created. (100% fill weight bug)
\ Collider Count not accounting for all Colliderless materials on Custom Shapes.
\ Discord RP displays GUID instead of arena name when in battle.
\ STL Exporter visible attachment points and remove plate objects in export.
\ Last placed part highlighted when opening botlab.
\ More instances where Thickness Percent was not being set properly during load or cloning.
\ Crash to Desktop on spinner collision at 0% damage.
\ Countdown starting when pressing space while in freecam before a match starts.
\ Pressing Enter when in freecam after match ends will return to menu.
\ Pressing ESC in photomode can cause soft locks.
\ Pause menu not reappearing after exiting Settings Menu in battle.
\ Bots think they are in countout on match start.
\ Collider count inaccurate when Transparent shapes or chassis activated.
\ Pressing Enter at match end doesn't return to menu.
\ BotLab UI vanishing when going to Overview after creating a new Bot.
\ Parts with attachment points shouldn't abide by Move Attached and Rotate Attached.
\ Weight unit missing in BotLab.
\ Parts with negative scale not welding properly.
\ Floating 3 before match starts.
\ Reset Camera Hotkey not working in Botlab.
\ Not able to select or focus on parts further than the pillars in BotLab.
\ RR2 UK Arena pit lowering when weight is placed on it.
\ Camera now resets properly in BotLab when creating a custom shape.
\ Removed some log spam in BotLab.
\ Target score not being set properly in King of the Hill mode.
\ Points being added incorrectly to bots in King of the Hill Mode.
\ Photo Mode during fights now saves in "Battle Screenshots" instead of "BotLab Screenshots".
\ Updated project packages to include a missing library.
\ The Open Game Folder and Open User Robots Folder buttons now work on Macs.
\ STL Exporter not working with new Chassis system.
\ Countout timers not following PhotoCam/FreeCam/ActionCam.
\ The Open Screenshot Folder and Open STL Export Folder buttons now work on Mac.