Broccoli's House

#4-(5) TORCS : SCR-패치 클라이언트 설정 본문

공부/캡스톤 디자인

#4-(5) TORCS : SCR-패치 클라이언트 설정

김콜리 2018. 3. 8. 02:14

4회차 - (5) TORCS : SCR-패치 클라이언트 설정



  • 클라이언

 - 클라이언트 : TORCS의 SCR-패치를 통해 서버가 열려있는 상태에서, 서버를 통해 게임의 데이터를 읽거나 쓰려면 메모리 영역을 읽어올 수 있는 클라이언트가 있어야 한다. 다른 어떤 언어로도 클라이언트를 만들 수 있으나, 여기에서는 C++과 파이썬으로 구성된 클라이언트를 소개하고자 한다.




  • C++ 클라이언트

 - 유튜브 (https://www.youtube.com/watch?v=mFo98deSk4Q)를 보면 자세한 과정을 알 수 있다.
 - URL (https://sourceforge.net/projects/cig/)에서 동일한 클라이언트를 다운받을 수 있다. 압축 파일을 받은 후에, 압축을 해제한다. 클라이언트는 게임 외부에서 작동하는 프로그램이기 때문에 자신이 원하는 경로 어디에나 두어도 상관없다.

 - C++ 클라이언트는 소스 파일이기 때문에, 컴파일을 해주어야 한다. 컴파일 프로그램에는 여러가지가 있으나, 위의 유튜브 영상과 같은 Dev-C++을 사용한다. (https://sourceforge.net/projects/orwelldevcpp/)에서 Dev-C++ 설치 파일을 다운 받고, 설치한다.



 - Dev-C++ 설치가 완료되면 실행한다. [파일] - [파일 또는 프로젝트 열기]로 들어가서 클라이언트를 압축 해제해 놓은 경로로 들어가서 client.dev 파일을 선택하여 열어준다. [도구] - [컴파일러 설정] - [라이브러리]에 [C:\Program Files\Dev-Cpp\MinGW64\lib] 경로가 추가되어 있는지 확인한다. 경로가 없다면, 찾아서 추가해준다.



 - 좌측 프로젝트 탭에서 client.cpp를 클릭한다. Windows 환경에서는 위의 사진과 같이 주석 처리되어 있는 #define 중에서 밑에 두 개를 주석 해제해주어야 한다. 해제하지 않고 컴파일하게 되면 FILENAME과 관련된 에러가 발생하면서 컴파일이 되지 않는다. 주석 해제를 한 후에 CarState.cpp를 컴파일을 하면 압축 해제된 폴더에 client.exe 실행 파일이 생성된다. 여기까지 하면 클라이언트 설치가 완료된다.


 - 컴파일 시에 $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)에서 오류가 발생하는 경우, Winsock이 링크되지 않아서 오류가 발생하는 것이다. [프로젝트] - [프로젝트 옵션] - [매개변수들] - [라이브러리나 객체 추가하기]를 클릭한다. Dev-C++이 설치된 폴더에서 [MinGW64] - [x86_64-w64-mingw32] - [lib]에 보면 libws2_32.a 파일이 있다. 그 파일을 열기하여 링커에 추가시켜주면 된다.


 - TORCS에서 [scr_server 1]으로 [Quick Race]를 실행시킨다. Initializing Driver scr_server 1... 텍스트가 떠있는 동안, 앞서 컴파일하여 생성되었던 client.exe 파일을 실행시킨다. 그러면 TORCS 서버가 클라이언트를 인식하면서 미리 설정되어 있던 드라이버 파일을 실행시켜 게임이 시작된다.




  • 파이썬 클라이언트

pyScrcClient-master.zip


 - (https://github.com/lanquarden/pyScrcClient)에서 동일한 파일을 다운받을 수 있다. 압축 해제한 후에 컴파일할 필요 없이, TORCS의 서버를 연 상태에서 pyclient.py 파일을 실행시키면 클라이언트가 알아서 미리 구성해 놓은 드라이버 파이썬 파일을 서버에 전달해주고, 게임이 시작된다. 


 - 더 간단하게 TORCS의 차량을 제어하려면, TORCS의 유명한 파이썬 라이브러리 SnakeOil 웹사이트(http://xed.ch/p/snakeoil/)에서 정보를 확인하면 된다.

Comments