19,587
edits
m (→Hosting tips: oops, don't use --deep; at least, that didn't work for me) |
m (link fix) |
||
(13 intermediate revisions by 2 users not shown) | |||
Line 14: | Line 14: | ||
|- | |- | ||
|align="left"|[[/Change log|Change log]] | |align="left"|[[/Change log|Change log]] | ||
|align="right"|[ | |align="right"|[https://bugs.oni2.net/query?component=Zukai&order=priority&report=11 Bug reporting] | ||
|- | |- | ||
|colspan="2" align="center"|[http://oni.bungie.org/forum/viewtopic.php?id=2841 Forum thread] | |colspan="2" align="center"|[http://oni.bungie.org/forum/viewtopic.php?id=2841 Forum thread] | ||
Line 20: | Line 20: | ||
|} | |} | ||
'''Zukai''' is the most recent attempt at [[multiplayer]] for [[Oni]]. Zukai is in an alpha-like stage of development for | '''Zukai''' is the most recent attempt at [[multiplayer]] for [[Oni]]. Zukai is in an alpha-like stage of development for macOS until it reaches v0.1, at which point it will be ported to Windows, and development will continue on both platforms. It currently comes in the form of a bundle called '''Daodan.plugin''' and an Oni [[AE:Plugins|level plugin]] called '''level0_Zukai''' with supplemental resources. | ||
''Zukai'' is a Japanese word connected to the ancient art of puppetry and puppet theater (''[[wikipedia: | ''Zukai'' is a Japanese word connected to the ancient art of puppetry and puppet theater (''[[wikipedia:Bunraku|bunraku]]''). Its usage in this project is based on the expression ''Ningyō Zukai'' ("Puppet Master") in [[Ghost in the Shell]], though translations of the word ''zukai'' alone range from "messenger" to "operator" to "familiar spirit" to "trainer". The icon for the project is based on the ''kanji'' for another word for puppetry, ''ayatsuri'' (操り). | ||
{{TOClimit}} | {{TOClimit}} | ||
Line 32: | Line 32: | ||
:Note: You must start with a vanilla Oni installation. Zukai does not yet support mods or the Anniversary Edition. | :Note: You must start with a vanilla Oni installation. Zukai does not yet support mods or the Anniversary Edition. | ||
# Disable the scripting for the level you want to play in. A simple way to do this for all levels is to rename the [[IGMD]] folder to "~IGMD". | # Disable the scripting for the level you want to play in. A simple way to do this for all levels is to rename the [[IGMD]] folder to "~IGMD". | ||
# Make sure that you have version 1.2 of the Oni game app (see forum thread for download link). | # Make sure that you have version 1.2 (or later) of the Oni game app (see forum thread for download link). | ||
# Place Daodan.plugin in the Oni installation folder at the same level as the game app. | # Place Daodan.plugin in the Oni installation folder at the same level as the game app. | ||
# Place the level0_Zukai.dat/raw/sep files in [[GameDataFolder]]. | # Place the level0_Zukai.dat/raw/sep files in [[GameDataFolder]]. | ||
Line 41: | Line 41: | ||
[[Image:Zukai-MP Menu.jpg|thumb|350px|right|Use the arrow keys to navigate the menu.]] | [[Image:Zukai-MP Menu.jpg|thumb|350px|right|Use the arrow keys to navigate the menu.]] | ||
<div style="overflow:hidden"> | <div style="overflow:hidden"> | ||
#Decide what level you are going to play. Obtain the IP address of the player that will be hosting. If you get tired of dealing with IP addresses, players can sign up for a [ | #Decide what level you are going to play. Obtain the IP address of the player that will be hosting. If you get tired of dealing with IP addresses, players can sign up for a [https://www.noip.com/ No-IP] domain and provide that URL to players instead, e.g. joe-oni-fan.ddns.net. | ||
#Launch Oni. Look for the Zukai icon on the Main Menu (pictured, left) to make sure that the plugin is active. | #Launch Oni. Look for the Zukai icon on the Main Menu (pictured, left) to make sure that the plugin is active. | ||
#Choose "Load Game" and load the level you are going to play (you can double-click the title or any save point, since scripting is disabled). | #Choose "Load Game" and load the level you are going to play (you can double-click the title or any save point, since scripting is disabled). | ||
Line 49: | Line 49: | ||
</div> | </div> | ||
===Hosting tips=== | ===Hosting tips=== | ||
*If you want to be able to host games, and not just join other people's games, make sure that you have forwarded port 2680 (UDP) to your computer's LAN (private) IP address in your router's settings. See this [ | *If you want to be able to host games, and not just join other people's games, make sure that you have forwarded port 2680 (UDP) to your computer's LAN (private) IP address in your router's settings. See this [https://portforward.com/router.htm port forwarding guide] for help. | ||
*Until there is metaserver support (i.e., a matchmaking lobby), you will need to arrange matches with other players using a third-party program like an instant messenger or | *Until there is metaserver support (i.e., a matchmaking lobby), you will need to arrange matches with other players using a third-party program like an instant messenger or a chat room (our community Discord server is [{{Discord}} here]). | ||
*Some hosts are plagued by the | *Some hosts are plagued by the macOS dialog that says "Do you want the application 'Oni' to accept incoming network connections?" each time someone tries to join their game. To turn this off, you should add this Oni application to your Firewall exceptions (System Preferences > Security & Privacy > Firewall > Firewall Options... > '+' button). Sometimes this will not work, in which case you need to open Terminal and use this command, remembering to supply the correct path to your Oni application (your administrator password will be requested): | ||
sudo codesign --force --verbose --continue --file-list - --sign - /path/to/Oni.app/ | sudo codesign --force --deep --verbose --continue --file-list - --sign - /path/to/Oni.app/ | ||
:This performs ad-hoc code-signing, which takes the place of an official developer certificate. If successful, you will see output like this: | :This performs ad-hoc code-signing, which takes the place of an official developer certificate. If successful, you will see output like this: | ||
/Applications/Oni/Oni.app: signed bundle with Mach-O thin (i386) [com.godgames.oni] | /Applications/Oni/Oni.app: signed bundle with Mach-O thin (i386) [com.godgames.oni] | ||
Line 58: | Line 58: | ||
/Applications/Oni/Oni.app/Contents/_CodeSignature/CodeResources | /Applications/Oni/Oni.app/Contents/_CodeSignature/CodeResources | ||
If it does not work, try the command several more times; it often doesn't seem to work on the first try. However, even if the signing is successful, you <u>still have to tell | If it does not work, try the command several more times; it often doesn't seem to work on the first try. However, even if the signing is successful, you <u>still have to tell macOS that the app is allowed to accept incoming connections</u>, which means that you will get the dialog again the next time that you host. Once you click that "Allow" button one more time, macOS should remember that this "signed" copy of Oni can accept connections. | ||
==Useful websites and programs== | ==Useful websites and programs== | ||
*You might want to make use of [ | *You might want to make use of [https://whatsmyip.net/ What's My IP] to get your Internet IP address (there are plenty of other websites that do this too). | ||
*[ | *[https://www.noip.com/ No-IP.com] can be used to set up a domain for someone who wants to host frequently, allowing the easier exchange of host addresses with joiners than giving out the host's IP address. | ||
*If the performance of an Internet game seems poor, | *If the performance of an Internet game seems poor, look at the ping between you and other players. Zukai displays ping on the scoreboard when you press the mp_score button (see "Bindable actions" section), but if you want more rigorous measurement of the connection between yourself and another player, bring up Spotlight in macOS and start typing "Network Utility". When the Utility appears, open it and use the Ping tab to test the connection between you and them. The most important numbers in the final statistics, once pinging is done, are the packet loss, which should be 0-1%, the average ping ("round-trip avg", the third-to-last number), and jitter ("stddev", the last number), which should be less than 25% of the average ping. | ||
*To record video footage of a match, see [[Capturing game footage]]. The recommended free method is using either OBS Studio or QuickTime Player for video, and capturing the game audio with either Soundflower or iShowU Audio Capture. The recommended commercial programs are ScreenFlow and iShowU, which capture both audio and video. | |||
*To record video footage of a match, see [[Capturing game footage]]. The recommended method is using OBS and Soundflower. | |||
==Known bugs and limitations== | ==Known bugs and limitations== | ||
At the moment, Zukai is still rough, but the following problem areas will be the main focus of future updates until they are all corrected. | At the moment, Zukai is still rough, but the following problem areas will be the main focus of future updates until they are all corrected. | ||
*You can only play as Konoko. | *You can only play as Konoko. | ||
*No text chat. | |||
*No proper matches or modes yet. All players can run around and attack each other, but there is no time limit or kill limit. | *No proper matches or modes yet. All players can run around and attack each other, but there is no time limit or kill limit. | ||
*No respawning. Until respawning is introduced, players will not die. | *No respawning or "intelligent" spawn points. Until respawning is introduced, players will not die. All players spawn around the host, who spawns at whatever Bungie West set as the default spawn point for Konoko. Because there is no death, the closest thing to a score is the total damage done, displayed with the mp_score button (see "Bindable actions" section), but this number is not synchronized between players yet, so each player will probably see a higher score for himself than what others will see for him. | ||
*Weapons and some other things are not synchronized yet, and may cause gameplay to go out-of-sync (oos). You will have to start a new match to correct this. | *Weapons and some other things are not synchronized yet, and may cause gameplay to go out-of-sync (oos). You will have to start a new match to correct this. | ||
*IPv6 is not supported yet, | *IPv6 is not supported yet, so if you have a v6-only IP address, you can't play. Please let me know if this affects you. | ||
*Gameplay is currently very vulnerable to packet loss when a new player is joining; sometimes the match will "hang" because of this. To reduce packet loss, use a wired connection to your router/modem, not wireless. Packet loss resilience will come in an update fairly soon. | *Gameplay is currently very vulnerable to packet loss when a new player is joining; sometimes the match will "hang" because of this. To reduce packet loss, use a wired connection to your router/modem, not wireless. Packet loss resilience will come in an update fairly soon. | ||
*Sometimes the wrong map name (level name) is given on the scoreboard. | *Sometimes the wrong map name (level name) is given on the scoreboard. |