Skip to content

louvenarde/SC2-Proxima

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Supreme Commander 2 Proxima

This is a working LAN/P2P patch for Supreme Commander 2 to connect without SteamP2P.

In its current state it should be fully working for private matches. Matchmaking is not planned.

Due to me scavenging code and tools from my previous projects (most notably from IW4x) this might be a bit overengineered. Sorry!

How it works

SC2 uses the Steam P2P API to connect peers to each other and then handle all communication. One could trivially proxy Steam to replace this API with another STUN/TURN implementation, relayed or not, or even just a simple Winsock TCP socket.

However there is another way.

The UDP Connector used by Supreme Commander: Forged Alliance is still partially present in the code, somewhat. It doesn't work out of the box but with a tiny push, it does.

Getting started

This library replaces the steam_api.dll in your /bin folder. Make a backup beforehand.

  • Open game directory from Steam
image
  • Browse to the /bin subfolder
image
  • Rename your existing steam_api.dll to preserve it
image image
  • Put it in the same folder, next to SupremeCommander2.exe
image
  • You're good to go!

Hosting a game

Simply click on "Host game" in the main menu.

Then configure the lobby as you like. image

Joining a game

Select "Join Game" on the main menu

image

Then in the search bar, type the IP you wanna join.

  • You can also type IP:Port.
  • Example, 127.0.0.1.
  • The default hosting port is 16010. If you specify nothing, the port will be 16010.
image

Click Search tags. A single game will appear in the browser. (Game name and map do not matter, its a "fake" game)

image

Double click on it.

image

Troubleshooting

This is a very direct approach to peer connection, there is no relay, no tunneling, no punching - you will need to open the port on your router and/or firewall for it to work. This program is only for the Steam version of SC2 (1.260). Other versions may not be supported. Only the private match multiplayer experience was my focus, so the rest of the game might be wrecked. Not sure.

Changing port and name

If you have launched the game at least once, you will have a file named PlayerData.txt in a Proxima/ directory next to SupremeCommander2.exe Use it to change your name and to change the default hosting/joining port if you need something else than 16010.

Credits

Thanks to the incredible efforts of the Goldberg team for reversing almost every version of Steam API out there, this helped tremendously to tailor the proxy to Supreme Commander 2 specifically :)

About

LAN patch for Supreme Commander 2

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages