파이썬으로 마인크래프트 하기?!

목차

    2018. 12. 12. 06:34

    어떻게 하면 공부를 쉽게 할 수 있을까? 공부가 재미있고 쉬우면 참 좋을 것 같다. 파이썬을 배우는 데 있어서도, 조금이라도 쉽고 재미있게 배우는 것이 항상 고민이었다. 그러다 게임을 통해 배우면 재밌지 않을까라는 생각이 들었다. 그러던 중에 '마인크래프트'라는 유명한 게임을 파이썬으로 해 볼 수 있다는 사실을 알게 되었다.

    오늘은 마인크래프트로 파이썬을 배우는 방법에 대해서 알아보고자 한다.


    파이썬_마인크래프트


    마인크래프트를 파이썬으로 하는 방법은 API를 통해서, 마인크래프트를 콘트롤 하는 것이다. 이를 위해 내 PC에서 마인크래프트 서버를 실행하고, 파이썬에서 API를 통해 마인크래프트 서버를 콘트롤 한다. 하나하나 차근차근 해 보면 하나도 어렵지 않다. 

    우선 마인크래프트를 설치해보자.


    1. 마인크래프트 설치

    마인크래프트를 하기 위해 당연히 설치해야 한다. 아래 이미지 밑의 주소로 들어가면 마인크래프트 공식 홈페이지에서 게임을 다운받을 수 있다. 아직 마인크래프트를 구매할 필요는 없다.


    마인크래프트

    ( 마인크래프트 홈페이지 바로가기 )


    2. 파이썬 설치

    파이썬으로 마인크래프트를 컨트롤하기 위해, 당연히 파이썬을 설치해야 한다. 그리고 '파이참'이라는  IDE툴을 설치하면 코딩을 더 쉽게 할 수 있다. 설치 방법은 아래 포스팅을 참조하도록 하자.
    ( 참조: 파이썬 설치하기파이참 무료로 설치하기 )


    3. 자바 설치

    마인크래프트 서버를 띄우기 위해, '스피곳' 이라는 것을 설치하고 실행할 것이다. 스피곳을 실행하려면 자바가 설치돼 있어야 한다. 자바를 설치하기 위해서는 아래 싸이트를 방문하자.
    ( 참조: java 홈페이지 바로가기 )


    4. spigot 설치

    스피곳을 이용하여 마인크래프트 서버를 실행할 것이다. spigot은 아래 주소의 싸이트를 방문하면 중간에 'Download the setup files for Windows' 링크를 클릭하면 다운받을 수 있다.

    ( 참조: spigot 다운 받으러 가기 )


    spigot을 다운받으면, Documents폴더 아래에 MinecraftPython이라는 폴더를 만들고 압축을 풀어보자. 압축을 풀면 install_API라는 파일과 Start_Server라는 파일이 보인다. install_API라는 파일을 먼저 실행하여 API를 설치한다.

    그리고 Start_Server를 실행하여, 마인크래프트 서버를 띄워보자. 이 때 서버의 마인크래프트 버전을 알아두어야 한다. 마인크래프트를 실행할 때, 서버와 동일한 버전으로 실행해야 하기 때문이다. Start_server를 실행하면, 아래와 같이 마인크래프트 버전이 표시된다. 필자와 동일하게 진행하였다면, 파이썬 버전은 1.11.2일 것이다.


    버전


    5. T launcher실행

    마인크래프트 서버에 접속하려면, multiplayer로 실행해야 한다. 하지만, 다운받은 무료평가판으로는 멀티플레이를 할 수 없다. 마인크래프트 정식판을 구매해야 하는데, 테스트로 진행할 때 구매하기에는 아깝다. 이에 T launcer라는 프로그램을 설치하고 실행하자. 마인크래프트 버전도 조정하고, 멀티플레이도 할 수 있다. 해당 프로그램이 해킹 프로그램인지 정식 프로그램인지는 확인하지 못했다.


    t_launcher

    ( t launcer 홈페이지 바로가기 )


    T launcher를 다운받고 실행하면, 맥의 경우 TLauncer-2.48.jar 파일을 더블클릭하면 실행된다. 프로그램 하단에 이름과 마인크래프트 버전을 선택한 후 'Enter the game'을 실행하면 마인크래프트가 실행된다. 계정명은 마인크래프트 계정을 입력할 필요는 없다. 자신이 이름으로 사용하고 싶은 아무 값이나 넣으면 된다.


    6. 마인크래프트 localhost 접속

    마인크래프트가 실행되면, 'multiplayer'를 클릭한다. 그리고 Join Server를 선택한 후에 Server Name에는 원하는 Server명을, Server Address에는 'localhost'를 입력하다. 그리고 네모난 박스 모양의 서버이름에 마우스 커서를 가져가면, ► 표시가 나타난다. 이 때 해당명을 클릭하면, 서버에 접속이 된다.


    접속



    여기서 문제가 발생했다. 마인크래프트 서버와 마인크래프트가 연결되지 않는 것이다. 아래와 같은 에러 메시지가 발생했다. 


    [01:01:06 INFO]: com.mojang.authlib.GameProfile@581d7ac1[id=<null>,name=kol,properties={},legacy=false] (/127.0.0.1:53354) lost connection: Disconnected


    연결에 문제가 생긴 것 같다. 우선은 spigot의 server폴더 밑에 server.properties를 편집할 필요가 있다. 해당 파일에 보면 online-mode=true라고 돼 있는데, 여기를 false로 변경하고 실행해보자.

    아래와 같이 마인크래프트 서버에 잘 연결이 됐다.


    서버연결

    ( 마인크래프트 서버 연결 완료 )

    7. 파이참 실행

    이제 파이참을 실행해보자. 프로젝트를 만들고, 파이썬 파일을 하나 만들어 아래와 같이 실행해 보았다.


    > from mcpi.minecraft import Minecraft

    > mc = Minecraft.create()


    > mc.player.getPos()


    현재 플레이어의 위치 정보를 받아오는 것인데, 실행결과 'Vec3(-88.5,70.0,-266.5)' 라는 값을 얻을 수 있었다. 각각 x, y, z인듯 하다. 여기서 y가 높이이다. 이 정보를 이용하여 플레이어를 하늘로 옮길 수 있다.

    mc.player.setPos(-88.5, 150.0, -266.5)라고 입력하면 플레이어의 위치가 변경된다.


    하늘


    ( 플레이어 위치를 옮긴 모습 )


    오늘은 이렇게 파이썬으로 마인크래프트를 실행해보았다. 생각보다 설치할 것이 많아 쉽지는 않았지만, 마인크래프트를 코딩할 수 있다는 것을 확인하였다. 이를 통해 다양한 작업들을 해 볼 수 있을 듯 하다. online-mode를 true로 실행하면 좋겠지만, 여러가지 테스트를 해 보는 데는 부족함이 없을 듯 하다.


    오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.

    (참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)