I must concur that an “X” drive is superior, but there are some points of interest beyond your inquiry about the rectangular base (which you shouldn’t do, it compromises the drive system).
Two examples can be found, one where the wheels are mounted thus:
That works, but this is better
Because the latter spins better.
I highly recommend setting 393’s to the “160” gearing speed.
You can’t effectively test the bot on hard-flooring. It works, but the flooring is not even enough for the bot’s wheels to maintain contact throughout travel, so it makes you think the bot isn’t stable (as if it can’t drive in a straight line). The bot only works well on the kind of mat used by VEX in the competitions. No luck with carpet either, for the most part. This issue would likely be corrected if there were a suspension system such that all 4 wheels maintained contact with the floor. There is an alternative 3 wheel design that has less difficulty, but it may not be suitable for contests depending on your build and purpose for strafing.
There are X drive software examples online, but I assure you they are a naive version. They work, and the code is short. If your primary interest is strafing, that may do well enough.
However, our experience shows that most drivers need a “snap” of the controls. That is, a simple, naive control will allow you to draw a circle with the joystick, and basically drive in a circle by doing so. This means that the drive can move in ANY direction - at ANY angle.
That’s what’s disorienting to most drivers. They need the drive to “snap” to certain angles, specifically the major “45” degree angles. Otherwise, keeping the strafe “straight” is a problem.
Further, some drivers can more easily handle driving sideways than others, so we implemented two methods. One, the way you’d expect. You drive sideways to, well, drive sideways.
The second one works as if there is a driver in the center of the bot, but is in a chair that swivels 360 degrees. Whatever way the driver is facing is considered “forward” - so the driver can continue to “think” in terms of forward/left/right driving without having to “translate” during strafing. We used button 8’s left/right to rotate the imaginary driver 90 degrees at a time (but could have been 45 at a time).
We used that concept mixed with an automatic maneuver to effectively spin the bot around the driver. The driver thinks in terms of forward/left/right, but can spin the bot around that viewpoint so that “forward” can be driven with “Side A” of the bot facing any of the 4 major directions (and could be any of the major 8) - or, put another way, the forward direction of the driver’s view can orient any of the major “sides” (or diagonals) toward the front, as if the bot can be spun around the imaginary driver seated in the bot’s center.