이름에서 알 수 있듯이 HKMP(Hollow Knight Multiplayer)는 인기 2D 액션 어드벤처 게임 Hollow Knight의 멀티플레이어 모드입니다. 이 모드의 주요 목적은 사람들이 게임을 호스팅하고 다른 사람들이 모험에 참여할 수 있도록 하는 것입니다. 모드에 대해 질문하거나 일반적으로 이야기할 수 있는 모드 전용 Discord 서버가 있습니다. 또한 제안이나 버그 보고서를 남길 수도 있습니다. 최신 공지 사항이 여기에 게시됩니다.
모드를 쉽게 시작할 수 있도록 커뮤니티에서 제작한 가이드가 있습니다. Github 및/또는 Hollow Knight 모딩 경험이 없는 경우, 이 모드 사용을 시작하는 것이 권장되는 방법입니다. 또는 아래 섹션에서는 설치 프로그램에서 모드를 가져오거나 수동으로 설치하는 방법을 보여줍니다.
최신 버전의 모드는 Hollow Knight 1.5용 모딩 설치 프로그램인 Lumafly에서 찾을 수 있습니다. 이 링크를 사용하면 해당 OS에 맞는 올바른 버전의 Lumafly 설치 프로그램이 자동으로 다운로드됩니다. 그러면 이 설치 프로그램이 자동으로 모딩 API를 다운로드하고 사용하기 쉬운 인터페이스를 통해 모드를 설치할 수 있습니다.
이 모드는 Hollow Knight Modding API를 통해 작동합니다. API를 설치한 후, Steam 설치에서 찾을 수 있는 mods 폴더에 컴파일된 DLL을 놓아 이 모드를 설치할 수 있습니다. (이것이 기본 위치라는 점에 유의하세요. 이 경우 설치가 다른 드라이브에 있을 수 있습니다. 그에 따라 경로를 변경하십시오.)
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManagedMods
~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
그런 다음 "패키지 콘텐츠 열기" 및 content -> resources -> data -> managed -> mods
클릭하세요.~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed/Mods/
컴파일된 DLL의 최신 버전은 릴리스 페이지에서 찾을 수 있습니다.
모드의 기본 인터페이스는 게임 내 일시 중지 메뉴에서 찾을 수 있습니다. 입력한 포트에서 게임을 호스팅하는 옵션과 입력한 주소 및 입력된 포트에서 게임에 참가하는 옵션이 있습니다. LAN에 있는 사람들과 멀티플레이어를 플레이하는 것은 간단하지만, 인터넷을 통해 플레이하려면 추가 작업이 필요합니다. 즉, 호스트된 게임의 포트는 귀하가 호스팅하고 있는 장치를 가리키도록 라우터에서 전달되어야 합니다. 또는 Hamachi와 같은 소프트웨어를 사용하여 LAN 확장을 용이하게 할 수 있습니다.
인터페이스는 키 바인드(기본적으로 right ALT
)를 눌러 숨길 수도 있습니다. 이 키 바인딩은 모드 구성에서 변경할 수 있으며, OS에 따라 다음 위치에서 찾을 수 있습니다.
%appdata%..LocalLowTeam CherryHollow KnightHKMP.GlobalSettings.json
~/Library/Application Support/unity.Team Cherry.Hollow Knight/HKMP.GlobalSettings.json
~/.config/unity3d/Team Cherry/Hollow Knight/HKMP.GlobalSettings.json
키 바인딩은 키코드 형식으로 저장됩니다. 가능한 모든 키코드 옵션을 보려면 이 목록을 참조하세요.
일시정지 메뉴 UI 외에 사용자가 명령을 입력할 수 있는 채팅창도 있다. 채팅 입력은 다음 명령을 포함하는 키 바인딩(기본적으로 T
)을 사용하여 열 수 있습니다.
connect
: 주어진 사용자 이름으로 주어진 주소와 포트의 서버에 연결합니다.host [port]
: 지정된 포트에서 서버를 시작하거나 기존 서버를 중지합니다.list
: 현재 연결된 플레이어의 이름을 나열합니다.set [value]
: 주어진 이름과 주어진 값으로 설정을 읽거나 씁니다. 가능한 설정 목록은 아래 섹션을 참조하세요.announce
: 연결된 모든 플레이어에게 채팅 메시지를 방송합니다.kick
: 주어진 인증 키, 사용자 이름 또는 IP 주소를 사용하여 플레이어를 추방합니다.ban
: 주어진 인증 키나 사용자 이름을 가진 플레이어를 금지합니다. 사용자 이름이 주어지면 해당 사용자 이름을 가진 사용자가 현재 서버에 연결되어 있는 경우에만 차단이 실행됩니다.unban
: 주어진 인증 키로 플레이어의 금지를 해제합니다.banip
: 주어진 인증 키, 사용자 이름 또는 IP 주소를 가진 플레이어의 IP를 차단합니다. 인증 키 또는 사용자 이름이 제공되면 해당 인증 키 또는 사용자 이름을 가진 사용자가 현재 서버에 연결되어 있는 경우에만 차단이 실행됩니다.unbanip
: 주어진 IP 주소를 가진 플레이어의 IP 금지를 해제합니다.각 사용자는 인증 및 권한 부여를 위해 로컬로 인증 키를 생성합니다. 이 키는 특정 사용자가 서버에 참여하거나 더 높은 권한이 필요한 명령을 실행할 수 있도록 허용하고 권한을 부여하는 데 사용할 수 있습니다.
whitelist [args]
: 다음 옵션을 사용하여 화이트리스트를 관리합니다.whitelist
: 화이트리스트를 활성화/비활성화합니다.whitelist [name|auth key]
: 주어진 사용자 이름이나 인증 키를 화이트리스트에 추가/제거합니다. 온라인 플레이어와 일치하지 않는 사용자 이름이 제공되면 사용자 이름이 '사전 목록'에 추가됩니다. 그런 다음 이 목록에 있는 사용자 이름을 가진 새 플레이어가 로그인하면 자동으로 화이트리스트에 추가됩니다.whitelist [prelist]
: 화이트리스트(또는 prelist
인수로 제공된 경우 사전 목록)를 지웁니다.auth [name|auth key]
: 주어진 사용자 이름 또는 인증 키를 사용하여 온라인 플레이어를 인증합니다.deauth [name|auth key]
: 주어진 사용자 이름 또는 인증 키를 사용하여 온라인 플레이어의 인증을 취소합니다. Windows, Linux 및 Mac에서 독립형 서버를 실행할 수 있습니다. 서버의 최신 실행 파일은 릴리스 페이지에서 찾을 수 있습니다. Linux 및 Mac의 경우 Mono를 설치하여 서버를 실행할 수 있습니다. Mono를 설치한 후 mono HKMPServer.exe
사용하여 동일한 실행 파일을 실행할 수 있습니다. 현재 유일한 명령줄 인수는 서버가 호스팅되어야 하는 포트입니다.
또는 DockerHub에서 Docker 이미지를 사용할 수 있습니다(maximalmax90 제공).
서버는 serversettings.json
이라는 설정 파일을 읽거나 생성합니다. 이 파일은 서버의 기본 시작 설정을 변경하기 위해 변경할 수 있습니다. 또는 명령줄에서 설정 명령을 실행하여 설정을 변경할 수 있습니다. 위에서 설명한 명령 외에도 독립형 서버에는 다음 명령도 있습니다.
exit
: 서버를 정상적으로 종료하고 사용자의 연결을 끊습니다.모드의 기능을 변경할 수 있는 구성 가능한 설정이 많이 있습니다. 클라이언트 설정은 모드의 일시 중지 메뉴 UI에서 사용할 수 있으며, 서버 설정은 설정 명령으로 변경할 수 있습니다.
클라이언트 설정에는 다음 항목이 포함됩니다.
이 섹션에는 서버에 대한 설정이 포함되어 있습니다. 이러한 값은 위에서 설명한 set
명령으로 읽고 수정할 수 있습니다. 설정의 모든 이름은 대소문자를 구분하지 않지만 명확성을 위해 대소문자를 구분하여 작성합니다.
IsPvpEnabled
: 플레이어 대 플레이어 데미지 활성화 여부.pvp
IsBodyDamageEnabled
: 접촉 손상이 활성화되었는지 여부, 즉 플레이어 모델이 접촉하면 둘 다 손상됩니다. 이는 PvP도 활성화된 경우에만 효과가 있습니다.bodydamage
AlwaysShowMapIcons
: 플레이어의 지도 위치가 게임 내 지도에서 항상 공유되는지 여부입니다.globalmapicons
OnlyBroadcastMapIconWithWaywardCompass
: 플레이어의 지도 위치가 Wayward Compass 부적을 장착한 경우에만 공유되는지 여부입니다. 지도 위치가 항상 공유되는 경우 이 설정은 적용되지 않습니다.compassicon
, compassicons
, waywardicon
, waywardicons
DisplayNames
: 오버헤드 이름을 표시할지 여부입니다.names
TeamsEnabled
: 플레이어 팀이 활성화되었는지 여부입니다. 같은 팀의 플레이어는 서로에게 피해를 줄 수 없습니다. 팀은 클라이언트 설정 메뉴에서 선택할 수 있습니다.teams
AllowSkins
: 플레이어 스킨이 허용되는지 여부입니다. 비활성화되면 플레이어는 스킨을 로컬에서 사용할 수 없으며 다른 플레이어에게 전송되지도 않습니다.skins
AllowParries
: 네일 슬래시 및 네일 아트를 막을 수 있는지 여부입니다. IsPvpEnabled
가 true인 경우에만 적용 가능합니다.parries
나머지 설정에는 대부분의 PvP 활성화 주문 및 능력의 피해 값에 대한 항목이 포함되어 있습니다. 값을 0
으로 설정하면 손상이 완전히 비활성화됩니다. 다음은 괄호 안의 별칭과 함께 이러한 설정 이름 목록입니다.
NailDamage
( naildmg
)GrubberflyElegyDamage
( elegydmg
)VengefulSpiritDamage
( vsdmg
, fireballdamage
, fireballdmg
)ShadeSoulDamage
( shadesouldmg
)DesolateDiveDamage
( desolatedivedmg
, ddivedmg
)DescendingDarkDamage
( descendingdarkdmg
, ddarkdmg
)HowlingWraithDamage
( howlingwraithsdamage
, howlingwraithsdmg
, wraithsdmg
)AbyssShriekDamage
( abyssshriekdmg
, shriekdmg
)GreatSlashDamage
( greatslashdmg
)DashSlashDamage
( dashslashdmg
)CycloneSlashDamage
( cycloneslashdmg
, cyclonedmg
)SporeShroomDamage
( sporeshroomdmg
)SporeDungShroomDamage
( sporedungshroomdmg
, dungshroomdmg
)ThornOfAgonyDamage
( thornsofagonydamage
, thornsofagonydmg
, thornsdamage
, thornsdmg
)SharpShadowDamage
( sharpshadowdmg
) 스킨은 스킨 디렉터리(
)에 폴더를 놓아 설치할 수 있습니다. 이 디렉터리 구조가 아직 없으면 HKMP가 설치된 게임을 한 번 이상 시작한 후에 생성되어야 합니다. 이 폴더의 이름은 무엇이든 지정할 수 있지만 파일은 Hollow Knight에서도 일반적으로 사용하는 텍스처 시트여야 합니다. 설치된 스킨으로 게임을 실행한 후 각 스킨 디렉터리에 해당 id.txt
파일이 생성되어야 합니다. 이 ID 파일에는 해당 스킨의 ID를 나타내는 단일 정수가 포함되어 있습니다. 이 ID는 게임 내 클라이언트 설정 메뉴에서 스킨을 선택하는 데 사용될 수 있습니다. 일반적으로 이러한 ID는 1
부터 시작하고 사용하는 스킨이 많아질수록 점차적으로 증가하지만 다른 ID를 사용하도록 ID 파일을 수동으로 편집할 수도 있습니다.
이 프로젝트에 기여할 수 있는 몇 가지 방법이 있으며 아래에 모두 설명되어 있습니다. 또한 기여 가이드를 읽고 준수하시기 바랍니다.
제안사항이나 버그 리포트가 있으시면 이슈 페이지에 남겨주세요. 문제에 올바르게 라벨을 지정하고 적절한 설명을 제공하십시오. 제안이나 기능 요청에는 "향상", 버그 보고서에는 "버그" 등으로 레이블을 지정할 수 있습니다.
HKMP 모드는 처음부터 새로 만들 수도 있습니다. 이를 위해서는 Hollow Knight 게임 및 모딩 API의 몇 가지 종속성이 필요합니다. 즉, 모딩 API 에는 다음 어셈블리가 필요합니다.
Assembly-CSharp.dll (modified by the modding API)
MMHOOK_Assembly-CSharp.dll
MMHOOK_PlayMaker.dll
MonoMod.Utils.dll
그리고 Hollow Knight 게임/Unity 에는 다음 어셈블리가 필요합니다.
PlayMaker.dll
UnityEngine.AudioModule.dll
UnityEngine.CoreModule.dll
UnityEngine.dll
UnityEngine.ImageConversionModule.dll
UnityEngine.InputLegacyModule
UnityEngine.ParticleSystemModule.dll
UnityEngine.Physics2DModule.dll
UnityEngine.TextRenderingModule.dll
UnityEngine.UI.dll
UnityEngine.UIModule.dll
위의 모든 파일은 운영 체제에 따라 다음 디렉터리에서 찾을 수 있습니다(설치에 따라 다를 수 있음).
C:Program Files (x86)SteamsteamappscommonHollow Knighthollow_knight_DataManaged
.~/Library/Application Support/Steam/steamapps/common/Hollow Knight/hollow_knight.app/
그런 다음 "패키지 콘텐츠 열기"를 클릭하고 content -> resources -> data -> managed
클릭하세요.~/.local/share/Steam/steamapps/common/Hollow Knight/hollow_knight_Data/Managed
이러한 어셈블리를 편리하게 사용하면(원래 Hollow Knight 디렉터리에 있거나 다른 곳으로 이동) HKMP/LocalBuildProperties_example.props
파일을 복사하여 HKMP/LocalBuildProperties.props
로 이름을 바꾸고 그 안에 있는 경로를 로컬에서 사용되는 경로로 채워야 합니다. 그런 다음 소스 코드를 DLL로 컴파일하면 됩니다.
독립형 서버를 처음부터 구축할 수도 있습니다. 서버에는 기술적으로 두 가지 종속성이 있습니다.
HKMP.dll
)Newtonsoft.Json.dll
) HKMP mod DLL은 mod 프로젝트의 Release 디렉터리에서 연결되므로 수동으로 복사할 필요가 없습니다. 그러나 Newtonsoft JSON 라이브러리는 위에 표시된 대로 수정된 Hollow Knight 설치에서 찾을 수 있습니다. 이 DLL은 HKMPServer/Lib/
디렉터리에 배치되어야 하며 빌드 프로세스 중에 HKMP DLL과 함께 포함됩니다.
최신 버전이 내장되어 있는지 확인하려면 서버를 구축하기 전에 먼저 HKMP 모드를 구축해야 합니다.
이 프로젝트가 마음에 들고 개발에 관심이 있다면 Patreon의 후원자가 되는 것을 고려해 보세요. 개발 게시물, 미리보기 및 새로운 기능에 대한 조기 액세스를 얻을 수 있습니다. 또한, 독점 채널에 액세스할 수 있는 Discord 서버의 역할을 받게 됩니다.
HKMP는 멀티플레이어를 추가하는 Hollow Knight의 게임 수정입니다.
저작권 (C) 2023 Extremelyd1
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA