Here's something interesting: Windii apparently got her hands on an early Sonic Forces script (January 2016), and translated it!
https://twitter.com/SPEEPSHighway/status/1007404002475200512
https://pastebin.com/vDubsVhN
The broad strokes are very similar to the final version of the story, but there are a lot of little details that make things a lot more coherent. Things like:
- There's no description that Green Hill Zone is already destroyed when the game starts, it's implied Sonic is just chilling out there when he gets a call from Tails that they need help.
- In the final game, Sonic doesn't really seem to be taking that much of a beating from Infinite; he just sort of collapses kind of at random after being thrown around. Here, it's implied that Infinite warps space to obliterate Sonic with a flurry of blows almost instantly. Sounds like it was probably kind of violent?
- Sonic and Tails disappear at the same time, which is why Tails isn't in contact with the rebellion. This is one of those things you could just assume, but having it spelled out is nice.
- Infinite is handled a little more intelligently. He's never really clearly shown until around halfway through the game, and the script is big on treating him like a mystery.
- No Phantom Ruby in this script; instead it's a piece of technology called the "Valtron"
- Instead of being "banished to space," Sonic was scheduled to be executed. It's outright stated Eggman waited to kill Sonic so he could taunt him with having conquered the planet first.
- It's clearer that Sonic's prison break is part of a larger battle the entire resistance is launching on the Death Egg instead of just being a solo mission lead by the Avatar/Rookie
- It's clearer that the rookie is totally inexperienced and kind of a wuss. A lot of the rookie's early cutscenes imply the rookie is unsure of what to do or is outright afraid. Sonic finding/rescuing the rookie on the Death Egg makes a lot more sense.
- The Death Egg and surrounding asteroids were supposed to resemble Eggmanland from Sonic Unleashed instead of the bland "space station" tileset we ended up getting.
- When Sonic fights Infinite in the jungle, not only is that the first time the audience gets a good look at Infinite, Infinite is also supposed to nearly kill Sonic.
- There's a line to set up that the attack on Sunset Heights is a recent development; Eggman JUST launched an offensive there, which is why everything is on fire and there are Eggman Robots tearing the place up. (in the final, I think Classic Sonic's first level is there, and it's never really touched on otherwise)
- Sunset Heights is meant to be the rookie's first real successful solo mission. Think about it: they fail to save Sonic, and in this script their next mission after that is a team-up with Sonic to assault the pyramid in Green Hill. After finishing Sunset Heights as the rookie, everyone congratulates them on a job well done. It's meant to be a moment where the rookie proves themselves.
That's as far as I've read, but so far, it just makes everything so much more coherent. It really feels like the final script had a lot of the details shaved off.