본문으로 건너뛰기

멀티플레이 공략

Factorio의 멀티플레이어는 로컬 네트워크나 인터넷을 통해 여러 명이 같은 공장 월드를 함께 플레이할 수 있게 해준다. 원활하고 안정적인 경험을 위해선 적절한 멀티플레이어 설정과 조정(모드, 버전, 블루프린트, 서버 가시성 및 네트워킹)이 필수적이다.

기본 멀티플레이어 방식

  • 호스트(리스닝) 게임: 플레이어가 메인 메뉴 -> Multiplayer에서 게임을 시작한다. 해당 플레이어가 호스트가 되며 다른 플레이어들은 그들의 IP와 포트로 접속한다.
  • 전용 서버: 머신에서 헤드리스 서버 빌드를 실행한다(영구 월드 및 공개 서버에 권장). 헤드리스 빌드는 클라이언트 자산을 생략하여 호스팅에 적합하다.
  • 접속 방법: Internet 로비, LAN 로비, 직접 IP/포트, 또는 스팀 초대(스팀 초대는 스팀 계층의 초대 방식) 사용. Internet 로비는 공개 목록에 표시되도록 설정된 서버를 나열한다.

버전, 모드 및 호환성

  • 모든 플레이어와 서버는 정확히 동일한 게임 버전을 실행하고 동일한 모드 설치를 가져야 한다. 불일치는 접속을 불가능하게 한다.
  • 시나리오(scenarios)는 표준 저장과 다르게 동작한다: 클라이언트가 시나리오 스크립트를 설치할 필요가 없어 서버 측에서 일부 제어가 가능하며 클라이언트 모드 없이도 동작할 수 있다.

서버 가시성과 연결 세부사항

  • 기본 네트워크 포트: UDP 34197. 서버와 클라이언트는 UDP만 사용한다. 라우터, 방화벽, 안티바이러스가 이 포트의 UDP를 허용하도록 설정되어 있는지 확인(또는 서버 설정에서 포트를 변경).
  • NAT/포트 포워딩: NAT 뒤에 있는 서버는 다른 플레이어가 접속하려면 포트 포워딩이 필요하다. 포워딩이 불가능하면 VPN/가상 LAN 도구(예: Hamachi) 사용하거나 공인 IP가 할당된 머신에서 호스팅.
  • 게임은 UDP 위에 자체적인 신뢰성 계층을 구현한다; 라우터가 소스 포트를 변경하거나 무작위화하면 연결이 끊길 수 있다. 서버 포트로의 UDP 트래픽에 대해 정적 포트 무작위화를 적용하는 라우터는 피해야 한다.
  • DNS SRV 레코드: Factorio는 _factorio._udp 서비스 이름에 대한 DNS SRV를 지원하므로, 클라이언트가 포트를 입력하지 않아도 특정 포트로 유도하는 호스트명을 게시할 수 있다.

실용적인 서버 설정(헤드리스 서버)

  • 가능하면 전용 서버에는 헤드리스 서버 빌드를 사용하라; 불필요한 의존성과 자원 사용을 줄여준다.
  • 일반적인 설치 패턴: 서버를 선택한 디렉터리(예: /opt/factorio)에 압축 해제하고, 서버를 실행할 전용 시스템 사용자를 만들며, --start-server 또는 --create 옵션으로 바이너리를 시작해 저장 파일을 관리한다.
  • 파일 소유권이 올바른지와 saves 디렉터리가 존재하는지 확인하라. 서버가 저장 파일이 없다는 로그를 남기면 실행 파일이 올바르게 설치되지 않았을 가능성이 있다.

플레이어 제한 및 성능

  • 이론적인 플레이어 제한은 매우 크다(보고된 한계는 일반 사용보다 훨씬 높음). 그러나 실용적인 한계는 훨씬 낮다; 서버는 보통 수십 명을 무리 없이 호스팅하지만 성능은 서버 하드웨어, 월드 크기, UPS에 따라 달라진다.
  • 콘솔 버전(예: Nintendo Switch)은 최대 64명의 크로스 플랫폼 멀티플레이어를 지원한다.

멀티플레이어에 영향을 주는 게임 규칙

  • 연구: 기본적으로 연구는 포스(force) 단위(팀 단위)이다. 여러 포스가 존재하면 각 포스는 독립된 기술 트리와 연구 진행도를 가지며, 포스 내에서는 동시에 하나의 기술만 활성 연구될 수 있다.
  • 업적: 업적은 freeplay에서만 활성화된다; 시나리오와 사용자 저장 설정 또는 치트 및 콘솔 명령의 사용은 업적을 비활성화한다. 멀티플레이어에서 플레이어가 해당 저장에서 업적을 얻으려면 저장 플레이 시간의 최소 50% 이상을 그 저장에서 소비해야 한다.

멀티플레이어 플레이를 위한 조정 도구

  • 공유 블루프린트: 인게임 설계도면 라이브러리의 왼쪽 "Shared blueprints" 판넬을 사용해 모든 접속 플레이어가 접근할 수 있는 설계를 배치하라. 개인 라이브러리에서 설계도면나 설계도면 책자을 Shared blueprints로 끌어 넣어 팀 전체가 쉽게 사용하도록 한다.
  • 내보내기/가져오기 문자열: 블루프린트나 설계도면 책자에 대해 "Export to string"을 사용해 텍스트 문자열을 생성하고 게임 외부(채팅, Discord 등)로 팀원에게 전송하라. 수신자는 "Import string"을 사용해 자신의 라이브러리에 블루프린트를 복원할 수 있다; 이는 다른 저장과 서버 간에도 작동한다.
  • 설계도면 책자: 정거장, 방어 레이아웃, 초기사업 기지, 열차 교차로를 책 형태로 정리하라. Shared blueprint books는 팀이 현장에서 설계를 선택하고 전환할 수 있게 해준다(활성 블루프린트 전환은 Shift + 마우스 휠로 가능).

플레이어 정체성과 컨트롤

  • 플레이어 vs 캐릭터: "플레이어"는 제어 주체(선택적 신모드 포함)를 가리키며 "character"는 게임 내 아바타이다. 멀티플레이어에서 식별을 쉽게 하기 위해 플레이어는 character 색상을 커스터마이즈할 수 있다.
  • 리플레이: 멀티플레이어 리플레이에서는 재생 중 플레이어 간 카메라 포커스를 전환해 다양한 관점에서 이벤트를 검토할 수 있다.

팁과 흔한 함정

  • 접속 실패를 피하려면 합류 전에 항상 버전과 모드 일치를 확인하라.
  • 인터넷에서 접속 문제를 겪는다면 UDP 포트 포워딩, 방화벽 규칙, 라우터의 UDP 포트 무작위화 동작을 점검하라.
  • 장기 운영, 공개, 또는 다수의 플레이어가 참여하는 게임은 지연 및 안정성 개선을 위해 전용 헤드리스 서버를 선호하라.
  • Shared blueprints와 내보낸 블루프린트 문자열을 사용해 혼란을 줄이고 팀 전체의 정거장/방어/열차 설계를 일관되게 유지하라.
  • 소비자용 라우터에서 호스팅할 경우 라우터가 UDP 소스 포트를 변경하지 않는지, 서버 포트가 호스팅 머신의 올바른 로컬 IP로 포워딩되어 있는지 확인하라.

이 문서는 Factorio에서 멀티플레이어 게임을 운영하고 참여하며 조정하는 데 필요한 실용적인 필수 사항을 다룬다.

이 글에 등장하는 페이지