The protocols were generally understandable (MSN for a long time was largely all MIME-based messages, and could be understood by watching a traffic stream)
Microsoft even submitted an early draft of MSNP to the IETF. I'd consider (at least the early versions) MSNP the next step up in complexity from IRC, i.e. you can write a working client with both presence and messaging within a day or two. This is from experience of having written a client myself, which I used all the way up to them shutting down the servers.
Used simple usernames/passwords for authentication (just fewer hoops to jump through)
Earliest ones were literally plain user/pass, then followed challenge-response, and later MSNP used something surprisingly similar to OAuth, where you authenticate out-of-band to get a token that is then submitted to the protocol server itself.
I had forgotten they tried to standardize the protocol!
Yeah, it was surprisingly easy. Connect to the switchboard server, set up sessions from there, and then it's all MIME. We even implemented avatars for Gaim by chunking Base64-encoded images over MIME messages (they had a max length), which MSN would ignore but Gaim would use.
We never had any trouble from the MSN team. Rumor had it at the time that at least one dev on the team was secretly a Gaim user, and they just looked the other way.
I never released it, as there were plenty of others already available at the time. It was written in pure Win32, and a single portable .exe of <32KB.
We never had any trouble from the MSN team.
Judging by the huge number of other thirdparty clients, I don't think Microsoft bothered to do anything about them, and almost treated it like they did Windows piracy --- they would rather you use a thirdparty client with MSN than a competitor's network; I suspect the fact that this was also not long after their antitrust lawsuit also had some influence.
Microsoft even submitted an early draft of MSNP to the IETF. I'd consider (at least the early versions) MSNP the next step up in complexity from IRC, i.e. you can write a working client with both presence and messaging within a day or two. This is from experience of having written a client myself, which I used all the way up to them shutting down the servers.
Used simple usernames/passwords for authentication (just fewer hoops to jump through)
Earliest ones were literally plain user/pass, then followed challenge-response, and later MSNP used something surprisingly similar to OAuth, where you authenticate out-of-band to get a token that is then submitted to the protocol server itself.