카테고리

전체 (1262)
PC 게임 (1230)
오락실 게임 (13)
기타 (19)

최근에 달린 댓글


도스 게임은 여러 PC 간에 멀티플레이를 하기 위해 널 모뎀 방식, 전화선 모뎀을 사용한 방식, IPX를 사용한 방식 등을 이용합니다. 도스박스는 이런 오래된 방식을 현대적인 방식을 통해 에뮬레이션해주므로 공유기로 연결된 네트워크 환경이나 인터넷 환경을 이용하면서 도스 게임에는 오래된 방법인 것처럼 인식하게 합니다.

널 모뎀 방식은 <dosbox.conf - [serial]>에서 설명합니다.


널 모뎀과 IPX 중 어떤 방식을 사용할 것인지는 여러 가지 변수에 따라 달라집니다. 널 모뎀 방식은 두 사용자 간의 멀티플레이고 IPX는 게임에서 지원한다면 셋 이상의 사용자가 같이할 수 있습니다. 게임에 따라 널 모뎀 방식만 지원하고 IPX를 지원하지 않기도 합니다. 도스박스의 널 모뎀과 IPX 구현 방법 중에 자신에게 더 편한 방법을 선택할 수도 있을 것입니다.

 

<워크래프트 2(Warcraft 2)의 IPX 멀티플레이 메뉴>

<둠(Doom)의 IPX 멀티플레이 메뉴>

도스박스에서 멀티플레이 환경을 만든 후에는 게임에서 이용하는 방법을 알아야 합니다. 여기서는 하드웨어 구성에 해당하는 부분만 알아보고 게임은 <워크래프트 2(Warcraft 2)의 널 모뎀/IPX 멀티플레이>와 <둠(Ultimate Doom)의 널 모뎀/IPX 멀티플레이>에서 설명합니다.

멀티플레이 게임을 위한 일반적인 구성은 여러 대의 PC에서 도스박스를 하나씩 실행하는 것입니다. 하지만 테스트를 위해 한 대의 PC에서 여러 개의 도스박스를 실행할 수도 있습니다. 여러 대의 PC를 이용하든 한 대를 이용하든 구현 방법은 같습니다.

여기서는 두 개의 도스박스(사용하는 PC의 수는 관계 없음)를 사용하고 아무 쪽이나 1이라고 부르고 나머지 하나를 2라고 부릅니다. IPX를 사용하려는 모든 도스박스는 설정 파일의 [ipx] 섹션에서 ipx=true로 변경합니다.

 

변경 후 도스박스를 실행하면 전에는 보이지 않았던 IPXNET.COM이 나타나며 이 명령어를 사용할 수 있습니다. 널 모뎀 방식은 설정 파일에 모든 정보를 넣지만 IPX는 이 명령어로 동작합니다. Z 드라이브의 실행 파일들은 사실 파일명의 형태만 갖췄을 뿐 도스박스의 명령어라고 봐야 합니다. 실제로 이 명령어들 중 상당수는 윈도우와 도스박스 간에 영향을 미치는 작업을 합니다. 도스박스는 내부에는 IPX 에뮬레이션을 하면서 실제 전송은 UDP를 사용하는데 IPXNET이 이를 위한 명령어입니다.

 

도스박스 1에서 ipxnet 명령에 startserver 파라미터를 주면 이 도스박스는 내부적으로 다른 도스박스의 접속에 대기하는 상태가 됩니다. 이 도스박스에서 먼저 게임을 실행해도 되지만 하드웨어 구성을 완전하게 마치도록 하겠습니다.

 

도스박스 2는 다른 PC로 접속하는 connect 파라미터를 이용했고 도스박스 1 PC의 IP 값을 줬습니다. 도스박스 1이 대기 상태였기 때문에 두 도스박스가 성공적으로 연결됩니다. 한 대의 PC에서 여러 개의 도스박스를 실행했을 때도 똑같이 도스박스 1 PC 즉, 같은 PC의 IP를 지정하면 됩니다. 그리고 같은 PC상의 IP일 때는 자신의 PC를 지칭하는 특수한 IP와 키워드인 127.0.0.1 또는 localhost를 대신 사용해도 됩니다. 셋 이상의 사용자가 게임을 하려면 또 다른 도스박스로 그림과 똑같이 접속하면 됩니다. 즉, 대기하는 도스박스는 항상 하나이고 다른 도스박스는 그 하나에 접속합니다.

 

IP 알아내기

