I don't want a roomate, I want a companion to have supper with, box with, do airsoft with etc.
My suggestion would be to first read How to Win Friends and Influence People. It's basically the first book about relationship / friendship advice ever written, by arguably the first person to ever study the subject. The advice there is timeless, and it's an interesting read. Just make sure that you pay attention to the section on flattery and false praise. You should never give complements that you don't really mean, which is bad for a number of reasons. I think a lot of people have the false impression or cynical view that How to Win Friends is a book that teaches you to lie to people to get what you want, and that's absolutely not the case. A lot of it is just learning to ask people about themselves and becoming genuinely interested in other people.
After that, consider finding some online friends to play games with. I wrote about this in the past, but I had an idea about this topic. I've never tried it, but I think it might work.
If you just randomly exchange gaming info over a message board or discord, it's pretty unpredictable who you're going to be adding to your friends list. Maybe you'll share a similar sense of humor or some other interests, or maybe aside from games you won't have much in common. Maybe they're the kind of player who shit talks and teabags, and maybe you're not.
My idea is to go on twitch and find a streamer who is just getting started, or only streams now and then for the fun of it. No one even slightly successful. I'd say no more than 5 or 10 people in their chat. Find someone who uses a mic, is playing a game that you have, and isn't playing in a full party. Then join their twitch chat, watch them play, and get to know them for a while. See how they interact with their chat, with their friends, and with players on the opposing team. Then if they seem like someone you would get along with, ask if they wouldn't mind you joining them for a bit.
This would probably work best in team-based games when the streamer is playing alone, or when just one or two of their friends are playing, and when they only have a small number of people in their twitch chat. Most players would rather have someone they can communicate with on their team instead of random people, and the streamer will just be happy someone's taking an interest.
A friend of mine started streaming a year or two ago, and when you're new and trying to build an audience, anyone wanting to chat or join you in a game is good news.
These seem like they'd be a couple of low stakes moves in the direction of working towards friendships, and I think they'd be much safer than inviting someone to share your home. After you've made progress in these areas and feel more comfortable talking to people, I think a better next step would be looking into some local clubs or groups of people who share your interests. And you can always take some classes that teach things that you enjoy. You mentioned boxing and airsoft, so maybe take some classes related to those things and get to know some people there.