Netplay
Experimental netplay mode that allows players to play versus matches via an internet connection. Connection is peer-to-peer and established by one player hosting and the other player connecting via the host's IPv4 address.
This feature is Windows-only and not planned for other platforms right now, due to technical limitations.
Enabling Netplay
- Inside system.def, go to the [Title Info] group and add a menu.itemname.netplay property and assign a string value to it. This is the name that will be shown in the main menu for netplay.
Hosting
- Select netplay from the main menu and select "Host" on the netplay menu.
- You will now wait for somebody to connect. Connecting works via IPv4 addresses. In this first implementation it is locked to using port 1234. You can find out your IPv4 addresss here: https://whatismyipaddress.com/. Do not give out your IPv4 address to strangers and people you do not trust!
- When somebody connects, you advance to the character select screen to select a character/stage.
Joining
- Select netplay from the main menu and select "Join" on the netplay menu.
- Enter the host's IPv4 address using your keyboard. Use backspace to delete the default IPv4 address shown and enter the correct one.
- The game will freeze while trying to connect to the host. If it cannot connect to the host, nothing will happen. If it manages to connect to the host, you advance to the character select screen to select a character/stage.
Known limitations
- Incredible amount of sync issues still in the game. Includes desyncs (irrecoverably differences in gamestate between the players), unintentional disconnects and black screens instead of loading new screens (waiting for a sync with the other player that never happens). During netplay, a special netplay log file will be written to debug/netplay_log.txt. If you encounter desyncs or other issues, it would be great if you could send me this netplay log (it logs local and received keyboard inputs per frame during netplay, as well as what unified frame count both player games have decided on.). This log helps find out where/why exactly the players desynced.
- Current netplay type is lockstep with input delay. Rollback is the goal, but that still needs a lot of rewriting for Dolmexica and its engine. Rollback is lockstep plus rolling back, so the sync issues that this lockstep mode will help find/fix will also help with the rollback version.
- There are currently no checks that your game versions are compatible. It is assumed that you and the other player have the same characters/stages. If you don't, you will probably run into a desync very fast.
system.def parameters
[Netplay Info]
The following parameters can be used to adjust the netplay menu. They work the same as the ones from [Option Info].
- cursor.move.snd (group, item): Sound effect played when cursor is moved.
- cursor.done.snd (group, item): Sound effect played when option selected.
- cancel.snd (string): Sound effect played when cancelling.
[NetplayBGdef]
Used in the same as [OptionBGdef] to modify the appearance of the netplay menu screen. Its single background groups follow the naming convention [NetplayBG _number_], again like the other screen definitions in the system.def. Refer to the original M.U.G.E.N documentation (http://www.elecbyte.com/mugendocs/mugen.html) for what parameters these groups can contain.