Skip to content

Development Language

TeamSAIDA edited this page Nov 13, 2018 · 2 revisions

개발 언어 선택 가이드

  • 스타크래프트 봇 프로그램 개발에 있어서 가장 기본이 되는 BWAPI 라이브러리는 Adam Heinermann 등에 의해 C++ 로 개발되었으며, 이후 vjurenka 가 JAVA 언어로 BWAPI를 호출하는 BWMirror 라이브러리를 만들었습니다.

  • C++ 로 직접 BWAPI 를 사용하는 것에 비해 JAVA 로 BWMirror 를 경유하여 BWAPI 를 사용하는 것 간에 큰 차이는 없습니다

    • 스타크래프트 게임 화면에 drawLine, drawText 등을 수행하는 것은 속도 차이가 꽤 납니다

    • 스타크래프트 이벤트 발생 감지 시점에 있어서 JAVA 가 1프레임 늦게 감지하는 것으로 파악되는데, 개발에 큰 문제는 없습니다

  • 스타크래프트 인공지능 국제대회에 제출된 적이 있는 70여개의 봇을 살펴보면, 대부분 C++ 로 개발되어있지만, JAVA 봇도 10여개 존재합니다

  • 제공하는 BasicBot 은 먼저 C++ 로 개발한 후 JAVA 언어로 컨버전 했기 때문에 실행 로직은 동일합니다

  • C++ 과 JAVA 중 팀원들이 가장 익숙하게 사용하던 언어를 선택하는 것이 좋습니다

    • C++ 장점 : 실행속도가 빠릅니다

    • C++ 단점 : Null 포인터 체크, 메모리 누수 관리 등을 잘 해야합니다. 컴파일 속도가 느립니다.

    • JAVA 장점 : JDK 라이브러리를 사용할 수 있습니다. 컴파일 속도가 빠릅니다.

    • JAVA 단점 : 많은 연산을 하거나, 화면 draw 를 수행할 경우, 실행속도가 느립니다

다음글 : 개발 IDE 설정 및 봇 프로그램 실행해보기 (C++ / JAVA)