IP를 알려면 윈도우의 명령 프롬프트 창에서 ipconfig라고 치면 확인할 수 있습니다. 여기서는 도스박스 1 PC에서 알아내고 도스박스 2의 connect 뒤에 적어야 합니다. 그런데 도스박스 1 PC가 공유기 환경하에 있고 다른 도스박스가 외부에서 접속을 해야 한다면 다른 방법으로 알아내야 합니다. 아래의 그림에서 도스박스 3 PC가 도스박스 1 PC에 접속하는 경우입니다.

FTTH, ADSL 등의 인터넷 회선으로부터 받는 IP는 전 세계에 하나밖에 없는 주소입니다. 회선이 PC에 연결돼 있으면 PC에서 해당 IP를 사용합니다. 공유기를 사용하면 해당 IP는 공유기가 사용하고, 공유기에 연결된 PC들은 공유기 안의 네트워크에서만 사용하는 내부 IP를 사용합니다. 그러므로 ipconfig를 쳐서 나온 IP는, 공유기를 사용하면 내부 IP가 나오며 인터넷 회선이 직접 연결됐다면 전 세계에서 유일한 IP가 나옵니다. 그림과 같은 환경일 때 도스박스 1 PC는 내부 IP를 사용하는데 도스박스 2 PC도 같은 공유기 네트워크상에 있으므로 도스박스 1 PC의 내부 IP로 접속하면 됩니다.

도스박스 2
ipxnet connect 192.168.0.10


참고로 내부 IP는 보통 192.168로 시작하므로 ipconfig에서 나온 IP가 어떤 종류인지 짐작할 수 있습니다.

도스박스 3 PC는 공유기 외부의 인터넷상에 있어서 공유기 안에서만 사용하는 내부 IP로는 접속할 수 없고 외부 IP로 접속해야 합니다. 도스박스 1 PC의 사용자가 외부 IP를 알려면 공유기 설정으로 들어가서 외부 IP란을 보거나 아래의 사이트 중 한 곳에 들어가면 큰 글씨로 나옵니다.

http://www.ip-adress.com/
http://whatismyipaddress.com/


이렇게 알아낸 외부 IP를 도스박스 3에서 사용합니다.

 
도스박스 3
ipxnet connect 211.113.36.10


이 IP는 공유기의 IP이므로 도스박스 1 PC까지 신호가 가려면 다른 P2P 프로그램과 마찬가지로 공유기에서 포트 포워드 설정을 해야 합니다.

공유기마다 설정 화면의 모습은 다르지만 포트 포워드 메뉴에서 항목을 하나 추가하고 IP, 프로토콜, 포트 번호를 입력해야 합니다. IP는 도스박스 1 PC에서 ipconfig를 쳐서 알아낸 내부 IP입니다. 프로토콜은 도스박스가 IPX 에뮬레이션을 위해 사용하는 UDP 방식을 지정합니다. 포트 번호는 도스박스 기본값인 213번 포트를 지정합니다. 이제 도스박스 3으로부터 공유기까지 들어온 신호가 도스박스 1 PC에 전달됩니다.

 

도스박스 1과 2를 같은 PC에서 실행했거나 공유기로 연결된 PC끼리라면 관련이 없지만 인터넷상에 있다면 한가지 파라미터가 더 필요할 수도 있습니다. 도스박스 포트의 기본값인 213을 인터넷 업체가 막아놓았다면 신호가 대상 회선으로 가지 않습니다. 이때는 ipxnet에 파라미터를 추가해서 도스박스가 다른 포트를 사용하도록 합니다.

도스박스 1
ipxnet startserver 45000


이렇게 하면 213 대신 45000번 포트를 사용해서 대기합니다. 번호는 65535 이하에서 무작위로 결정합니다.

도스박스 2

ipxnet connect 211.113.36.10 45000


도스박스 1로 접속하는 모든 도스박스들도 같은 포트로 접속해야 하므로 포트 번호를 지정합니다. IP는 인터넷상에 있는 도스박스 1 PC의 IP의 예입니다. 만약 도스박스 1 PC가 공유기 환경에 있다면 공유기의 포트 포워드 설정에서도 213 대신 바꾼 포트 번호를 지정해야 합니다.

이제 도스박스 내에서 실행되는 게임에서 IPX 방식의 멀티플레이를 할 수 있습니다.


IPXNET.COM은 이 외에 몇 가지 기능을 더 갖고 있습니다.
ping은 다른 도스박스의 응답 속도를 보여줍니다.
status는 현재 상태를 보여줍니다.
stopserver는 startserver로 만든 서버 기능을 중지합니다.
disconnect는 connect로 서버에 연결한 상태를 끊습니다.

<워크래프트 2(Warcraft 2)의 널 모뎀/IPX 멀티플레이>
<둠(Ultimate Doom)의 널 모뎀/IPX 멀티플레이>

 

Posted by Passing